From 038074b6dbdaf45ce81a838e46dd170096e52b6b Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Tue, 15 Sep 2026 20:57:51 +0200 Subject: [PATCH 01/20] IBX-12606: Migrated the test suites to PHPUnit 11 --- .gitignore | 1 + composer.json | 4 +- phpstan-baseline.neon | 440 ++++++-- phpunit-integration-legacy-solr.xml | 12 +- phpunit-integration-legacy.xml | 12 +- phpunit-integration.xml | 81 +- phpunit.xml | 20 +- .../Core/ApiLoader/CacheFactoryTest.php | 9 +- .../RepositoryConfigurationProviderTest.php | 16 +- .../StorageConnectionFactoryTest.php | 7 +- .../ApiLoader/StorageEngineFactoryTest.php | 2 +- tests/bundle/Core/ChainConfigResolverTest.php | 45 +- .../ContentTypeInputGeneratorStrategyTest.php | 42 +- .../LocationArgumentResolverTest.php | 42 +- .../Compiler/ChainConfigResolverPassTest.php | 11 +- .../Compiler/ChainRoutingPassTest.php | 14 +- ...dTypeParameterProviderRegistryPassTest.php | 10 +- .../Compiler/QueryTypePassTest.php | 14 +- .../RegisterSearchEngineIndexerPassTest.php | 11 +- .../Compiler/RegisterSearchEnginePassTest.php | 11 +- .../SlugConverterConfigurationPassTest.php | 8 +- .../StorageConnectionFactoryPassTest.php | 5 +- .../Compiler/TranslationCollectorPassTest.php | 7 +- .../Compiler/ViewProvidersPassTest.php | 7 +- .../ComplexSettingParserTest.php | 11 +- .../Configuration/ConfigParserTest.php | 4 +- .../ChainConfigResolverTest.php | 29 +- .../ConfigResolver/ConfigResolverTestCase.php | 7 +- .../SiteAccessGroupConfigResolverTest.php | 2 +- .../StaticSiteAccessConfigResolverTest.php | 2 +- .../Configuration/Parser/CommonTest.php | 7 +- .../Configuration/Parser/ContentTest.php | 7 +- .../Configuration/Parser/EmbeddingsTest.php | 6 +- .../Parser/FieldType/ImageAssetTest.php | 7 +- .../RepositoryConfigParserTest.php | 2 +- .../SiteAccessAware/ContextualizerTest.php | 114 +-- .../DynamicSettingParserTest.php | 13 +- .../IbexaCoreExtensionTest.php | 22 +- .../PoliciesConfigBuilderTest.php | 7 +- .../ManagedTablesSchemaAssetFilterTest.php | 12 +- .../Core/Entity/EntityManagerFactoryTest.php | 5 +- ...ackgroundIndexingTerminateListenerTest.php | 51 +- .../EventListener/ConfigScopeListenerTest.php | 4 +- .../ConsoleCommandListenerTest.php | 6 +- .../EventListener/ExceptionListenerTest.php | 18 +- .../IndexRequestListenerTest.php | 15 +- .../Core/EventListener/LocaleListenerTest.php | 9 +- .../OriginalRequestListenerTest.php | 6 +- ...citFrontControllerRequestsListenerTest.php | 23 +- .../RequestEventListenerTest.php | 20 +- .../SessionSetDynamicNameListenerTest.php | 9 +- .../EventListener/SiteAccessListenerTest.php | 13 +- .../ViewControllerListenerTest.php | 35 +- .../CrowdinRequestLocaleSubscriberTest.php | 7 +- ...ustedHeaderClientIpEventSubscriberTest.php | 7 +- .../DecoratedFragmentRendererTest.php | 5 +- .../Fragment/DirectFragmentRendererTest.php | 6 +- .../Fragment/FragmentListenerFactoryTest.php | 7 +- .../Fragment/InlineFragmentRendererTest.php | 5 +- .../Fragment/SiteAccessSerializerTest.php | 11 +- tests/bundle/Core/IbexaCoreBundleTest.php | 5 +- .../Core/Imagine/AliasGeneratorTest.php | 42 +- .../Imagine/Cache/ResolverFactoryTest.php | 8 +- .../Imagine/Filter/AbstractFilterTest.php | 13 +- .../Filter/Loader/BorderFilterLoaderTest.php | 19 +- .../Filter/Loader/CropFilterLoaderTest.php | 11 +- .../Loader/ReduceNoiseFilterLoaderTest.php | 8 +- .../Loader/ScaleDownOnlyFilterLoaderTest.php | 11 +- .../Loader/ScaleExactFilterLoaderTest.php | 11 +- .../Filter/Loader/ScaleFilterLoaderTest.php | 9 +- .../ScaleHeightDownOnlyFilterLoaderTest.php | 4 +- .../Loader/ScaleHeightFilterLoaderTest.php | 4 +- .../Loader/ScalePercentFilterLoaderTest.php | 9 +- .../ScaleWidthDownOnlyFilterLoaderTest.php | 4 +- .../Loader/ScaleWidthFilterLoaderTest.php | 4 +- .../Filter/Loader/SwirlFilterLoaderTest.php | 11 +- .../Imagine/Filter/UnsupportedFilterTest.php | 2 +- .../Core/Imagine/IORepositoryResolverTest.php | 27 +- ...ceholderAliasGeneratorConfiguratorTest.php | 2 +- .../Imagine/PlaceholderAliasGeneratorTest.php | 41 +- .../GenericProviderTest.php | 9 +- .../PlaceholderProviderRegistryTest.php | 14 +- .../VariationPurger/IOVariationPurgerTest.php | 62 +- .../ImageFileVariationPurgerTest.php | 35 +- .../LegacyStorageImageFileListTest.php | 5 +- .../ServiceAwareMatcherFactoryTest.php | 12 +- .../Core/Matcher/ViewMatcherRegistryTest.php | 5 +- .../bundle/Core/Routing/DefaultRouterTest.php | 17 +- .../JsRouting/ExposedRoutesExtractorTest.php | 11 +- .../Config/IOConfigResolverTest.php | 5 +- .../Core/SiteAccess/MatcherBuilderTest.php | 9 +- .../bundle/Core/URLChecker/URLCheckerTest.php | 6 +- .../ContentValueResolverTest.php | 2 +- .../LocationValueResolverTest.php | 2 +- tests/bundle/IO/BinaryStreamResponseTest.php | 5 +- .../Compiler/IOConfigurationPassTest.php | 5 +- .../EventListener/StreamFileListenerTest.php | 7 +- .../Image/ImageThumbnailProxyStrategyTest.php | 2 +- .../bundle/IO/Migration/FileMigratorTest.php | 6 +- .../Compiler/InstallerTagPassTest.php | 10 +- .../IbexaInstallerExtensionTest.php | 13 +- .../IbexaRepositoryInstallerBundleTest.php | 5 +- tests/integration/Core/BasicKernelTest.php | 4 +- .../BinaryBaseStorageTest.php | 25 +- ...TablesSchemaAssetFilterCompositionTest.php | 5 +- .../FieldConstraintsStorageTest.php | 9 +- .../IO/BinarydataHandler/FlysystemTest.php | 6 +- .../Image/ImageStorage/ImageStorageTest.php | 37 +- .../Limitation/MemberOfLimitationTest.php | 7 +- .../LanguageLimitationIntegrationTest.php | 24 +- .../Core/Limitation/RoleLimitationTest.php | 9 +- .../DownloadControllerRequestFlowTest.php | 10 +- .../Doctrine/FilteringQueryBuilderTest.php | 5 +- .../Legacy/BookmarkHandlerTest.php | 6 +- .../Content/Gateway/DoctrineDatabaseTest.php | 4 +- .../Search/Content/IndexerGatewayTest.php | 21 +- .../Core/Repository/BaseTestCase.php | 100 +- .../Core/Repository/BookmarkServiceTest.php | 19 +- ...slatableFieldsFromPublishedVersionTest.php | 6 +- ...pyTranslationsFromPublishedVersionTest.php | 6 +- .../CreateContentInNonContainerTest.php | 6 +- .../ContentService/DeleteContentTest.php | 6 +- .../ContentService/LoadVersionInfoTest.php | 6 +- .../MaxLanguagesContentServiceTest.php | 6 +- .../ContentService/UpdateContentTest.php | 6 +- .../ContentService/VersionValidatorTest.php | 2 +- .../ContentServiceAuthorizationTest.php | 274 ++--- .../Core/Repository/ContentServiceTest.php | 955 +++++------------- .../FindContentTypesTest.php | 12 +- .../ContentTypeServiceAuthorizationTest.php | 99 +- .../Repository/ContentTypeServiceTest.php | 661 ++++-------- .../FieldType/AuthorIntegrationTest.php | 54 +- .../BaseBinaryFileIntegrationTestCaseCase.php | 48 +- .../FieldType/BaseIntegrationTestCase.php | 174 ++-- .../FieldType/BinaryFileIntegrationTest.php | 30 +- .../FieldType/CheckboxIntegrationTest.php | 52 +- .../FieldType/CountryIntegrationTest.php | 49 +- .../FieldType/DateAndTimeIntegrationTest.php | 42 +- .../FieldType/DateIntegrationTest.php | 38 +- .../FieldType/EmailAddressIntegrationTest.php | 36 +- .../FileSearchBaseIntegrationTestCase.php | 6 +- .../FieldType/FloatIntegrationTest.php | 26 +- .../FieldType/ISBNIntegrationTest.php | 28 +- .../FieldType/ImageIntegrationTest.php | 58 +- .../FieldType/IntegerIntegrationTest.php | 28 +- .../FieldType/KeywordIntegrationTest.php | 42 +- .../FieldType/MapLocationIntegrationTest.php | 28 +- .../FieldType/MediaIntegrationTest.php | 30 +- .../FieldType/RelationIntegrationTest.php | 35 +- .../FieldType/RelationListIntegrationTest.php | 34 +- .../SearchBaseIntegrationTestCase.php | 315 +++--- ...archMultivaluedBaseIntegrationTestCase.php | 168 ++- .../FieldType/SelectionIntegrationTest.php | 40 +- .../SelectionMultilingualIntegrationTest.php | 13 +- .../FieldType/TextBlockIntegrationTest.php | 32 +- .../FieldType/TextLineIntegrationTest.php | 36 +- .../FieldType/TimeIntegrationTest.php | 38 +- .../FieldType/UrlIntegrationTest.php | 34 +- .../FieldType/UserIntegrationTest.php | 38 +- .../Core/Repository/FieldTypeServiceTest.php | 23 +- .../BaseRepositoryFilteringTestCase.php | 27 +- .../Filtering/ContentFilteringTest.php | 19 +- .../Filtering/LegacyContentFilteringTest.php | 4 +- .../Filtering/LocationFilteringTest.php | 9 +- .../LanguageServiceAuthorizationTest.php | 29 +- ...geServiceMaximumSupportedLanguagesTest.php | 15 +- .../Core/Repository/LanguageServiceTest.php | 136 +-- .../ContentLimitationsMixIntegrationTest.php | 10 +- .../LocationLimitationIntegrationTest.php | 9 +- .../LocationServiceAuthorizationTest.php | 97 +- .../Core/Repository/LocationServiceTest.php | 386 ++----- .../Repository/NonRedundantFieldSetTest.php | 120 +-- .../Repository/NotificationServiceTest.php | 14 +- .../ObjectStateServiceAuthorizationTest.php | 61 +- .../Repository/ObjectStateServiceTest.php | 258 ++--- .../Repository/PermissionResolverTest.php | 208 ++-- .../Regression/EZP20018LanguageTest.php | 14 +- .../Regression/EZP20018ObjectStateTest.php | 6 +- .../Regression/EZP20018VisibilityTest.php | 6 +- .../Regression/EZP21109IbexaIntegerTest.php | 6 +- ...6SearchOneContentMultipleLocationsTest.php | 7 +- .../EZP22612URLAliasTranslations.php | 5 + .../Regression/EZP22840RoleLimitations.php | 5 + ...22958SearchSubtreePathstringFormatTest.php | 11 +- .../EZP26327UrlAliasHistorizationTest.php | 4 +- ...ZP26367UrlAliasHistoryRedirectLoopTest.php | 12 +- .../EZP26551DeleteContentTypeDraftTest.php | 6 +- .../Regression/PureNegativeQueryTest.php | 21 +- .../Core/Repository/RepositoryTest.php | 63 +- .../RoleServiceAuthorizationTest.php | 142 +-- .../Core/Repository/RoleServiceTest.php | 421 +++----- .../Repository/SearchEngineIndexingTest.php | 28 +- .../AbstractAggregationTestCase.php | 15 +- .../ContentTypeGroupTermAggregationTest.php | 4 +- .../ContentTypeTermAggregationTest.php | 4 +- .../DateMetadataRangeAggregationTest.php | 2 +- .../Field/AuthorTermAggregationTest.php | 2 +- .../Field/CheckboxTermAggregationTest.php | 2 +- .../Field/CountryTermAggregationTest.php | 2 +- .../Field/DateRangeAggregationTest.php | 2 +- .../Field/DateTimeRangeAggregationTest.php | 2 +- .../Field/FloatRangeAggregationTest.php | 2 +- .../Field/FloatStatsAggregationTest.php | 2 +- .../Field/IntegerRangeAggregationTest.php | 2 +- .../Field/IntegerStatsAggregationTest.php | 2 +- .../Field/KeywordTermAggregationTest.php | 2 +- .../Field/SelectionTermAggregationTest.php | 2 +- .../Field/TimeRangeAggregationTest.php | 20 +- .../LanguageTermAggregationTest.php | 4 +- .../LocationChildrenTermAggregationTest.php | 9 +- .../ObjectStateTermAggregationTest.php | 6 +- .../Aggregation/RawRangeAggregationTest.php | 2 +- .../Aggregation/RawStatsAggregationTest.php | 2 +- .../Aggregation/RawTermAggregationTest.php | 2 +- .../SectionTermAggregationTest.php | 4 +- .../SubtreeTermAggregationTest.php | 4 +- .../UserMetadataTermAggregationTest.php | 24 +- .../VisibilityTermAggregationTest.php | 2 +- .../SearchService/DeleteTranslationTest.php | 11 +- .../SearchService/RemoteIdIndexingTest.php | 10 +- .../SortClause/ContentTranslatedNameTest.php | 9 +- .../SearchService/SortClause/ScoreTest.php | 6 +- .../SearchServiceAuthorizationTest.php | 50 +- .../Repository/SearchServiceBookmarkTest.php | 6 +- .../SearchServiceContentNameTest.php | 26 +- .../Repository/SearchServiceFulltextTest.php | 28 +- .../Repository/SearchServiceImageTest.php | 67 +- .../Repository/SearchServiceLocationTest.php | 71 +- .../SearchServiceManyLanguagesTest.php | 7 +- .../Core/Repository/SearchServiceTest.php | 264 ++--- ...ServiceTranslationLanguageFallbackTest.php | 37 +- .../SectionServiceAuthorizationTest.php | 35 +- .../Core/Repository/SectionServiceTest.php | 173 +--- .../Core/Repository/SettingServiceTest.php | 42 +- .../Core/Repository/TokenServiceTest.php | 20 +- .../TrashServiceAuthorizationTest.php | 64 +- .../Core/Repository/TrashServiceTest.php | 82 +- ...stomUrlAliasForMultilingualContentTest.php | 8 +- .../URLAliasService/UrlAliasLookupTest.php | 5 +- .../URLAliasServiceAuthorizationTest.php | 21 +- .../Core/Repository/URLAliasServiceTest.php | 117 +-- .../URLServiceAuthorizationTest.php | 13 +- .../Core/Repository/URLServiceTest.php | 141 +-- .../URLWildcardService/CriterionTest.php | 9 +- .../URLWildcardServiceAuthorizationTest.php | 26 +- .../Repository/URLWildcardServiceTest.php | 111 +- .../Repository/UserPreferenceServiceTest.php | 38 +- .../UserServiceAuthorizationTest.php | 98 +- .../Core/Repository/UserServiceTest.php | 459 +++------ .../Content/EmbeddingQueryBuilderTest.php | 8 +- .../Limitation/BaseLimitationTestCase.php | 6 +- .../Limitation/ChangeOwnerLimitationTest.php | 22 +- .../Limitation/ContentTypeLimitationTest.php | 11 +- .../Limitation/LanguageLimitationTest.php | 79 +- .../Limitation/LocationLimitationTest.php | 13 +- .../NewObjectStateLimitationTest.php | 12 +- .../Limitation/NewSectionLimitationTest.php | 11 +- .../Limitation/ObjectStateLimitationTest.php | 16 +- .../User/Limitation/OwnerLimitationTest.php | 11 +- .../ParentContentTypeLimitationTest.php | 11 +- .../Limitation/ParentDepthLimitationTest.php | 15 +- .../Limitation/ParentOwnerLimitationTest.php | 11 +- .../ParentUserGroupLimitationTest.php | 11 +- .../Limitation/RolePolicyLimitationTest.php | 26 +- .../User/Limitation/SectionLimitationTest.php | 11 +- .../User/Limitation/StatusLimitationTest.php | 11 +- .../User/Limitation/SubtreeLimitationTest.php | 11 +- .../Limitation/UserGroupLimitationTest.php | 11 +- .../UserStorageGatewayTestCase.php | 13 +- .../Compiler/FieldTypeRegistryPassTest.php | 10 +- .../Legacy/CriteriaConverterPassTest.php | 9 +- .../ExternalStorageRegistryPassTest.php | 29 +- .../DeprecationErrorCollector.php | 7 +- .../ContentFieldValidationExceptionTest.php | 5 +- .../Exceptions/UnauthorizedExceptionTest.php | 10 +- .../Encore/ConfigurationDumperTest.php | 5 +- tests/lib/Event/BookmarkServiceTest.php | 16 +- tests/lib/Event/ContentServiceTest.php | 204 ++-- tests/lib/Event/ContentTypeServiceTest.php | 198 ++-- tests/lib/Event/LanguageServiceTest.php | 72 +- tests/lib/Event/LocationServiceTest.php | 130 +-- tests/lib/Event/NotificationServiceTest.php | 40 +- tests/lib/Event/ObjectStateServiceTest.php | 122 +-- tests/lib/Event/RoleServiceTest.php | 190 ++-- tests/lib/Event/SectionServiceTest.php | 70 +- tests/lib/Event/SettingServiceTest.php | 34 +- tests/lib/Event/TrashServiceTest.php | 66 +- tests/lib/Event/URLAliasServiceTest.php | 38 +- tests/lib/Event/URLServiceTest.php | 22 +- tests/lib/Event/URLWildcardServiceTest.php | 36 +- tests/lib/Event/UserPreferenceServiceTest.php | 4 +- tests/lib/Event/UserServiceTest.php | 152 +-- tests/lib/FieldType/APIFieldTypeTest.php | 18 +- tests/lib/FieldType/AuthorTest.php | 29 +- tests/lib/FieldType/BaseFieldTypeTestCase.php | 99 +- tests/lib/FieldType/BinaryBaseTestCase.php | 22 +- tests/lib/FieldType/BinaryFileTest.php | 29 +- tests/lib/FieldType/CheckboxTest.php | 24 +- tests/lib/FieldType/CountryTest.php | 21 +- tests/lib/FieldType/DateAndTimeTest.php | 32 +- tests/lib/FieldType/DateTest.php | 23 +- tests/lib/FieldType/EmailAddressTest.php | 25 +- .../FieldType/EmailAddressValidatorTest.php | 10 +- tests/lib/FieldType/FieldTypeMockTest.php | 14 +- tests/lib/FieldType/FieldTypeTestCase.php | 9 +- tests/lib/FieldType/FileSizeValidatorTest.php | 43 +- tests/lib/FieldType/FloatTest.php | 27 +- tests/lib/FieldType/Generic/GenericTest.php | 19 +- .../SymfonySerializerAdapterTest.php | 4 +- tests/lib/FieldType/ISBNTest.php | 23 +- tests/lib/FieldType/Image/IO/LegacyTest.php | 5 +- .../PathGenerator/LegacyPathGeneratorTest.php | 13 +- .../FieldType/ImageAsset/AssetMapperTest.php | 36 +- tests/lib/FieldType/ImageAssetTest.php | 50 +- tests/lib/FieldType/ImageTest.php | 138 +-- tests/lib/FieldType/IntegerTest.php | 27 +- tests/lib/FieldType/KeywordTest.php | 23 +- tests/lib/FieldType/MapLocationTest.php | 12 +- tests/lib/FieldType/MediaTest.php | 27 +- tests/lib/FieldType/RelationListTest.php | 76 +- tests/lib/FieldType/RelationTest.php | 25 +- tests/lib/FieldType/SelectionTest.php | 32 +- tests/lib/FieldType/TextBlockTest.php | 23 +- tests/lib/FieldType/TextLineTest.php | 27 +- tests/lib/FieldType/TimeTest.php | 23 +- .../Url/Gateway/DoctrineStorageTest.php | 28 +- tests/lib/FieldType/Url/UrlStorageTest.php | 17 +- tests/lib/FieldType/UrlTest.php | 19 +- tests/lib/FieldType/UserTest.php | 87 +- tests/lib/FieldType/ValidationErrorTest.php | 10 +- .../BaseNumericValidatorTestCase.php | 31 +- .../Validator/FloatValueValidatorTest.php | 43 +- .../Validator/IntegerValueValidatorTest.php | 42 +- .../Validator/StringLengthValidatorTest.php | 56 +- .../SudoMainLocationLoaderTest.php | 8 +- tests/lib/Helper/ContentPreviewHelperTest.php | 4 +- .../ArrayTranslatorFieldsGroupsListTest.php | 5 +- tests/lib/Helper/TranslationHelperTest.php | 20 +- .../ConfigScopeChangeAwareIOServiceTest.php | 2 +- .../IO/FilePathNormalizer/FlysystemTest.php | 9 +- ...amicPathFilesystemAdapterDecoratorTest.php | 10 +- ...aseSiteAccessAwarePathPrefixerTestCase.php | 32 +- .../DFSSiteAccessAwarePathPrefixerTest.php | 19 +- .../LocalSiteAccessAwarePathPrefixerTest.php | 11 +- .../BaseVisibilityConverterTestCase.php | 30 +- .../DFSVisibilityConverterTest.php | 13 +- ...SiteAccessAwareVisibilityConverterTest.php | 13 +- .../IO/IOMetadataHandler/FlysystemTest.php | 7 +- .../LegacyDFSClusterTest.php | 28 +- tests/lib/IO/IOServiceTest.php | 26 +- tests/lib/IO/TolerantIOServiceTest.php | 7 +- .../IO/UrlDecorator/AbsolutePrefixTest.php | 2 +- tests/lib/IO/UrlDecorator/PrefixTest.php | 11 +- tests/lib/Limitation/Base.php | 11 +- .../Limitation/BlockingLimitationTypeTest.php | 62 +- .../ContentTypeLimitationTypeTest.php | 118 +-- .../ContentDeleteEvaluatorTest.php | 37 +- .../Limitation/LocationLimitationTypeTest.php | 150 ++- .../Limitation/MemberOfLimitationTypeTest.php | 138 +-- .../NewObjectStateLimitationTypeTest.php | 81 +- .../ObjectStateLimitationTypeTest.php | 14 +- .../ParentContentTypeLimitationTypeTest.php | 114 +-- .../ParentDepthLimitationTypeTest.php | 109 +- .../lib/Limitation/RoleLimitationTypeTest.php | 80 +- .../Limitation/SectionLimitationTypeTest.php | 126 +-- .../SiteAccessLimitationTypeTest.php | 83 +- .../Limitation/StatusLimitationTypeTest.php | 150 +-- .../Limitation/SubtreeLimitationTypeTest.php | 217 ++-- .../CompoundMatcherNormalizerTest.php | 16 +- .../Serializer/HostElementNormalizerTest.php | 9 +- .../Serializer/HostTextNormalizerTest.php | 4 +- .../Serializer/MapNormalizerTest.php | 4 +- .../Serializer/RegexNormalizerTest.php | 4 +- .../SimplifiedRequestNormalizerTest.php | 5 +- .../Serializer/URIElementNormalizerTest.php | 13 +- .../Serializer/URITextNormalizerTest.php | 9 +- .../Content/DownloadControllerTest.php | 16 +- .../Content/PreviewControllerTest.php | 38 +- .../MVC/Symfony/Controller/ControllerTest.php | 4 +- .../Controller/QueryRenderControllerTest.php | 4 +- ...ContentViewTwigVariablesSubscriberTest.php | 2 +- .../SiteAccessMatchListenerTest.php | 9 +- .../SiteAccessRestoreListenerTest.php | 15 +- .../ContentDownloadUrlGeneratorTest.php | 5 +- .../ImageAsset/ParameterProviderTest.php | 37 +- .../Relation/ParameterProviderTest.php | 7 +- .../RelationList/ParameterProviderTest.php | 7 +- .../FieldType/User/ParameterProviderTest.php | 6 +- .../LocaleParameterProviderTest.php | 7 +- .../View/ParameterProviderRegistryTest.php | 9 +- .../Symfony/Locale/LocaleConverterTest.php | 18 +- .../UserLanguagePreferenceProviderTest.php | 11 +- .../Matcher/ContentBased/BaseTestCase.php | 16 +- .../Matcher/ContentBased/DepthTest.php | 55 +- .../Matcher/ContentBased/Id/ContentTest.php | 49 +- .../ContentBased/Id/ContentTypeGroupTest.php | 48 +- .../ContentBased/Id/ContentTypeTest.php | 48 +- .../Matcher/ContentBased/Id/LocationTest.php | 50 +- .../ContentBased/Id/ParentContentTypeTest.php | 42 +- .../ContentBased/Id/ParentLocationTest.php | 51 +- .../Matcher/ContentBased/Id/RemoteTest.php | 50 +- .../Matcher/ContentBased/Id/SectionTest.php | 48 +- .../Identifier/ContentTypeTest.php | 47 +- .../Identifier/ParentContentTypeTest.php | 41 +- .../ContentBased/Identifier/SectionTest.php | 41 +- .../Matcher/ContentBased/IsPreviewTest.php | 9 +- .../ContentBased/MultipleValuedTest.php | 20 +- .../Matcher/ContentBased/UrlAliasTest.php | 73 +- ...yConfiguredMatcherFactoryDecoratorTest.php | 9 +- .../lib/MVC/Symfony/Routing/GeneratorTest.php | 11 +- .../Routing/RequestContextFactoryTest.php | 10 +- .../Routing/RouteReferenceGeneratorTest.php | 7 +- .../Symfony/Routing/SimplifiedRequestTest.php | 11 +- .../Symfony/Routing/UrlAliasGeneratorTest.php | 48 +- .../Symfony/Routing/UrlAliasRouterTest.php | 19 +- .../AnonymousUserAccessListenerTest.php | 18 +- ...kenCreatedRepositoryUserSubscriberTest.php | 11 +- ...sitoryUserAuthenticationSubscriberTest.php | 10 +- .../MVC/Symfony/Security/HttpUtilsTest.php | 19 +- .../Security/User/BaseProviderTestCase.php | 14 +- .../Security/User/EmailProviderTest.php | 5 +- .../Security/User/UsernameProviderTest.php | 5 +- tests/lib/MVC/Symfony/Security/UserTest.php | 8 +- .../MVC/Symfony/Security/UserWrappedTest.php | 19 +- .../Symfony/Security/Voter/CoreVoterTest.php | 49 +- .../Security/Voter/ValueObjectVoterTest.php | 55 +- .../SiteAccess/Compound/CompoundAndTest.php | 39 +- .../SiteAccess/Compound/CompoundOrTest.php | 35 +- .../SiteAccess/MatcherSerializationTest.php | 19 +- .../Provider/ChainSiteAccessProviderTest.php | 12 +- .../Symfony/SiteAccess/RouterBaseTestCase.php | 7 +- .../SiteAccess/RouterHostElementTest.php | 11 +- .../SiteAccess/RouterHostPortURITest.php | 4 +- .../Symfony/SiteAccess/RouterHostTextTest.php | 4 +- .../Symfony/SiteAccess/RouterMapURITest.php | 14 +- .../SiteAccess/RouterPortHostURITest.php | 4 +- .../SiteAccess/RouterSpecialPortsTest.php | 4 +- .../lib/MVC/Symfony/SiteAccess/RouterTest.php | 21 +- .../SiteAccess/RouterURIElement2Test.php | 22 +- .../SiteAccess/RouterURIElementTest.php | 19 +- .../Symfony/SiteAccess/RouterURITextTest.php | 4 +- .../SiteAccess/SiteAccessServiceTest.php | 24 +- .../Symfony/Templating/GlobalHelperTest.php | 8 +- .../Templating/RenderContentStrategyTest.php | 8 +- .../Templating/RenderLocationStrategyTest.php | 6 +- .../Twig/Extension/ContentExtensionTest.php | 4 +- .../Extension/DataAttributesExtensionTest.php | 2 +- ...FieldRenderingExtensionIntegrationTest.php | 9 +- .../Twig/Extension/FileSizeExtensionTest.php | 2 +- .../Twig/Extension/RenderExtensionTest.php | 2 +- .../Twig/Extension/RoutingExtensionTest.php | 4 +- .../Twig/Extension/UserExtensionTest.php | 2 +- .../Extension/UserPreferenceExtensionTest.php | 2 +- ...MessageExtractorPhpFileVisitorTestCase.php | 4 +- ...xceptionMessageTemplateFileVisitorTest.php | 5 +- .../TranslatableExceptionsFileVisitorTest.php | 5 +- .../ValidationErrorFileVisitorTest.php | 5 +- .../MVC/Symfony/View/AbstractViewTestCase.php | 25 +- .../View/Builder/ContentViewBuilderTest.php | 18 +- .../lib/MVC/Symfony/View/ContentViewTest.php | 22 +- .../MVC/Symfony/View/LoginFormViewTest.php | 7 +- .../lib/MVC/Symfony/View/ViewManagerTest.php | 11 +- .../Notification/Renderer/RegistryTest.php | 2 +- .../SearchHitAdapterFactoryTest.php | 7 +- ...BaseContentSearchResultAdapterTestCase.php | 2 +- ...aseLocationSearchResultAdapterTestCase.php | 2 +- .../Cache/AbstractCacheHandlerTestCase.php | 96 +- .../AbstractInMemoryCacheHandlerTestCase.php | 77 +- .../InMemoryClearingProxyAdapterTest.php | 12 +- .../Persistence/Cache/BookmarkHandlerTest.php | 6 +- .../Persistence/Cache/ContentHandlerTest.php | 36 +- .../Cache/ContentLanguageHandlerTest.php | 6 +- .../Cache/ContentTypeHandlerTest.php | 80 +- .../CacheIdentifierGeneratorTest.php | 25 +- .../CacheIdentifierSanitizerTest.php | 7 +- .../Persistence/Cache/LocationHandlerTest.php | 6 +- .../Cache/LocationPathConverterTest.php | 7 +- .../Cache/NotificationHandlerTest.php | 6 +- .../Cache/ObjectStateHandlerTest.php | 6 +- .../Cache/PersistenceHandlerTest.php | 5 +- .../Cache/PersistenceLoggerTest.php | 10 +- .../Persistence/Cache/SectionHandlerTest.php | 6 +- .../Persistence/Cache/SettingHandlerTest.php | 6 +- .../Cache/TransactionHandlerTest.php | 14 +- .../Persistence/Cache/TrashHandlerTest.php | 95 +- .../lib/Persistence/Cache/URLHandlerTest.php | 72 +- .../Persistence/Cache/UrlAliasHandlerTest.php | 6 +- .../Cache/UrlWildcardHandlerTest.php | 6 +- .../lib/Persistence/Cache/UserHandlerTest.php | 62 +- .../Cache/UserPreferenceHandlerTest.php | 6 +- .../Doctrine/JoinedTablesTrackerTest.php | 2 +- .../Doctrine/Query/JsonTextFunctionTest.php | 12 +- .../SiteAccessAwareEntityManagerTest.php | 16 +- .../lib/Persistence/FieldTypeRegistryTest.php | 5 +- .../Converter/ImageConverterTest.php | 25 +- .../Bookmark/Gateway/DoctrineDatabaseTest.php | 16 +- .../Legacy/Bookmark/MapperTest.php | 5 +- .../Legacy/Content/ContentHandlerTest.php | 105 +- .../Legacy/Content/FieldHandlerTest.php | 203 ++-- .../FieldValue/Converter/AuthorTest.php | 11 +- .../FieldValue/Converter/CheckboxTest.php | 30 +- .../FieldValue/Converter/CountryTest.php | 53 +- .../FieldValue/Converter/DateAndTimeTest.php | 83 +- .../Content/FieldValue/Converter/DateTest.php | 19 +- .../Content/FieldValue/Converter/ISBNTest.php | 12 +- .../FieldValue/Converter/KeywordTest.php | 30 +- .../FieldValue/Converter/MediaTest.php | 18 +- .../FieldValue/Converter/RelationListTest.php | 44 +- .../FieldValue/Converter/RelationTest.php | 12 +- .../FieldValue/Converter/SelectionTest.php | 54 +- .../Converter/SerializableConverterTest.php | 5 +- .../FieldValue/Converter/TextBlockTest.php | 30 +- .../FieldValue/Converter/TextLineTest.php | 36 +- .../Content/FieldValue/Converter/TimeTest.php | 12 +- .../Content/FieldValue/Converter/UrlTest.php | 30 +- .../FieldValueConverterRegistryTest.php | 5 +- .../Content/Gateway/DoctrineDatabaseTest.php | 5 +- .../RandomSortClauseHandlerFactoryTest.php | 4 +- .../Language/CachingLanguageHandlerTest.php | 35 +- .../Language/Gateway/DoctrineDatabaseTest.php | 5 +- .../Content/Language/LanguageHandlerTest.php | 5 +- .../Legacy/Content/Language/MapperTest.php | 5 +- .../Content/Language/MaskGeneratorTest.php | 23 +- .../Legacy/Content/LanguageAwareTestCase.php | 2 +- .../Location/Gateway/DoctrineDatabaseTest.php | 80 +- .../Gateway/DoctrineDatabaseTrashTest.php | 18 +- .../Legacy/Content/Location/MapperTest.php | 5 +- .../Content/Location/TrashHandlerTest.php | 197 ++-- .../Legacy/Content/LocationHandlerTest.php | 396 ++++---- .../ResolveVirtualFieldSubscriberTest.php | 2 +- .../Persistence/Legacy/Content/MapperTest.php | 45 +- .../Gateway/DoctrineDatabaseTest.php | 5 +- .../Legacy/Content/ObjectState/MapperTest.php | 5 +- .../ObjectState/ObjectStateHandlerTest.php | 60 +- .../Section/Gateway/DoctrineDatabaseTest.php | 10 +- .../Content/Section/SectionHandlerTest.php | 5 +- .../Legacy/Content/StorageHandlerTest.php | 6 +- .../Legacy/Content/StorageRegistryTest.php | 5 +- .../Legacy/Content/TreeHandlerTest.php | 326 +++--- .../Content/Type/ContentTypeHandlerTest.php | 55 +- .../ContentUpdater/Action/AddFieldTest.php | 157 +-- .../ContentUpdater/Action/RemoveFieldTest.php | 126 +-- .../Content/Type/ContentUpdaterTest.php | 25 +- .../Type/Gateway/DoctrineDatabaseTest.php | 18 +- .../Legacy/Content/Type/MapperTest.php | 7 +- .../Content/Type/StorageDispatcherTest.php | 6 +- .../Content/Type/StorageRegistryTest.php | 14 +- .../Update/Handler/DoctrineDatabaseTest.php | 5 +- .../UrlAlias/Gateway/DoctrineDatabaseTest.php | 41 +- .../Content/UrlAlias/SlugConverterTest.php | 22 +- .../Content/UrlAlias/UrlAliasHandlerTest.php | 422 +++----- .../Content/UrlAlias/UrlAliasMapperTest.php | 15 +- .../Gateway/DoctrineDatabaseTest.php | 12 +- .../UrlWildcard/UrlWildcardHandlerTest.php | 17 +- .../UrlWildcard/UrlWildcardMapperTest.php | 5 +- .../Converter/ImageConverterTest.php | 13 +- ...seCriterionVisitorQueryBuilderTestCase.php | 15 +- ...nguageCodeQueryBuilderQueryBuilderTest.php | 7 +- .../ContentTypeGroupIdQueryBuilderTest.php | 7 +- .../Type/ContentTypeQueryBuildersTest.php | 9 +- .../Location/AncestorQueryBuilderTest.php | 2 +- .../Location/IsBookmarkedQueryBuilderTest.php | 7 +- .../Location/LocationIdQueryBuilderTest.php | 8 +- .../ParentLocationQueryBuilderTest.php | 7 +- ...alOperatorQueryBuilderQueryBuilderTest.php | 14 +- .../Query/LimitedCountQueryBuilderTest.php | 10 +- .../Bookmark/IdSortClauseQueryBuilderTest.php | 105 +- tests/lib/Persistence/Legacy/HandlerTest.php | 5 +- .../Gateway/DoctrineDatabaseTest.php | 5 +- .../Legacy/Notification/HandlerTest.php | 5 +- .../Legacy/Notification/MapperTest.php | 5 +- .../Legacy/Setting/SettingHandlerTest.php | 5 +- .../SharedGateway/GatewayFactoryTest.php | 19 +- .../Legacy/TransactionHandlerTest.php | 5 +- .../URL/Gateway/DoctrineDatabaseTest.php | 5 +- .../URL/Query/CriteriaConverterTest.php | 14 +- .../CriterionHandlerTestCase.php | 25 +- .../Query/CriterionHandler/LogicalAndTest.php | 10 +- .../Query/CriterionHandler/LogicalNotTest.php | 6 +- .../Query/CriterionHandler/LogicalOrTest.php | 6 +- .../Query/CriterionHandler/MatchAllTest.php | 4 +- .../Query/CriterionHandler/MatchNoneTest.php | 4 +- .../Query/CriterionHandler/PatternTest.php | 2 +- .../Query/CriterionHandler/ValidityTest.php | 2 +- .../CriterionHandler/VisibleOnlyTest.php | 7 +- .../User/Gateway/DoctrineDatabaseTest.php | 5 +- .../Role/Gateway/DoctrineDatabaseTest.php | 10 +- .../Gateway/DoctrineDatabaseTest.php | 5 +- .../Legacy/UserPreference/HandlerTest.php | 5 +- .../Legacy/UserPreference/MapperTest.php | 5 +- .../Target/Builder/VersionBuilderTest.php | 11 +- ...tionProcessorDefinitionBasedParserTest.php | 5 +- .../BuiltIn/AbstractQueryTypeTestCase.php | 7 +- .../BuiltIn/AncestorsQueryTypeTest.php | 2 +- .../BuiltIn/ChildrenQueryTypeTest.php | 2 +- .../BuiltIn/GeoLocationQueryTypeTest.php | 2 +- .../BuiltIn/RelatedToContentQueryTypeTest.php | 2 +- .../BuiltIn/SiblingsQueryTypeTest.php | 2 +- .../DefaultSortClauseParserTest.php | 2 +- .../FieldSortClauseParserTest.php | 31 +- .../MapDistanceSortClauseParserTest.php | 45 +- .../SortClauseParserDispatcherTest.php | 6 +- .../BuiltIn/SortSpec/SortSpecLexerTest.php | 7 +- .../BuiltIn/SortSpec/SortSpecParserTest.php | 19 +- .../QueryType/BuiltIn/SubtreeQueryTest.php | 2 +- .../ContentService/RelationListFacadeTest.php | 6 +- tests/lib/Repository/ContentServiceTest.php | 22 +- .../ContentThumbnail/StaticStrategyTest.php | 8 +- .../ThumbnailChainStrategyTest.php | 16 +- .../BookmarkServiceDecoratorTest.php | 6 +- .../Decorator/ContentServiceDecoratorTest.php | 102 +- .../ContentTypeServiceDecoratorTest.php | 52 +- .../LanguageServiceDecoratorTest.php | 10 +- .../LocationServiceDecoratorTest.php | 36 +- .../NotificationServiceDecoratorTest.php | 8 +- .../ObjectStateServiceDecoratorTest.php | 40 +- .../Decorator/RoleServiceDecoratorTest.php | 48 +- .../Decorator/SearchServiceDecoratorTest.php | 16 +- .../Decorator/SectionServiceDecoratorTest.php | 20 +- .../Decorator/SettingServiceDecoratorTest.php | 8 +- .../TranslationServiceDecoratorTest.php | 2 +- .../Decorator/TrashServiceDecoratorTest.php | 10 +- .../URLAliasServiceDecoratorTest.php | 8 +- .../Decorator/URLServiceDecoratorTest.php | 8 +- .../URLWildcardServiceDecoratorTest.php | 2 +- .../Decorator/UserServiceDecoratorTest.php | 54 +- .../AbstractSearchAdapterTestCase.php | 2 +- .../ContentFilteringAdapterTest.php | 6 +- .../LocationFilteringAdapterTest.php | 6 +- .../PermissionAwareLocationResolverTest.php | 5 +- tests/lib/Repository/LocationServiceTest.php | 16 +- .../DecoratedLocationServiceTest.php | 60 +- .../Repository/Mapper/ContentMapperTest.php | 11 +- .../NameSchema/NameSchemaServiceTest.php | 12 +- .../SchemaIdentifierExtractorTest.php | 11 +- .../CachedPermissionServiceTest.php | 25 +- .../PermissionCriterionResolverTest.php | 51 +- tests/lib/Repository/Service/Mock/Base.php | 15 +- .../Repository/Service/Mock/BookmarkTest.php | 36 +- .../Service/Mock/ContentDomainMapperTest.php | 23 +- .../Repository/Service/Mock/ContentTest.php | 645 ++++++------ .../Service/Mock/PermissionTest.php | 283 +++--- .../Service/Mock/RelationProcessorTest.php | 243 +++-- .../Service/Mock/RepositoryTest.php | 15 +- .../lib/Repository/Service/Mock/RoleTest.php | 42 +- .../Repository/Service/Mock/SearchTest.php | 52 +- .../Repository/Service/Mock/UrlAliasTest.php | 139 +-- tests/lib/Repository/Service/Mock/UrlTest.php | 19 +- .../Service/Mock/UrlWildcardTest.php | 59 +- .../Mock/UserPasswordValidatorTest.php | 12 +- .../Service/Mock/UserPreferenceTest.php | 29 +- .../lib/Repository/Service/Mock/UserTest.php | 13 +- .../AbstractServiceTestCase.php | 46 +- .../SiteAccessAware/ContentServiceTest.php | 14 +- .../ContentTypeServiceTest.php | 4 +- .../Language/LanguageResolverTest.php | 14 +- .../SiteAccessAware/LanguageServiceTest.php | 6 +- .../SiteAccessAware/LocationServiceTest.php | 4 +- .../ObjectStateServiceTest.php | 4 +- .../SiteAccessAware/SearchServiceTest.php | 4 +- .../SiteAccessAware/TrashServiceTest.php | 6 +- .../SiteAccessAware/UrlAliasServiceTest.php | 4 +- .../SiteAccessAware/UserServiceTest.php | 6 +- .../ChainContentPublicationStrategyTest.php | 4 +- ...chronousContentPublicationStrategyTest.php | 10 +- .../Values/Content/ContentInfoTest.php | 5 +- .../Repository/Values/Content/ContentTest.php | 5 +- .../Values/Content/LanguageTest.php | 5 +- .../Values/Content/LocationTest.php | 16 +- .../Location/SubtreeTermAggregationTest.php | 2 +- .../Content/Query/Aggregation/RangeTest.php | 11 +- .../Query/Criterion/DateMetadataTest.php | 5 +- .../Repository/Values/Content/SectionTest.php | 13 +- .../Values/Content/TrashItemTest.php | 9 +- .../Values/Content/VersionInfoTest.php | 5 +- .../Values/ContentType/ContentTypeTest.php | 18 +- .../FieldDefinitionCollectionTest.php | 5 +- .../ContentType/FieldDefinitionTest.php | 7 +- .../Repository/Values/Filter/FilterTest.php | 32 +- .../ObjectState/ObjectStateGroupTest.php | 15 +- .../Values/ObjectState/ObjectStateTest.php | 23 +- .../Values/Translation/MessageTest.php | 12 +- .../Values/Translation/PluralTest.php | 12 +- .../lib/Repository/Values/User/PolicyTest.php | 16 +- tests/lib/Repository/Values/User/RoleTest.php | 15 +- .../Repository/Values/User/UserGroupTest.php | 5 +- tests/lib/Repository/Values/User/UserTest.php | 5 +- .../Common/FieldValueMapper/AggregateTest.php | 7 +- .../RemoteIdentifierMapperTest.php | 20 +- .../FieldValueMapper/StringMapperTest.php | 5 +- .../EmbeddingProviderRegistryTest.php | 8 +- .../EmbeddingProviderResolverTest.php | 4 +- tests/lib/Search/FieldNameResolverTest.php | 103 +- .../Search/Indexer/ContentIdBatchListTest.php | 23 +- .../Legacy/Content/AbstractTestCase.php | 10 +- ...omSortClauseHandlerPlatformSupportTest.php | 17 +- .../Legacy/Content/HandlerContentSortTest.php | 11 +- .../Legacy/Content/HandlerContentTest.php | 10 +- .../Content/HandlerLocationSortTest.php | 8 +- .../Legacy/Content/HandlerLocationTest.php | 8 +- .../ContentContainerSpecificationTest.php | 12 +- .../Content/ContentTypeSpecificationTest.php | 12 +- tests/lib/Token/RandomBytesGeneratorTest.php | 11 +- tests/lib/Token/WebSafeGeneratorTest.php | 11 +- tests/lib/Validation/StructValidatorTest.php | 5 +- .../Validation/StructWrapperValidatorTest.php | 5 +- 706 files changed, 10561 insertions(+), 13294 deletions(-) diff --git a/.gitignore b/.gitignore index d066dbaba1..507f258b15 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ var/ composer.lock .php-cs-fixer.cache .phpunit.result.cache +.phpunit.cache/ /.deptrac.cache phpstan.neon .rules/ diff --git a/composer.json b/composer.json index 529f143c68..427c221bf3 100644 --- a/composer.json +++ b/composer.json @@ -71,11 +71,11 @@ "ibexa/rector": "~6.0.x-dev", "ibexa/test-core": "~6.0.x-dev", "jenner/simple_fork": "^1.2", - "matthiasnoback/symfony-dependency-injection-test": "^5.0", + "matthiasnoback/symfony-dependency-injection-test": "^6.0", "phpstan/phpstan": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-symfony": "^2.0", - "phpunit/phpunit": "^9.6", + "phpunit/phpunit": "^11.5", "symfony/phpunit-bridge": "^7.4", "symfony/runtime": "^7.4", "webmozart/assert": "^2.3" diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index bdaf82dc4f..0b046f3540 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -18678,6 +18678,12 @@ parameters: count: 1 path: tests/bundle/Core/ChainConfigResolverTest.php + - + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:createResolverMocks\(\) should return array\ but returns array\\.$#' + identifier: return.type + count: 1 + path: tests/bundle/Core/ChainConfigResolverTest.php + - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:getParameterProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -19620,6 +19626,12 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php + - + message: '#^Offset ''heyho'' on array\{siteaccess\: array\{list\: array\{''krondor''\}, groups\: array\{midkemia\: array\{''krondor''\}, triagia\: array\{''krondor''\}\}\}, heyho\: array\{\}\|array\{krondor\: array\{location_view\: array\{full\: array\{Wizard\: array\{template\: ''wizard\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer\.html\.twig''\}\}\}\}\}\|array\{krondor\: array\{wizards\: array\{''Kulgan'', ''Macros the Black'', ''Pug'', ''Rogen'', ''William''\}\}\}\|array\{midkemia\: array\{location_view\: array\{full\: array\{Dwarve\: array\{template\: ''dwarve\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer2\.html\.twig''\}\}\}\}, krondor\: array\{location_view\: array\{full\: array\{Moredhel\: array\{template\: ''moredhel\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer3\.html\.twig''\}\}\}\}\}\|array\{midkemia\: array\{location_view\: array\{full\: array\{Dwarve\: array\{template\: ''dwarve\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer2\.html\.twig''\}\}\}\}, triagia\?\: array\{location_view\: array\{full\: array\{Moredhel\: array\{template\: ''moredhel\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer3\.html\.twig''\}\}\}\}, krondor\?\: array\{location_view\: array\{full\: array\{Moredhel\: array\{template\: ''moredhel2\.html\.twig''\}, Warrior\: array\{template\: ''warrior\.html\.twig''\}\}\}\}\}\|array\{midkemia\: array\{wizards\: array\{''Kulgan'', ''Macros the Black''\}\}\}\|array\{midkemia\: array\{wizards\: array\{''Macros the Black''\}\}, triagia\: array\{wizards\: array\{''Pug'', ''William'', ''Kulgan''\}\|array\{''Pug''\}\}, krondor\: array\{wizards\: array\{''Rogen'', ''Pug'', ''Rogen'', ''Macros the Black''\}\|array\{0\: ''Rogen'', 1\?\: ''Pug''\}\}\}\|array\{midkemia\: array\{wizards\: array\{''Pug'', ''Rogen'', ''William''\}\}\}\|array\{midkemia\: array\{wizards\: array\{0\: ''Pug'', 1\?\: ''Rogen''\}\}, triagia\: array\{wizards\: array\{''Rogen''\}\}\|array\{wizards\: array\{''William''\}\}, krondor\?\: array\{wizards\: array\{''William''\}\}\}\|array\{midkemia\?\: array\{location_view\: array\{full\: array\{Wizard\: array\{template\: ''wizard\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer\.html\.twig''\}\}\}\}, triagia\?\: array\{location_view\: array\{full\: array\{Dwarve\: array\{template\: ''dwarve\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer2\.html\.twig''\}\}\}\}, krondor\?\: array\{location_view\: array\{full\: array\{Moredhel\: array\{template\: ''moredhel\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer3\.html\.twig''\}\}\}\}\}\|array\{triagia\: array\{location_view\: array\{full\: array\{Wizard\: array\{template\: ''wizard\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer\.html\.twig''\}\}\}\}, krondor\: array\{location_view\: array\{full\: array\{Dwarve\: array\{template\: ''dwarve\.html\.twig''\}, Sorcerer\: array\{template\: ''sorcerer2\.html\.twig''\}\}\}\}\}\|array\{triagia\: array\{wizards\: array\{''Kulgan'', ''Macros the Black'', ''Pug'', ''Rogen'', ''William''\}\}\}\} in isset\(\) always exists and is not nullable\.$#' + identifier: isset.offset + count: 1 + path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php + - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:\$availableSAs type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19909,7 +19921,7 @@ parameters: path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\|ArrayAccess, array\|bool\|float\|int\|string\|null given\.$#' + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, array\|bool\|float\|int\|string\|null given\.$#' identifier: argument.type count: 2 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php @@ -20100,12 +20112,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - message: '#^Parameter \#1 \$stub of method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:will\(\) expects PHPUnit\\Framework\\MockObject\\Stub\\Stub, PHPUnit\\Framework\\MockObject\\Stub given\.$#' - identifier: argument.type - count: 2 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackwardCompatibleCommandListenerTest\:\:createBackwardCompatibleCommand\(\) has parameter \$aliases with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -20161,7 +20167,7 @@ parameters: path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConfigScopeListenerTest\:\:\$viewProviders \(PHPUnit\\Framework\\MockObject\\MockObject\) does not accept array\\.$#' + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConfigScopeListenerTest\:\:\$viewProviders \(PHPUnit\\Framework\\MockObject\\MockObject\) does not accept array\\.$#' identifier: assign.propertyType count: 1 path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php @@ -20641,20 +20647,20 @@ parameters: path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:provideSetRequests\(\) has no return type specified\.$#' identifier: missingType.return count: 1 path: tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has parameter \$shouldHaveCustomLocale with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 path: tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetRequestsProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has parameter \$shouldHaveCustomLocale with no type specified\.$#' + identifier: missingType.parameter count: 1 path: tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php @@ -21085,7 +21091,7 @@ parameters: path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php - - message: '#^Method PHPUnit\\Framework\\TestCase\:\:createMock\(\) invoked with 2 parameters, 1 required\.$#' + message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' identifier: arguments.count count: 1 path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php @@ -21139,7 +21145,7 @@ parameters: path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php - - message: '#^Method PHPUnit\\Framework\\TestCase\:\:createMock\(\) invoked with 2 parameters, 1 required\.$#' + message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' identifier: arguments.count count: 1 path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php @@ -21474,6 +21480,12 @@ parameters: count: 1 path: tests/bundle/Core/SiteAccess/SiteAccessMatcherRegistryTest.php + - + message: '#^Call to an undefined method Ibexa\\Bundle\\Core\\URLChecker\\URLHandlerInterface&PHPUnit\\Framework\\MockObject\\Stub\:\:expects\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/bundle/Core/URLChecker/URLCheckerTest.php + - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has no return type specified\.$#' identifier: missingType.return @@ -21979,14 +21991,14 @@ parameters: path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:getSetupFactory\(\) should return Ibexa\\Contracts\\Core\\Test\\Repository\\SetupFactory but returns object\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:refreshSearch\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:refreshSearch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:resolveSetupFactory\(\) should return Ibexa\\Contracts\\Core\\Test\\Repository\\SetupFactory but returns object\.$#' + identifier: return.type count: 1 path: tests/integration/Core/Repository/BaseTestCase.php @@ -22038,12 +22050,6 @@ parameters: count: 1 path: tests/integration/Core/Repository/BaseTestCase.php - - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:\$setupFactory \(Ibexa\\Contracts\\Core\\Test\\Repository\\SetupFactory\) does not accept object\.$#' - identifier: assign.propertyType - count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTrashServiceTestCase\:\:createTrashItem\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem but returns Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' identifier: return.type @@ -24661,13 +24667,13 @@ parameters: path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\|ArrayAccess, iterable\ given\.$#' + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' identifier: argument.type count: 1 path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\|ArrayAccess, iterable\ given\.$#' + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' identifier: argument.type count: 1 path: tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -31962,6 +31968,12 @@ parameters: count: 1 path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:__construct\(\) overrides @final method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:__construct\(\)\.$#' + identifier: method.parentMethodFinalByPhpDoc + count: 1 + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:getFolderCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return @@ -31986,6 +31998,12 @@ parameters: count: 1 path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:__construct\(\) overrides @final method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:__construct\(\)\.$#' + identifier: method.parentMethodFinalByPhpDoc + count: 1 + path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php + - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:testSectionRoleAssignLimitation\(\) has no return type specified\.$#' identifier: missingType.return @@ -40020,6 +40038,12 @@ parameters: count: 1 path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php + - + message: '#^Parameter \#1 \$suffix of static method PHPUnit\\Framework\\Assert\:\:assertStringEndsWith\(\) expects non\-empty\-string, string given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php + - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue @@ -40626,12 +40650,6 @@ parameters: count: 1 path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:willReturnOnConsecutiveCalls\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -40788,12 +40806,6 @@ parameters: count: 1 path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has no return type specified\.$#' identifier: missingType.return @@ -40902,6 +40914,12 @@ parameters: count: 1 path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php + - + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$object with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistence with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -41298,6 +41316,12 @@ parameters: count: 1 path: tests/lib/Limitation/StatusLimitationTypeTest.php + - + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getContentMock\(\) has parameter \$shouldBeCalled with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Limitation/StatusLimitationTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getVersionInfoMock\(\) has no return type specified\.$#' identifier: missingType.return @@ -41832,6 +41856,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Depth\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php + + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -41856,6 +41892,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php + - + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php + + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroupTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -41892,6 +41940,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -41916,6 +41970,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php + - + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php + + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\LocationTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -41940,6 +42006,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php + - + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php + + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -41970,6 +42048,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocationTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42000,6 +42084,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocation\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php + + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\RemoteTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42024,6 +42120,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php + - + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php + + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\SectionTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42048,6 +42156,18 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php + - + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php + + - + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42081,7 +42201,7 @@ parameters: - message: '#^Parameter \#1 \$contentTypeIdentifier of method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:generateRepositoryMockForContentTypeIdentifier\(\) expects int, string given\.$#' identifier: argument.type - count: 8 + count: 2 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - @@ -42090,6 +42210,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42120,6 +42246,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\SectionTest\:\:matchSectionProvider\(\) has no return type specified\.$#' identifier: missingType.return @@ -42150,6 +42282,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php + - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:getMultipleValuedMatcherMock\(\) has no return type specified\.$#' identifier: missingType.return @@ -42222,6 +42360,12 @@ parameters: count: 1 path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php + - + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php + - message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ConfigurableMatcherFactoryInterface\:\:expects\(\)\.$#' identifier: method.notFound @@ -44106,12 +44250,6 @@ parameters: count: 1 path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:willReturnOnConsecutiveCalls\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 6 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' identifier: argument.named @@ -44119,14 +44257,8 @@ parameters: path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:withConsecutive\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 6 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Only iterables can be unpacked, array\|null given in argument \#1\.$#' - identifier: argument.unpackNonIterable + message: '#^Offset int might not exist on array\|null\.$#' + identifier: offsetAccess.notFound count: 5 path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php @@ -44286,12 +44418,6 @@ parameters: count: 1 path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:willReturnOnConsecutiveCalls\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 6 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' identifier: argument.named @@ -44299,14 +44425,8 @@ parameters: path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:withConsecutive\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 6 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Only iterables can be unpacked, array\|null given in argument \#1\.$#' - identifier: argument.unpackNonIterable + message: '#^Offset int might not exist on array\|null\.$#' + identifier: offsetAccess.notFound count: 5 path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php @@ -45165,7 +45285,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' identifier: method.notFound - count: 17 + count: 15 path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - @@ -45177,7 +45297,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\:\:expects\(\)\.$#' identifier: method.notFound - count: 17 + count: 16 path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - @@ -45366,6 +45486,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php + - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$contentHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\) in isset\(\) is not nullable\.$#' identifier: isset.property @@ -45576,6 +45702,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php + - + message: '#^Offset int\<\-1, max\> might not exist on array\{\}\|array\{0\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}, 1\?\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}\}\.$#' + identifier: offsetAccess.notFound + count: 2 + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php + - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$value \(Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldValue\) does not accept null\.$#' identifier: assign.propertyType @@ -47463,7 +47595,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' identifier: method.notFound - count: 34 + count: 31 path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - @@ -47535,13 +47667,13 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' identifier: method.notFound - count: 6 + count: 4 path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' identifier: method.notFound - count: 20 + count: 19 path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - @@ -47652,6 +47784,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php + - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\Relation\\CreateStruct supplied for foreach, only iterables are supported\.$#' identifier: foreach.nonIterable @@ -48021,7 +48159,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\:\:expects\(\)\.$#' identifier: method.notFound - count: 39 + count: 32 path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - @@ -48030,6 +48168,12 @@ parameters: count: 18 path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php + - + message: '#^Match expression does not handle remaining values\: int\\|int\<4, max\>$#' + identifier: match.unhandled + count: 1 + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testCreate\(\) has no return type specified\.$#' identifier: missingType.return @@ -48423,7 +48567,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\:\:expects\(\)\.$#' identifier: method.notFound - count: 3 + count: 2 path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - @@ -49488,6 +49632,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php + - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias supplied for foreach, only iterables are supported\.$#' identifier: foreach.nonIterable @@ -50875,7 +51025,7 @@ parameters: path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - message: '#^Generator expects value type Doctrine\\DBAL\\Connection\|PHPUnit\\Framework\\MockObject\\MockObject, array\ given\.$#' + message: '#^Generator expects value type Doctrine\\DBAL\\Connection\|PHPUnit\\Framework\\MockObject\\MockObject, array\ given\.$#' identifier: generator.valueType count: 1 path: tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php @@ -51127,19 +51277,19 @@ parameters: path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Parameter \#1 \$criterion of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\:\:accept\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\Query\\Criterion, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + message: '#^Parameter \#1 \$criterion of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\:\:accept\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\Query\\Criterion, PHPUnit\\Framework\\MockObject\\Stub given\.$#' identifier: argument.type count: 2 path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' + message: '#^Parameter \#1 \$originalClassName of static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) expects class\-string\, string given\.$#' identifier: argument.type count: 2 path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + message: '#^Unable to resolve the template type T in call to static method PHPUnit\\Framework\\TestCase\:\:createStub\(\)$#' identifier: argument.templateType count: 2 path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php @@ -51150,6 +51300,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php + - + message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\LogicalNotTest\:\:testAccept\(\) has no return type specified\.$#' identifier: missingType.return @@ -51162,6 +51318,12 @@ parameters: count: 1 path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php + - + message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\MatchAllTest\:\:testAccept\(\) has no return type specified\.$#' identifier: missingType.return @@ -52921,7 +53083,7 @@ parameters: path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SearchServiceDecorator@anonymous/tests/lib/Repository/Decorator/SearchServiceDecoratorTest\.php\:23 constructor expects Ibexa\\Contracts\\Core\\Repository\\SearchService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SearchServiceDecorator@anonymous/tests/lib/Repository/Decorator/SearchServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\SearchService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type count: 1 path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php @@ -53580,6 +53742,12 @@ parameters: count: 1 path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php + - + message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:failureDescription\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php + - message: '#^Class Ibexa\\Tests\\Core\\Repository\\Parallel\\ParallelProcessList implements generic interface IteratorAggregate but does not specify its types\: TKey, TValue$#' identifier: missingType.generics @@ -53766,6 +53934,12 @@ parameters: count: 1 path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php + - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:\$limitationServiceMock has no type specified\.$#' identifier: missingType.property @@ -53802,6 +53976,12 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/Base.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/Base.php + - message: '#^Parameter \#2 \$searchHandler of class Ibexa\\Core\\Repository\\Repository constructor expects Ibexa\\Contracts\\Core\\Search\\Handler, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type @@ -55020,6 +55200,18 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/ContentTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:addMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php + + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php + - message: '#^Parameter \#1 \$singular of class Ibexa\\Core\\FieldType\\ValidationError constructor expects string, int given\.$#' identifier: argument.type @@ -55059,7 +55251,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\User\\Handler\:\:expects\(\)\.$#' identifier: method.notFound - count: 11 + count: 6 path: tests/lib/Repository/Service/Mock/PermissionTest.php - @@ -55356,6 +55548,12 @@ parameters: count: 3 path: tests/lib/Repository/Service/Mock/PermissionTest.php + - + message: '#^Parameter \#1 \$userHandlerMock of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:mockLoadRoleSequence\(\) expects PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' + identifier: argument.type + count: 5 + path: tests/lib/Repository/Service/Mock/PermissionTest.php + - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$permissionResolverMock has no type specified\.$#' identifier: missingType.property @@ -55383,7 +55581,7 @@ parameters: - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\Content\\Location\\Handler\:\:expects\(\)\.$#' identifier: method.notFound - count: 2 + count: 3 path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - @@ -55393,8 +55591,8 @@ parameters: path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$callCounter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$expectedLocationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php @@ -55404,12 +55602,6 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$locationHandlerMock with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$type with no type specified\.$#' identifier: missingType.parameter @@ -55506,6 +55698,12 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php + - message: '#^Parameter \#5 \$fieldDefinitionId of method Ibexa\\Core\\Repository\\Helper\\RelationProcessor\:\:appendFieldRelations\(\) expects string, int given\.$#' identifier: argument.type @@ -55669,7 +55867,7 @@ parameters: path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' identifier: varTag.nativeType count: 6 path: tests/lib/Repository/Service/Mock/RoleTest.php @@ -55681,17 +55879,23 @@ parameters: path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' identifier: varTag.nativeType count: 3 path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroup is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroup is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' identifier: varTag.nativeType count: 3 path: tests/lib/Repository/Service/Mock/RoleTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/RoleTest.php + - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:\$partlyMockedRoleService \(Ibexa\\Core\\Repository\\RoleService\) in isset\(\) is not nullable\.$#' identifier: isset.property @@ -56832,6 +57036,12 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/UrlAliasTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php + - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' identifier: argument.type @@ -57042,12 +57252,6 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/UrlTest.php - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:withConsecutive\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$limit \(int\) does not accept string\.$#' identifier: assign.propertyType @@ -57246,6 +57450,12 @@ parameters: count: 1 path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php + - + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php + - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:\$urlWildcardHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlWildcard\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' identifier: assign.propertyType @@ -57331,7 +57541,7 @@ parameters: path: tests/lib/Repository/Service/Mock/UserTest.php - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects array\, array\\|null given\.$#' + message: '#^Parameter \#1 \$array of function array_values expects array\, array\\|null given\.$#' identifier: argument.type count: 1 path: tests/lib/Repository/Service/Mock/UserTest.php @@ -57342,6 +57552,12 @@ parameters: count: 2 path: tests/lib/Repository/Service/Mock/UserTest.php + - + message: '#^Call to an undefined method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:addWarning\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php + - message: '#^Call to method expects\(\) on an unknown class object\.$#' identifier: class.notFound @@ -57534,6 +57750,12 @@ parameters: count: 1 path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php + - + message: '#^Yield can be used only with these return types\: Generator, Iterator, Traversable, iterable\.$#' + identifier: generator.returnType + count: 1 + path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LocationServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -57618,6 +57840,12 @@ parameters: count: 1 path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + - + message: '#^Undefined variable\: \$this$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\TrashServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -57630,6 +57858,12 @@ parameters: count: 1 path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php + - + message: '#^Yield can be used only with these return types\: Generator, Iterator, Traversable, iterable\.$#' + identifier: generator.returnType + count: 1 + path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -57678,6 +57912,12 @@ parameters: count: 1 path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + - + message: '#^Undefined variable\: \$this$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UserServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue diff --git a/phpunit-integration-legacy-solr.xml b/phpunit-integration-legacy-solr.xml index fd22dd1b03..750f1b1199 100644 --- a/phpunit-integration-legacy-solr.xml +++ b/phpunit-integration-legacy-solr.xml @@ -1,10 +1,5 @@ - - - - tests/integration - - + @@ -43,4 +38,9 @@ tests/integration/Core/Repository/KeywordFieldCriterionTest.php + + + tests/integration + + diff --git a/phpunit-integration-legacy.xml b/phpunit-integration-legacy.xml index e90e63df74..15e6394eb9 100644 --- a/phpunit-integration-legacy.xml +++ b/phpunit-integration-legacy.xml @@ -1,10 +1,5 @@ - - - - tests/integration - - + @@ -53,4 +48,9 @@ tests/integration/RepositoryInstaller + + + tests/integration + + diff --git a/phpunit-integration.xml b/phpunit-integration.xml index 5f8c3cc801..6da6168244 100644 --- a/phpunit-integration.xml +++ b/phpunit-integration.xml @@ -1,46 +1,37 @@ - - - - - - - - - - - - tests/integration/Core/BasicKernelTest.php - tests/integration/Core/Repository/SerializationTest.php - tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php - tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php - tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php - tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php - tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php - tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php - tests/integration/Core/Repository/ContentService/ContentUpdateAfterAddingFieldDefinitionTest.php - tests/integration/Core/Repository/ContentService/UpdateContentTest.php - tests/integration/Core/Repository/ContentService/ImageAssetTest.php - tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php - tests/integration/Core/Repository/ContentService/DeleteContentTest.php - tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php - tests/integration/Core/Repository/SearchServiceBookmarkTest.php - tests/integration/Core/Repository/SearchServiceContentNameTest.php - tests/integration/Core/Repository/SearchServiceImageTest.php - tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php - tests/integration/Core/Repository/KeywordFieldCriterionTest.php - - - - - + + + + + + + + + + + + tests/integration/Core/BasicKernelTest.php + tests/integration/Core/Repository/SerializationTest.php + tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php + tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php + tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php + tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php + tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php + tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php + tests/integration/Core/Repository/ContentService/ContentUpdateAfterAddingFieldDefinitionTest.php + tests/integration/Core/Repository/ContentService/UpdateContentTest.php + tests/integration/Core/Repository/ContentService/ImageAssetTest.php + tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php + tests/integration/Core/Repository/ContentService/DeleteContentTest.php + tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php + tests/integration/Core/Repository/SearchServiceBookmarkTest.php + tests/integration/Core/Repository/SearchServiceContentNameTest.php + tests/integration/Core/Repository/SearchServiceImageTest.php + tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php + tests/integration/Core/Repository/KeywordFieldCriterionTest.php + + + + + + diff --git a/phpunit.xml b/phpunit.xml index 9bbf6c9b6d..8d982c6a79 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,15 +1,7 @@ - + + - + @@ -32,7 +24,7 @@ tests/bundle/LegacySearchEngine - - - + + + diff --git a/tests/bundle/Core/ApiLoader/CacheFactoryTest.php b/tests/bundle/Core/ApiLoader/CacheFactoryTest.php index 40918937fb..42c6145662 100644 --- a/tests/bundle/Core/ApiLoader/CacheFactoryTest.php +++ b/tests/bundle/Core/ApiLoader/CacheFactoryTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\ApiLoader\CacheFactory; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\Cache\Adapter\AdapterInterface; @@ -32,7 +33,7 @@ protected function setUp(): void /** * @return array */ - public function providerGetService(): array + public static function providerGetService(): array { return [ ['default', 'default'], @@ -41,9 +42,7 @@ public function providerGetService(): array ]; } - /** - * @dataProvider providerGetService - */ + #[DataProvider('providerGetService')] public function testGetService($name, $expected): void { $this->configResolver @@ -56,7 +55,7 @@ public function testGetService($name, $expected): void ->expects(self::once()) ->method('get') ->with($expected) - ->will(self::returnValue($this->createMock(AdapterInterface::class))); + ->will(self::returnValue(self::createStub(AdapterInterface::class))); $factory = new CacheFactory($this->container); diff --git a/tests/bundle/Core/ApiLoader/RepositoryConfigurationProviderTest.php b/tests/bundle/Core/ApiLoader/RepositoryConfigurationProviderTest.php index 29377eea48..305f9ecf09 100644 --- a/tests/bundle/Core/ApiLoader/RepositoryConfigurationProviderTest.php +++ b/tests/bundle/Core/ApiLoader/RepositoryConfigurationProviderTest.php @@ -11,13 +11,14 @@ use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidRepositoryException; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; /** - * @covers \Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider - * * @phpstan-import-type TRepositoryListConfiguration from \Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider */ +#[CoversClass(RepositoryConfigurationProvider::class)] final class RepositoryConfigurationProviderTest extends BaseRepositoryConfigurationProviderTestCase { /** @@ -61,12 +62,11 @@ public function testGetRepositoryConfigNotSpecifiedRepository(): void } /** - * @dataProvider providerForRepositories - * * @phpstan-param TRepositoryListConfiguration $repositories * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForRepositories')] public function testGetRepositoryConfigUndefinedRepository(array $repositories): void { $this->expectException(InvalidRepositoryException::class); @@ -83,12 +83,11 @@ public function testGetRepositoryConfigUndefinedRepository(array $repositories): } /** - * @dataProvider providerForRepositories - * * @phpstan-param TRepositoryListConfiguration $repositories * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForRepositories')] public function testGetDefaultRepositoryAlias(array $repositories): void { $configResolver = $this->getConfigResolverMock(); @@ -100,10 +99,9 @@ public function testGetDefaultRepositoryAlias(array $repositories): void } /** - * @dataProvider providerForRepositories - * * @phpstan-param TRepositoryListConfiguration $repositories */ + #[DataProvider('providerForRepositories')] public function testGetCurrentRepositoryAlias(array $repositories): void { $configResolver = $this->getConfigResolverMock(); @@ -117,7 +115,7 @@ public function testGetCurrentRepositoryAlias(array $repositories): void /** * @phpstan-return list> $repositories */ - public function providerForRepositories(): array + public static function providerForRepositories(): array { return [ [self::REPOSITORIES_CONFIG], diff --git a/tests/bundle/Core/ApiLoader/StorageConnectionFactoryTest.php b/tests/bundle/Core/ApiLoader/StorageConnectionFactoryTest.php index b3b14a61a3..4bd6db85f9 100644 --- a/tests/bundle/Core/ApiLoader/StorageConnectionFactoryTest.php +++ b/tests/bundle/Core/ApiLoader/StorageConnectionFactoryTest.php @@ -14,15 +14,14 @@ use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ServiceLocator; final class StorageConnectionFactoryTest extends BaseRepositoryConfigurationProviderTestCase { - /** - * @dataProvider getConnectionProvider - */ + #[DataProvider('getConnectionProvider')] public function testGetConnection(string $repositoryAlias, string $doctrineConnection): void { $repositories = [ @@ -143,7 +142,7 @@ private function buildStorageConnectionFactory( ; $serviceLocatorMock->method('getProvidedServices')->willReturn($doctrineConnections); if (isset($doctrineConnections[$connectionName])) { - $serviceLocatorMock->method('get')->with($connectionName)->willReturn($this->createMock(Connection::class)); + $serviceLocatorMock->method('get')->with($connectionName)->willReturn(self::createStub(Connection::class)); } else { $serviceLocatorMock->expects(self::never())->method('get'); } diff --git a/tests/bundle/Core/ApiLoader/StorageEngineFactoryTest.php b/tests/bundle/Core/ApiLoader/StorageEngineFactoryTest.php index cdc606e79a..5a8dcd9a0e 100644 --- a/tests/bundle/Core/ApiLoader/StorageEngineFactoryTest.php +++ b/tests/bundle/Core/ApiLoader/StorageEngineFactoryTest.php @@ -19,7 +19,7 @@ final class StorageEngineFactoryTest extends BaseRepositoryConfigurationProvider { public function testRegisterStorageEngine(): void { - $repositoryConfigurationProvider = $this->createMock(RepositoryConfigurationProviderInterface::class); + $repositoryConfigurationProvider = self::createStub(RepositoryConfigurationProviderInterface::class); $factory = new StorageEngineFactory($repositoryConfigurationProvider); $storageEngines = [ diff --git a/tests/bundle/Core/ChainConfigResolverTest.php b/tests/bundle/Core/ChainConfigResolverTest.php index 0c46cedae0..e455f378cc 100644 --- a/tests/bundle/Core/ChainConfigResolverTest.php +++ b/tests/bundle/Core/ChainConfigResolverTest.php @@ -10,11 +10,11 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\ChainConfigResolver; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Exception\ParameterNotFoundException; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\DependencyInjection\Configuration\ChainConfigResolver - */ +#[CoversClass(ChainConfigResolver::class)] class ChainConfigResolverTest extends TestCase { /** @var \Ibexa\Bundle\Core\DependencyInjection\Configuration\ChainConfigResolver */ @@ -86,22 +86,13 @@ public function testReSortResolvers() ChainConfigResolver::class, ['sortResolvers'] ); - $resolver - ->expects(self::at(0)) - ->method('sortResolvers') - ->will( - self::returnValue( - [$high, $medium, $low] - ) - ); // The second time sortResolvers() is called, we're supposed to get the newly added router ($highest) $resolver - ->expects(self::at(1)) + ->expects(self::exactly(2)) ->method('sortResolvers') - ->will( - self::returnValue( - [$highest, $high, $medium, $low] - ) + ->willReturnOnConsecutiveCalls( + [$high, $medium, $low], + [$highest, $high, $medium, $low] ); $resolver->addResolver($low, 10); @@ -161,13 +152,12 @@ public function testGetParameterInvalid() } /** - * @dataProvider getParameterProvider - * * @param string $paramName * @param string $namespace * @param string $scope * @param mixed $expectedValue */ + #[DataProvider('getParameterProvider')] public function testGetParameter($paramName, $namespace, $scope, $expectedValue) { $resolver = $this->createMock(ConfigResolverInterface::class); @@ -181,7 +171,7 @@ public function testGetParameter($paramName, $namespace, $scope, $expectedValue) self::assertSame($expectedValue, $this->chainResolver->getParameter($paramName, $namespace, $scope)); } - public function getParameterProvider() + public static function getParameterProvider() { return [ ['foo', 'namespace', 'scope', 'someValue'], @@ -245,18 +235,21 @@ public function testHasParameterFalse() private function createResolverMocks() { return [ - $this->createMock(ConfigResolverInterface::class), - $this->createMock(ConfigResolverInterface::class), - $this->createMock(ConfigResolverInterface::class), + self::createStub(ConfigResolverInterface::class), + self::createStub(ConfigResolverInterface::class), + self::createStub(ConfigResolverInterface::class), ]; } private function buildMock($class, array $methods = []) { - return $this + $builder = $this ->getMockBuilder($class) - ->disableOriginalConstructor() - ->setMethods($methods) - ->getMock(); + ->disableOriginalConstructor(); + if ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + + return $builder->getMock(); } } diff --git a/tests/bundle/Core/Command/Indexer/ContentIdList/ContentTypeInputGeneratorStrategyTest.php b/tests/bundle/Core/Command/Indexer/ContentIdList/ContentTypeInputGeneratorStrategyTest.php index 9bb6c7a39f..59b02f676d 100644 --- a/tests/bundle/Core/Command/Indexer/ContentIdList/ContentTypeInputGeneratorStrategyTest.php +++ b/tests/bundle/Core/Command/Indexer/ContentIdList/ContentTypeInputGeneratorStrategyTest.php @@ -13,21 +13,20 @@ use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\ContentList; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\Content\Content; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Console\Input\InputInterface; -/** - * @covers \Ibexa\Bundle\Core\Command\Indexer\ContentIdList\ContentTypeInputGeneratorStrategy - */ +#[CoversClass(ContentTypeInputGeneratorStrategy::class)] final class ContentTypeInputGeneratorStrategyTest extends TestCase { /** - * @dataProvider getDataForTestGetGenerator - * * @param array $expectedBatches */ + #[DataProvider('getDataForTestGetGenerator')] public function testGetGenerator(ContentList $contentList, int $batchSize, array $expectedBatches): void { $contentServiceMock = $this->createMock(ContentService::class); @@ -57,10 +56,10 @@ public function testGetGenerator(ContentList $contentList, int $batchSize, array /** * @return iterable}> */ - public function getDataForTestGetGenerator(): iterable + public static function getDataForTestGetGenerator(): iterable { yield 'iteration count = 3, items = 10' => [ - $this->generateContentList(10), + self::generateContentList(10), 3, [ [1, 2, 3], @@ -71,7 +70,7 @@ public function getDataForTestGetGenerator(): iterable ]; yield 'iteration count = 6, items = 6' => [ - $this->generateContentList(6), + self::generateContentList(6), 6, [ [1, 2, 3, 4, 5, 6], @@ -79,7 +78,7 @@ public function getDataForTestGetGenerator(): iterable ]; yield 'iteration count = 2, items = 4' => [ - $this->generateContentList(4), + self::generateContentList(4), 2, [ [1, 2], @@ -88,7 +87,7 @@ public function getDataForTestGetGenerator(): iterable ]; yield 'iteration count = 10, items = 5' => [ - $this->generateContentList(5), + self::generateContentList(5), 10, [ [1, 2, 3, 4, 5], @@ -96,31 +95,28 @@ public function getDataForTestGetGenerator(): iterable ]; yield 'iteration count = 5, items = 0' => [ - $this->generateContentList(0), + self::generateContentList(0), 5, [], ]; } - private function generateContentList(int $totalCount): ContentList + private static function generateContentList(int $totalCount): ContentList { $contentItems = []; for ($i = 0; $i < $totalCount; ++$i) { - $contentItems[] = $this->createContentItemWithIdMock($i + 1); + $contentItems[] = self::createContentItemWithId($i + 1); } return new ContentList($totalCount, $contentItems); } - private function createContentItemWithIdMock(int $id): Content + private static function createContentItemWithId(int $id): Content { - $contentItem = $this->createMock(Content::class); - $contentInfoMock = $this->createMock(ContentInfo::class); - $contentInfoMock->method('getId')->willReturn($id); - $versionInfoMock = $this->createMock(VersionInfo::class); - $versionInfoMock->method('getContentInfo')->willReturn($contentInfoMock); - $contentItem->method('getVersionInfo')->willReturn($versionInfoMock); - - return $contentItem; + return new Content([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['id' => $id]), + ]), + ]); } } diff --git a/tests/bundle/Core/ControllerArgumentResolver/LocationArgumentResolverTest.php b/tests/bundle/Core/ControllerArgumentResolver/LocationArgumentResolverTest.php index d6ce209d2d..a2e3b8e319 100644 --- a/tests/bundle/Core/ControllerArgumentResolver/LocationArgumentResolverTest.php +++ b/tests/bundle/Core/ControllerArgumentResolver/LocationArgumentResolverTest.php @@ -13,13 +13,13 @@ use Ibexa\Contracts\Core\Exception\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; -/** - * @covers \Ibexa\Bundle\Core\Converter\LocationArgumentResolver - */ +#[CoversClass(LocationArgumentResolver::class)] final class LocationArgumentResolverTest extends TestCase { private const PARAMETER_LOCATION_ID = 'locationId'; @@ -28,13 +28,10 @@ final class LocationArgumentResolverTest extends TestCase protected function setUp(): void { - $locationService = $this->createMock(LocationService::class); - $this->locationArgumentResolver = new LocationArgumentResolver($locationService); + $this->locationArgumentResolver = new LocationArgumentResolver(self::createStub(LocationService::class)); } - /** - * @dataProvider dataProviderForTestResolverForUnsupportedRequest - */ + #[DataProvider('dataProviderForTestResolverForUnsupportedRequest')] public function testResolveForUnsupportedRequest( Request $request, ArgumentMetadata $argumentMetadata @@ -58,7 +55,7 @@ public function testResolveThrowsInvalidArgumentException(): void 'locationId' => 'foo', ] ), - $this->createArgumentMetadata(Location::class) + self::createArgumentMetadata(Location::class) ); self::assertInstanceOf(Generator::class, $generator); @@ -69,8 +66,8 @@ public function testResolveThrowsInvalidArgumentException(): void public function testResolve(): void { $resolvedArgumentsGenerator = $this->locationArgumentResolver->resolve( - $this->createRequest(true, false, 1), - $this->createArgumentMetadata(Location::class) + self::createRequest(true, false, 1), + self::createArgumentMetadata(Location::class) ); self::assertInstanceOf(Generator::class, $resolvedArgumentsGenerator); @@ -91,37 +88,32 @@ public function testResolve(): void * \Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata * }> */ - public function dataProviderForTestResolverForUnsupportedRequest(): iterable + public static function dataProviderForTestResolverForUnsupportedRequest(): iterable { - $locationBasedArgumentMetadata = $this->createArgumentMetadata(Location::class); + $locationBasedArgumentMetadata = self::createArgumentMetadata(Location::class); yield 'Not supported - type different than Ibexa\Contracts\Core\Repository\Values\Content\Location' => [ - $this->createRequest(true, false, 1), - $this->createArgumentMetadata('foo'), + self::createRequest(true, false, 1), + self::createArgumentMetadata('foo'), ]; yield 'Not supported - locationId passed to request attributes' => [ - $this->createRequest(false, true, 1), + self::createRequest(false, true, 1), $locationBasedArgumentMetadata, ]; yield 'Not supported - locationId passed to request attributes and query' => [ - $this->createRequest(true, true, 1), + self::createRequest(true, true, 1), $locationBasedArgumentMetadata, ]; } - private function createArgumentMetadata(string $type): ArgumentMetadata + private static function createArgumentMetadata(string $type): ArgumentMetadata { - $argumentMetadata = $this->createMock(ArgumentMetadata::class); - $argumentMetadata - ->method('getType') - ->willReturn($type); - - return $argumentMetadata; + return new ArgumentMetadata('locationId', $type, false, false, null); } - private function createRequest( + private static function createRequest( bool $addToQuery, bool $addToAttributes, ?int $locationId = null diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php index 5d79973cdd..b9be5a7c9b 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php @@ -10,13 +10,13 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainConfigResolverPass; use Ibexa\Bundle\Core\DependencyInjection\Configuration\ChainConfigResolver; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; -/** - * @covers \Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainConfigResolverPass - */ +#[CoversClass(ChainConfigResolverPass::class)] class ChainConfigResolverPassTest extends AbstractCompilerPassTestCase { protected function setUp(): void @@ -39,9 +39,8 @@ protected function registerCompilerPass(ContainerBuilder $container): void /** * @param int|null $declaredPriority * @param int $expectedPriority - * - * @dataProvider addResolverProvider */ + #[DataProvider('addResolverProvider')] public function testAddResolver($declaredPriority, $expectedPriority) { $resolverDef = new Definition(); @@ -63,7 +62,7 @@ public function testAddResolver($declaredPriority, $expectedPriority) ); } - public function addResolverProvider() + public static function addResolverProvider() { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php index c557e62eb7..605e474a36 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php @@ -10,13 +10,13 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainRoutingPass; use Ibexa\Core\MVC\Symfony\Routing\ChainRouter; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; -/** - * @covers \Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainRoutingPass - */ +#[CoversClass(ChainRoutingPass::class)] class ChainRoutingPassTest extends AbstractCompilerPassTestCase { protected function setUp(): void @@ -39,9 +39,8 @@ protected function registerCompilerPass(ContainerBuilder $container): void /** * @param int|null $declaredPriority * @param int $expectedPriority - * - * @dataProvider addRouterProvider */ + #[DataProvider('addRouterProvider')] public function testAddRouter($declaredPriority, $expectedPriority) { $resolverDef = new Definition(); @@ -65,9 +64,8 @@ public function testAddRouter($declaredPriority, $expectedPriority) /** * @param int|null $declaredPriority * @param int $expectedPriority - * - * @dataProvider addRouterProvider */ + #[DataProvider('addRouterProvider')] public function testAddRouterWithDefaultRouter($declaredPriority, $expectedPriority) { $defaultRouter = new Definition(); @@ -100,7 +98,7 @@ public function testAddRouterWithDefaultRouter($declaredPriority, $expectedPrior ); } - public function addRouterProvider() + public static function addRouterProvider() { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php index 9e19239e81..681887c8d9 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\FieldTypeParameterProviderRegistryPass; use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderRegistry; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -33,9 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new FieldTypeParameterProviderRegistryPass()); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterFieldType(string $tag) { $fieldTypeIdentifier = 'field_type_identifier'; @@ -54,10 +53,9 @@ public function testRegisterFieldType(string $tag) } /** - * @dataProvider tagsProvider - * * @param string $tag */ + #[DataProvider('tagsProvider')] public function testRegisterFieldTypeNoAlias(string $tag) { $this->expectException(\LogicException::class); @@ -77,7 +75,7 @@ public function testRegisterFieldTypeNoAlias(string $tag) ); } - public function tagsProvider(): array + public static function tagsProvider(): array { return [ [FieldTypeParameterProviderRegistryPass::FIELD_TYPE_PARAMETER_PROVIDER_SERVICE_TAG], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/QueryTypePassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/QueryTypePassTest.php index 3fede95012..924eacf3ed 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/QueryTypePassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/QueryTypePassTest.php @@ -13,6 +13,7 @@ use Ibexa\Tests\Bundle\Core\DependencyInjection\Stub\QueryTypeBundle\QueryType\TestQueryType; use Ibexa\Tests\Bundle\Core\DependencyInjection\Stub\QueryTypeBundle\QueryTypeBundle; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -31,9 +32,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new QueryTypePass()); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterTaggedQueryType(string $tag): void { $def = new Definition(); @@ -50,9 +49,7 @@ public function testRegisterTaggedQueryType(string $tag): void ); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterTaggedQueryTypeWithClassAsParameter(string $tag): void { $this->setParameter('query_type_class', TestQueryType::class); @@ -75,9 +72,8 @@ public function testRegisterTaggedQueryTypeWithClassAsParameter(string $tag): vo * * The QueryType class will still be registered, as the aliases are different from the * built-in alias of the class. - * - * @dataProvider tagsProvider */ + #[DataProvider('tagsProvider')] public function testTaggedOverride(string $tag): void { $this->setParameter('kernel.bundles', ['QueryTypeBundle' => QueryTypeBundle::class]); @@ -107,7 +103,7 @@ public function testTaggedOverride(string $tag): void ); } - public function tagsProvider(): iterable + public static function tagsProvider(): iterable { return [ [QueryTypePass::QUERY_TYPE_SERVICE_TAG], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEngineIndexerPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEngineIndexerPassTest.php index 400f175656..be53b7eb63 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEngineIndexerPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEngineIndexerPassTest.php @@ -12,6 +12,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\RegisterSearchEngineIndexerPass; use LogicException; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -33,9 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new RegisterSearchEngineIndexerPass()); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterSearchEngineIndexer(string $tag): void { $definition = new Definition(); @@ -56,9 +55,7 @@ public function testRegisterSearchEngineIndexer(string $tag): void ); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterSearchEngineIndexerWithoutAliasThrowsLogicException(string $tag): void { $this->expectException(LogicException::class); @@ -70,7 +67,7 @@ public function testRegisterSearchEngineIndexerWithoutAliasThrowsLogicException( $this->compile(); } - public function tagsProvider(): iterable + public static function tagsProvider(): iterable { return [ [RegisterSearchEngineIndexerPass::SEARCH_ENGINE_INDEXER_SERVICE_TAG], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEnginePassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEnginePassTest.php index 1b6a2a3692..160b316607 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEnginePassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEnginePassTest.php @@ -12,6 +12,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\RegisterSearchEnginePass; use LogicException; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -33,9 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new RegisterSearchEnginePass()); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterSearchEngine(string $tag): void { $definition = new Definition(); @@ -56,9 +55,7 @@ public function testRegisterSearchEngine(string $tag): void ); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterSearchEngineWithoutAliasThrowsLogicException(string $tag): void { $this->expectException(LogicException::class); @@ -70,7 +67,7 @@ public function testRegisterSearchEngineWithoutAliasThrowsLogicException(string $this->compile(); } - public function tagsProvider(): iterable + public static function tagsProvider(): iterable { return [ [RegisterSearchEnginePass::SEARCH_ENGINE_SERVICE_TAG], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php index b679a7aa2c..766e5295d8 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php @@ -11,6 +11,7 @@ use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; use Ibexa\Core\Persistence\TransformationProcessor; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use ReflectionClass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -26,21 +27,20 @@ protected function registerCompilerPass(ContainerBuilder $container): void } /** - * @dataProvider configurationProvider - * * @param array $commandsToAdd * @param array $existingOldParameters * @param array $expectedCommands * * @throws \ReflectionException */ + #[DataProvider('configurationProvider')] public function testMergeConfigurations( array $commandsToAdd, array $existingOldParameters, array $expectedCommands ) { $definition = new Definition(SlugConverter::class); - $definition->setArgument(0, $this->createMock(TransformationProcessor::class)); + $definition->setArgument(0, self::createStub(TransformationProcessor::class)); $definition->setArgument(1, $existingOldParameters); $definition->setPublic(true); @@ -70,7 +70,7 @@ public function testMergeConfigurations( self::assertEquals('url_cleanup', $configuration['transformationGroups']['urlalias']['cleanupMethod']); } - public function configurationProvider() + public static function configurationProvider() { $injectedBySemanticCommands = [ 'new_command_to_add', diff --git a/tests/bundle/Core/DependencyInjection/Compiler/StorageConnectionFactoryPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/StorageConnectionFactoryPassTest.php index 1d06c290ba..75214a756d 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/StorageConnectionFactoryPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/StorageConnectionFactoryPassTest.php @@ -11,13 +11,12 @@ use Ibexa\Bundle\Core\ApiLoader\StorageConnectionFactory; use Ibexa\Bundle\Core\DependencyInjection\Compiler\StorageConnectionFactoryPass; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; -/** - * @covers \Ibexa\Bundle\Core\DependencyInjection\Compiler\StorageConnectionFactoryPass - */ +#[CoversClass(StorageConnectionFactoryPass::class)] final class StorageConnectionFactoryPassTest extends AbstractCompilerPassTestCase { protected function setUp(): void diff --git a/tests/bundle/Core/DependencyInjection/Compiler/TranslationCollectorPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/TranslationCollectorPassTest.php index 89ccd8aff1..b377c19cf3 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/TranslationCollectorPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/TranslationCollectorPassTest.php @@ -9,6 +9,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\TranslationCollectorPass; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -19,9 +20,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new TranslationCollectorPass()); } - /** - * @dataProvider translationCollectorProvider - */ + #[DataProvider('translationCollectorProvider')] public function testTranslationCollector( bool $translationsEnabled, array $availableTranslations @@ -43,7 +42,7 @@ private function normalizePath(string $path): string /** * @return iterable */ - public function translationCollectorProvider(): iterable + public static function translationCollectorProvider(): iterable { yield 'translations enabled' => [ true, diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php index 8cfa5c4418..033d02be7e 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Compiler\ViewProvidersPass; use Ibexa\Core\MVC\Symfony\View\Provider\Registry; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -33,9 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new ViewProvidersPass()); } - /** - * @dataProvider addViewProviderProvider - */ + #[DataProvider('addViewProviderProvider')] public function testAddViewProvider($declaredPriority, $expectedPriority) { $def = new Definition(); @@ -58,7 +57,7 @@ public function testAddViewProvider($declaredPriority, $expectedPriority) ); } - public function addViewProviderProvider() + public static function addViewProviderProvider() { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php index a2c60061cf..145ebc63fd 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Bundle\Core\DependencyInjection\Configuration\ComplexSettings; use Ibexa\Bundle\Core\DependencyInjection\Configuration\ComplexSettings\ComplexSettingParser; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ComplexSettingParserTest extends TestCase @@ -20,23 +21,19 @@ protected function setUp(): void $this->parser = new ComplexSettingParser(); } - /** - * @dataProvider provideSettings - */ + #[DataProvider('provideSettings')] public function testContainsDynamicSettings($setting, $expected) { self::assertEquals($expected[0], $this->parser->containsDynamicSettings($setting), 'string'); } - /** - * @dataProvider provideSettings - */ + #[DataProvider('provideSettings')] public function testParseComplexSetting($setting, $expected) { self::assertEquals($expected[1], $this->parser->parseComplexSetting($setting), 'string'); } - public function provideSettings() + public static function provideSettings() { // array( setting, array( isDynamicSetting, containsDynamicSettings ) ) return [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ConfigParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ConfigParserTest.php index 0838525084..acf3457bd5 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ConfigParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ConfigParserTest.php @@ -82,7 +82,7 @@ public function testMapConfig(): void 'some' => 'thing', ]; $currentScope = 'the_current_scope'; - $contextualizer = $this->createMock(ContextualizerInterface::class); + $contextualizer = self::createStub(ContextualizerInterface::class); foreach ($parsers as $parser) { /* @var \PHPUnit\Framework\MockObject\MockObject $parser */ @@ -110,7 +110,7 @@ public function testPrePostMap(): void 'foo' => 'bar', 'some' => 'thing', ]; - $contextualizer = $this->createMock(ContextualizerInterface::class); + $contextualizer = self::createStub(ContextualizerInterface::class); foreach ($parsers as $parser) { /* @var \PHPUnit\Framework\MockObject\MockObject $parser */ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ChainConfigResolverTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ChainConfigResolverTest.php index 727ece69e9..a9ce439ea0 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ChainConfigResolverTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ChainConfigResolverTest.php @@ -17,6 +17,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\SiteAccess\Provider\StaticSiteAccessProvider; use Ibexa\Core\MVC\Symfony\SiteAccessGroup; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use function sprintf; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -46,9 +47,7 @@ protected function setUp(): void $this->containerMock = $this->createMock(ContainerInterface::class); } - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testGetParameterDefaultScope(string $paramName, $expectedValue): void { $globalScopeParameter = $this->getParameter($paramName, self::SCOPE_GLOBAL); @@ -77,9 +76,7 @@ public function testGetParameterDefaultScope(string $paramName, $expectedValue): self::assertSame($expectedValue, $this->getChainConfigResolver()->getParameter($paramName)); } - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testGetParameterRelativeScope(string $paramName, $expectedValue): void { $globalScopeParameter = $this->getParameter($paramName, self::SCOPE_GLOBAL); @@ -104,9 +101,7 @@ public function testGetParameterRelativeScope(string $paramName, $expectedValue) self::assertSame($expectedValue, $this->getChainConfigResolver()->getParameter($paramName)); } - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testGetParameterSpecificScope(string $paramName, $expectedValue): void { $specificScopeParameter = $this->getParameter($paramName, self::FIRST_SA_NAME); @@ -133,9 +128,7 @@ public function testGetParameterSpecificScope(string $paramName, $expectedValue) ); } - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testGetParameterGlobalScope(string $paramName, $expectedValue): void { $globalScopeParameter = $this->getParameter($paramName, self::SCOPE_GLOBAL); @@ -153,9 +146,7 @@ public function testGetParameterGlobalScope(string $paramName, $expectedValue): self::assertSame($expectedValue, $this->getChainConfigResolver()->getParameter($paramName)); } - /** - * @dataProvider hasParameterProvider - */ + #[DataProvider('hasParameterProvider')] public function testHasParameterNoNamespace( bool $defaultMatch, bool $groupMatch, @@ -182,9 +173,7 @@ public function testHasParameterNoNamespace( self::assertSame($expectedResult, $chainConfigResolver->hasParameter($paramName)); } - /** - * @dataProvider hasParameterProvider - */ + #[DataProvider('hasParameterProvider')] public function testHasParameterWithNamespaceAndScope( bool $defaultMatch, bool $groupMatch, @@ -274,7 +263,7 @@ private function getStaticSiteAccessProvider(): StaticSiteAccessProvider ); } - public function parameterProvider(): array + public static function parameterProvider(): array { return [ ['foo', 'bar'], @@ -301,7 +290,7 @@ public function parameterProvider(): array ]; } - public function hasParameterProvider(): array + public static function hasParameterProvider(): array { return [ [true, true, true, true, true], diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ConfigResolverTestCase.php b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ConfigResolverTestCase.php index b89c3ba152..ef0a6354c7 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ConfigResolverTestCase.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/ConfigResolverTestCase.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Exception\ParameterNotFoundException; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -58,9 +59,7 @@ public function testGetParameterFailedWithException(): void $resolver->getParameter('undefined'); } - /** - * @dataProvider parameterProvider - */ + #[DataProvider('parameterProvider')] public function testGetParameterGlobalScope(string $paramName, $expectedValue): void { $globalScopeParameter = sprintf('%s.%s.%s', $this->getNamespace(), $this->getScope(), $paramName); @@ -78,7 +77,7 @@ public function testGetParameterGlobalScope(string $paramName, $expectedValue): self::assertSame($expectedValue, $this->getResolver()->getParameter($paramName)); } - public function parameterProvider(): array + public static function parameterProvider(): array { return [ ['foo', 'bar'], diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/SiteAccessGroupConfigResolverTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/SiteAccessGroupConfigResolverTest.php index 1f863f0794..eae024585f 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/SiteAccessGroupConfigResolverTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/SiteAccessGroupConfigResolverTest.php @@ -25,7 +25,7 @@ protected function getResolver(string $defaultNamespace = self::DEFAULT_NAMESPAC $siteAccess = new SiteAccess( self::EXISTING_SA_NAME, 'default', - $this->createMock(Matcher::class) + self::createStub(Matcher::class) ); $configResolver = new SiteAccessGroupConfigResolver( $this->containerMock, diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/StaticSiteAccessConfigResolverTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/StaticSiteAccessConfigResolverTest.php index 854bf8a46b..e38a7f1fed 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/StaticSiteAccessConfigResolverTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ConfigResolver/StaticSiteAccessConfigResolverTest.php @@ -25,7 +25,7 @@ protected function getResolver(string $defaultNamespace = self::DEFAULT_NAMESPAC $siteAccess = new SiteAccess( self::EXISTING_SA_NAME, 'default', - $this->createMock(Matcher::class) + self::createStub(Matcher::class) ); $configResolver = new StaticSiteAccessConfigResolver( $this->containerMock, diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php index 057b5da634..20e27f7908 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php @@ -9,6 +9,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser\Common; use Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\Yaml\Yaml; class CommonTest extends AbstractParserTestCase @@ -171,9 +172,7 @@ public function testNoUserSettings() ); } - /** - * @dataProvider sessionSettingsProvider - */ + #[DataProvider('sessionSettingsProvider')] public function testSessionSettings(array $inputParams, array $expected) { $this->load( @@ -187,7 +186,7 @@ public function testSessionSettings(array $inputParams, array $expected) $this->assertConfigResolverParameterValue('session', $expected['session'], 'ibexa_demo_site'); } - public function sessionSettingsProvider() + public static function sessionSettingsProvider() { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php index c38e81bf37..6082a1ab30 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php @@ -9,6 +9,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser\Content as ContentConfigParser; use Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\Yaml\Yaml; class ContentTest extends AbstractParserTestCase @@ -34,9 +35,7 @@ public function testDefaultContentSettings() $this->assertConfigResolverParameterValue('content.default_ttl', 60, 'ibexa_demo_site'); } - /** - * @dataProvider contentSettingsProvider - */ + #[DataProvider('contentSettingsProvider')] public function testContentSettings(array $config, array $expected) { $this->load( @@ -52,7 +51,7 @@ public function testContentSettings(array $config, array $expected) } } - public function contentSettingsProvider() + public static function contentSettingsProvider() { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/EmbeddingsTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/EmbeddingsTest.php index 3b02a39d17..52300e9eb4 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/EmbeddingsTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/EmbeddingsTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser\Embeddings as EmbeddingsConfigParser; use Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\Yaml\Yaml; final class EmbeddingsTest extends AbstractParserTestCase @@ -74,9 +75,8 @@ public function testDefaultEmbeddingModelSetInDefaultScopeIsNotMaterializedToOth /** * @param array $config * @param array $expected - * - * @dataProvider embeddingsSettingsProvider */ + #[DataProvider('embeddingsSettingsProvider')] public function testEmbeddingsSettings(array $config, array $expected): void { $this->load( @@ -114,7 +114,7 @@ public function testEmbeddingsSettings(array $config, array $expected): void * } * }> */ - public function embeddingsSettingsProvider(): array + public static function embeddingsSettingsProvider(): array { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php index 3697ea88b6..9e4d53f812 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php @@ -11,6 +11,7 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser\FieldType\ImageAsset as ImageAssetConfigParser; use Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension; use Ibexa\Tests\Bundle\Core\DependencyInjection\Configuration\Parser\AbstractParserTestCase; +use PHPUnit\Framework\Attributes\DataProvider; class ImageAssetTest extends AbstractParserTestCase { @@ -40,9 +41,7 @@ public function testDefaultImageAssetSettings() ); } - /** - * @dataProvider imageAssetSettingsProvider - */ + #[DataProvider('imageAssetSettingsProvider')] public function testImageAssetSettings(array $config, array $expected) { $this->load( @@ -58,7 +57,7 @@ public function testImageAssetSettings(array $config, array $expected) } } - public function imageAssetSettingsProvider(): array + public static function imageAssetSettingsProvider(): array { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/RepositoryConfigParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/RepositoryConfigParserTest.php index fdfb5d5ca2..ca11c2710b 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/RepositoryConfigParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/RepositoryConfigParserTest.php @@ -26,7 +26,7 @@ final class RepositoryConfigParserTest extends TestCase public function testAddSemanticConfig(): void { /** @phpstan-var NodeBuilder & MockObject $nodeBuilder */ - $nodeBuilder = $this->createMock(NodeBuilder::class); + $nodeBuilder = self::createStub(NodeBuilder::class); $repositoryConfigParser = new RepositoryConfigParser([ $this->createRepositoryConfigParserMock($nodeBuilder), diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php index f0e9f38e36..5109af9601 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php @@ -10,12 +10,15 @@ use Ibexa\Bundle\Core\DependencyInjection\Configuration\SiteAccessAware\Contextualizer; use Ibexa\Bundle\Core\DependencyInjection\Configuration\SiteAccessAware\ContextualizerInterface; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface; class ContextualizerTest extends TestCase { + private const SA_NODE_NAME = 'heyho'; + /** @var \PHPUnit\Framework\MockObject\MockObject */ private $container; @@ -23,7 +26,7 @@ class ContextualizerTest extends TestCase private $namespace = 'ibexa_test'; /** @var string */ - private $saNodeName = 'heyho'; + private $saNodeName = self::SA_NODE_NAME; /** @var array */ private $availableSAs = ['sa1', 'sa2', 'sa3']; @@ -58,9 +61,7 @@ protected function setUp(): void ); } - /** - * @dataProvider setContextualParameterProvider - */ + #[DataProvider('setContextualParameterProvider')] public function testSetContextualParameter($parameterName, $scope, $value) { $this->container @@ -71,7 +72,7 @@ public function testSetContextualParameter($parameterName, $scope, $value) $this->contextualizer->setContextualParameter($parameterName, $scope, $value); } - public function setContextualParameterProvider() + public static function setContextualParameterProvider() { return [ ['my_parameter', 'sa1', 'foobar'], @@ -439,9 +440,8 @@ public function testGetSetGroupsBySA() /** * Test that settings array a properly merged when defined in several * scopes. - * - * @dataProvider fullMapConfigArrayProvider */ + #[DataProvider('fullMapConfigArrayProvider')] public function testFullMapConfigArray( $testId, $siteaccess, @@ -502,7 +502,7 @@ public function testFullMapConfigArray( $this->contextualizer->mapConfigArray($testId, $config, $options); } - public function fullMapConfigArrayProvider() + public static function fullMapConfigArrayProvider() { $testId = 'wizards'; $siteaccess = 'krondor'; @@ -638,7 +638,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], 0, $all, @@ -652,7 +652,7 @@ public function fullMapConfigArrayProvider() $all, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], 0, $all, @@ -666,7 +666,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group2 => [$testId => $all], ], ], @@ -682,7 +682,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testId => $all], ], ], @@ -698,7 +698,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug', 'Rogen', 'William']], ], ], @@ -714,7 +714,7 @@ public function fullMapConfigArrayProvider() ['Pug', 'Rogen', 'William'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Kulgan', 'Macros the Black']], ], ], @@ -730,7 +730,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug', 'Rogen']], $group2 => [$testId => ['William']], ], @@ -747,7 +747,7 @@ public function fullMapConfigArrayProvider() ['Kulgan', 'Macros the Black'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug', 'Rogen']], $group2 => [$testId => ['William']], ], @@ -764,7 +764,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug']], $group2 => [$testId => ['Rogen']], $siteaccess => [$testId => ['William']], @@ -782,7 +782,7 @@ public function fullMapConfigArrayProvider() ['Kulgan', 'Macros the Black'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug']], $group2 => [$testId => ['Rogen']], $siteaccess => [$testId => ['William']], @@ -800,7 +800,7 @@ public function fullMapConfigArrayProvider() ['William'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Pug']], $group2 => [$testId => ['Rogen']], ], @@ -817,7 +817,7 @@ public function fullMapConfigArrayProvider() ['William'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Macros the Black']], $group2 => [$testId => ['Pug']], $siteaccess => [$testId => ['Rogen']], @@ -837,7 +837,7 @@ public function fullMapConfigArrayProvider() ['William'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Macros the Black']], $group2 => [$testId => ['Pug']], $siteaccess => [$testId => ['Rogen', 'Pug']], @@ -854,7 +854,7 @@ public function fullMapConfigArrayProvider() ['William', 'Kulgan', 'Pug'], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testId => ['Macros the Black']], $group2 => [$testId => ['Pug', 'William', 'Kulgan']], $siteaccess => [$testId => ['Rogen', 'Pug', 'Rogen', 'Macros the Black']], @@ -875,7 +875,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], ContextualizerInterface::MERGE_FROM_SECOND_LEVEL, $locationView1, @@ -889,7 +889,7 @@ public function fullMapConfigArrayProvider() $locationView1, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], ContextualizerInterface::MERGE_FROM_SECOND_LEVEL, $locationView1, @@ -903,7 +903,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], ], ], @@ -919,7 +919,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testIdHash => $locationView1], ], ], @@ -936,7 +936,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], ], ], @@ -952,7 +952,7 @@ public function fullMapConfigArrayProvider() $locationView1, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], ], ], @@ -968,7 +968,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $group2 => [$testIdHash => $locationView3], ], @@ -985,7 +985,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $group2 => [$testIdHash => $locationView3], $siteaccess => [$testIdHash => $locationView4], @@ -1003,7 +1003,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], ], @@ -1020,7 +1020,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], ], @@ -1037,7 +1037,7 @@ public function fullMapConfigArrayProvider() $locationView4, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], $siteaccess => [$testIdHash => $locationView3], @@ -1056,7 +1056,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testIdHash => $locationView3], $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], @@ -1074,7 +1074,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $siteaccess => [$testIdHash => $locationView3], ], @@ -1091,7 +1091,7 @@ public function fullMapConfigArrayProvider() $locationView4, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $siteaccess => [$testIdHash => $locationView3], ], @@ -1108,7 +1108,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group2 => [$testIdHash => $locationView1], $siteaccess => [$testIdHash => $locationView2], ], @@ -1125,7 +1125,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group2 => [$testIdHash => $locationView2], ], ], @@ -1145,7 +1145,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], 0, $locationView1, @@ -1159,7 +1159,7 @@ public function fullMapConfigArrayProvider() $locationView1, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [], + self::SA_NODE_NAME => [], ], 0, $locationView1, @@ -1173,7 +1173,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], ], ], @@ -1189,7 +1189,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testIdHash => $locationView1], ], ], @@ -1205,7 +1205,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], ], ], @@ -1221,7 +1221,7 @@ public function fullMapConfigArrayProvider() $locationView1, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], ], ], @@ -1237,7 +1237,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $group2 => [$testIdHash => $locationView3], ], @@ -1254,7 +1254,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $group2 => [$testIdHash => $locationView3], $siteaccess => [$testIdHash => $locationView4], @@ -1272,7 +1272,7 @@ public function fullMapConfigArrayProvider() $locationView4, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $group2 => [$testIdHash => $locationView3], ], @@ -1289,7 +1289,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], ], @@ -1306,7 +1306,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], ], @@ -1323,7 +1323,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testIdHash => $locationView3], $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], @@ -1341,7 +1341,7 @@ public function fullMapConfigArrayProvider() $locationView4, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $siteaccess => [$testIdHash => $locationView3], $group1 => [$testIdHash => $locationView1], $group2 => [$testIdHash => $locationView2], @@ -1359,7 +1359,7 @@ public function fullMapConfigArrayProvider() [], [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group1 => [$testIdHash => $locationView2], $siteaccess => [$testIdHash => $locationView3], ], @@ -1376,7 +1376,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group2 => [$testIdHash => $locationView1], $siteaccess => [$testIdHash => $locationView2], ], @@ -1393,7 +1393,7 @@ public function fullMapConfigArrayProvider() $locationView3, [ 'siteaccess' => $siteaccessConfig, - $this->saNodeName => [ + self::SA_NODE_NAME => [ $group2 => [$testIdHash => $locationView2], ], ], @@ -1404,9 +1404,9 @@ public function fullMapConfigArrayProvider() foreach ($cases as $k => $newcase) { // run the same tests with another baseKey than the default one - if (isset($newcase[5][$this->saNodeName])) { - $newcase[5]['customBaseKey'] = $newcase[5][$this->saNodeName]; - unset($newcase[5][$this->saNodeName]); + if (isset($newcase[5][self::SA_NODE_NAME])) { + $newcase[5]['customBaseKey'] = $newcase[5][self::SA_NODE_NAME]; + unset($newcase[5][self::SA_NODE_NAME]); $newcase[] = 'customBaseKey'; $cases[] = $newcase; } diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php index ebd5991120..4d0ad5c9ab 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php @@ -8,20 +8,19 @@ namespace Ibexa\Tests\Bundle\Core\DependencyInjection\Configuration\SiteAccessAware; use Ibexa\Bundle\Core\DependencyInjection\Configuration\SiteAccessAware\DynamicSettingParser; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class DynamicSettingParserTest extends TestCase { - /** - * @dataProvider isDynamicSettingProvider - */ + #[DataProvider('isDynamicSettingProvider')] public function testIsDynamicSetting($setting, $expected) { $parser = new DynamicSettingParser(); self::assertSame($expected, $parser->isDynamicSetting($setting)); } - public function isDynamicSettingProvider() + public static function isDynamicSettingProvider() { return [ ['foo', false], @@ -48,16 +47,14 @@ public function testParseDynamicSettingFail() $parser->parseDynamicSetting('$foo;bar;baz;biz$'); } - /** - * @dataProvider parseDynamicSettingProvider - */ + #[DataProvider('parseDynamicSettingProvider')] public function testParseDynamicSetting($setting, array $expected) { $parser = new DynamicSettingParser(); self::assertSame($expected, $parser->parseDynamicSetting($setting)); } - public function parseDynamicSettingProvider() + public static function parseDynamicSettingProvider() { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php b/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php index 6035fcac94..5667148729 100644 --- a/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php +++ b/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php @@ -24,6 +24,7 @@ use Ibexa\Tests\Bundle\Core\DependencyInjection\Stub\QueryTypeBundle\QueryType\TestQueryType; use Ibexa\Tests\Bundle\Core\DependencyInjection\Stub\StubPolicyProvider; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass; @@ -150,9 +151,7 @@ public function testImageMagickConfigurationBasic() $this->assertContainerBuilderHasParameter('ibexa.image.imagemagick.executable', basename($_ENV['imagemagickConvertPath'])); } - /** - * @dataProvider translationsConfigurationProvider - */ + #[DataProvider('translationsConfigurationProvider')] public function testUITranslationsConfiguration( bool $enabled, bool $expectedParameterValue @@ -175,7 +174,7 @@ public function testUITranslationsConfiguration( /** * @return iterable */ - public function translationsConfigurationProvider(): iterable + public static function translationsConfigurationProvider(): iterable { yield 'translations enabled' => [ true, @@ -263,11 +262,10 @@ public function testRoutingConfiguration() } /** - * @dataProvider cacheConfigurationProvider - * * @param array $customCacheConfig * @param string $expectedPurgeType */ + #[DataProvider('cacheConfigurationProvider')] public function testCacheConfiguration(array $customCacheConfig, $expectedPurgeType) { $this->load($customCacheConfig); @@ -275,7 +273,7 @@ public function testCacheConfiguration(array $customCacheConfig, $expectedPurgeT $this->assertContainerBuilderHasParameter('ibexa.http_cache.purge_type', $expectedPurgeType); } - public function cacheConfigurationProvider() + public static function cacheConfigurationProvider() { return [ [[], 'local'], @@ -383,9 +381,7 @@ public function testRepositoriesConfiguration() self::assertSame($repositories, $this->container->getParameter('ibexa.repositories')); } - /** - * @dataProvider repositoriesConfigurationFieldGroupsProvider - */ + #[DataProvider('repositoriesConfigurationFieldGroupsProvider')] public function testRepositoriesConfigurationFieldGroups($repositories, $expectedRepositories) { $this->load(['repositories' => $repositories]); @@ -401,7 +397,7 @@ public function testRepositoriesConfigurationFieldGroups($repositories, $expecte } } - public function repositoriesConfigurationFieldGroupsProvider() + public static function repositoriesConfigurationFieldGroupsProvider() { return [ //empty config @@ -860,11 +856,11 @@ public function testQueryTypeAutomaticConfiguration(): void * Test automatic configuration of services implementing Criterion & SortClause Filtering Query * Builders. * - * @dataProvider getFilteringQueryBuilderData * * @see \Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder * @see \Ibexa\Contracts\Core\Repository\Values\Filter\SortClauseQueryBuilder */ + #[DataProvider('getFilteringQueryBuilderData')] public function testFilteringQueryBuildersAutomaticConfiguration( string $classFQCN, string $tagName @@ -886,7 +882,7 @@ public function testFilteringQueryBuildersAutomaticConfiguration( /** * Data provider for {@see testFilteringQueryBuildersAutomaticConfiguration}. */ - public function getFilteringQueryBuilderData(): iterable + public static function getFilteringQueryBuilderData(): iterable { yield Filter\CriterionQueryBuilder::class => [ CustomCriterionQueryBuilder::class, diff --git a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php index 4914843b4c..d1cc154842 100644 --- a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php +++ b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Bundle\Core\DependencyInjection\Security\PolicyProvider; use Ibexa\Bundle\Core\DependencyInjection\Security\PolicyProvider\PoliciesConfigBuilder; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Resource\DirectoryResource; use Symfony\Component\Config\Resource\FileResource; @@ -15,9 +16,7 @@ class PoliciesConfigBuilderTest extends TestCase { - /** - * @dataProvider policiesConfigProvider - */ + #[DataProvider('policiesConfigProvider')] public function testAddConfig(array $configOne, array $configTwo, array $expectedConfig): void { $containerBuilder = new ContainerBuilder(); @@ -29,7 +28,7 @@ public function testAddConfig(array $configOne, array $configTwo, array $expecte self::assertSame($expectedConfig, $containerBuilder->getParameter('ibexa.api.role.policy_map')); } - public function policiesConfigProvider(): array + public static function policiesConfigProvider(): array { return [ 'add' => [ diff --git a/tests/bundle/Core/Doctrine/ManagedTablesSchemaAssetFilterTest.php b/tests/bundle/Core/Doctrine/ManagedTablesSchemaAssetFilterTest.php index edf01ba496..d0dcf0ab97 100644 --- a/tests/bundle/Core/Doctrine/ManagedTablesSchemaAssetFilterTest.php +++ b/tests/bundle/Core/Doctrine/ManagedTablesSchemaAssetFilterTest.php @@ -25,8 +25,8 @@ final class ManagedTablesSchemaAssetFilterTest extends TestCase private function createFilter(array $entityTableNames): ManagedTablesSchemaAssetFilter { $classMetadataList = array_map( - function (string $tableName): ClassMetadata { - $classMetadata = $this->createStub(ClassMetadata::class); + static function (string $tableName): ClassMetadata { + $classMetadata = self::createStub(ClassMetadata::class); $classMetadata->method('getTableName')->willReturn($tableName); return $classMetadata; @@ -34,15 +34,15 @@ function (string $tableName): ClassMetadata { $entityTableNames ); - $metadataFactory = $this->createStub(ClassMetadataFactory::class); + $metadataFactory = self::createStub(ClassMetadataFactory::class); $metadataFactory->method('getAllMetadata')->willReturn($classMetadataList); - $entityManager = $this->createStub(EntityManagerInterface::class); + $entityManager = self::createStub(EntityManagerInterface::class); $entityManager->method('getMetadataFactory')->willReturn($metadataFactory); - $nonEntityManager = $this->createStub(ObjectManager::class); + $nonEntityManager = self::createStub(ObjectManager::class); - $managerRegistry = $this->createStub(ManagerRegistry::class); + $managerRegistry = self::createStub(ManagerRegistry::class); $managerRegistry->method('getManagers')->willReturn([$entityManager, $nonEntityManager]); return new ManagedTablesSchemaAssetFilter($managerRegistry); diff --git a/tests/bundle/Core/Entity/EntityManagerFactoryTest.php b/tests/bundle/Core/Entity/EntityManagerFactoryTest.php index 98292fa89b..5494a13f7a 100644 --- a/tests/bundle/Core/Entity/EntityManagerFactoryTest.php +++ b/tests/bundle/Core/Entity/EntityManagerFactoryTest.php @@ -12,13 +12,12 @@ use Ibexa\Bundle\Core\Entity\EntityManagerFactory; use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface; use InvalidArgumentException; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ServiceLocator; -/** - * @covers \Ibexa\Bundle\Core\Entity\EntityManagerFactory - */ +#[CoversClass(EntityManagerFactory::class)] final class EntityManagerFactoryTest extends TestCase { private const string DEFAULT_ENTITY_MANAGER = 'doctrine.orm.ibexa_default_entity_manager'; diff --git a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php index 441bf638c1..15afb86304 100644 --- a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php +++ b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php @@ -14,6 +14,7 @@ use Ibexa\Contracts\Core\Persistence\Handler as PersistenceHandler; use Ibexa\Contracts\Core\Search\Handler as SearchHandler; use Ibexa\Core\Base\Exceptions\NotFoundException; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\Console\ConsoleEvents; @@ -59,29 +60,28 @@ public function testGetSubscribedEvents() ); } - public function indexingProvider() + public static function indexingProvider() { $info = new ContentInfo(['id' => 33]); $location = new Location(['id' => 44, 'contentId' => 33]); return [ [[$location]], - [[$location], $this->createMock(LoggerInterface::class)], + [[$location], self::createStub(LoggerInterface::class)], [[$info]], - [[$info], $this->createMock(LoggerInterface::class)], + [[$info], self::createStub(LoggerInterface::class)], [null], - [null, $this->createMock(LoggerInterface::class)], + [null, self::createStub(LoggerInterface::class)], [[$location, $info]], - [[$info, $location], $this->createMock(LoggerInterface::class)], + [[$info, $location], self::createStub(LoggerInterface::class)], ]; } /** - * @dataProvider indexingProvider - * * @param array|null $value * @param \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject|null $logger */ + #[DataProvider('indexingProvider')] public function testIndexing(?array $values = null, $logger = null) { $contentHandlerMock = $this->createMock(Content\Handler::class); @@ -130,7 +130,7 @@ public function testIndexing(?array $values = null, $logger = null) if ($values) { $logger->expects(self::once()) ->method('warning') - ->with(self::isType('string')); + ->with(self::isString()); } else { $logger->expects(self::never()) ->method('warning'); @@ -140,14 +140,14 @@ public function testIndexing(?array $values = null, $logger = null) $this->listener->reindex(); } - public function indexDeleteProvider() + public static function indexDeleteProvider() { $location = new Location(['id' => 44, 'contentId' => 33]); $info = new ContentInfo(['id' => 33, 'currentVersionNo' => 2, 'status' => ContentInfo::STATUS_PUBLISHED]); - $infoReturn = self::returnValue($info); - $infoReturnUnPublished = self::returnValue(new ContentInfo(['id' => 33, 'currentVersionNo' => 2])); - $returnThrow = self::throwException(new NotFoundException('content', '33')); + $infoReturn = $info; + $infoReturnUnPublished = new ContentInfo(['id' => 33, 'currentVersionNo' => 2]); + $returnThrow = new NotFoundException('content', '33'); return [ [$location, $infoReturn, $returnThrow], @@ -161,12 +161,11 @@ public function indexDeleteProvider() } /** - * @dataProvider indexDeleteProvider - * * @param \Ibexa\Contracts\Core\Persistence\Content\ContentInfo|\Ibexa\Contracts\Core\Persistence\Content\Location $value - * @param \PHPUnit\Framework\MockObject\Stub $infoReturn - * @param \PHPUnit\Framework\MockObject\Stub|null $contentReturn + * @param \Ibexa\Contracts\Core\Persistence\Content\ContentInfo|\Throwable $infoReturn + * @param \Ibexa\Contracts\Core\Persistence\Content|\Throwable|null $contentReturn */ + #[DataProvider('indexDeleteProvider')] public function testIndexDelete($value, $infoReturn, $contentReturn = null) { $contentHandlerMock = $this->createMock(Content\Handler::class); @@ -175,18 +174,26 @@ public function testIndexDelete($value, $infoReturn, $contentReturn = null) ->method('contentHandler') ->willReturn($contentHandlerMock); - $contentHandlerMock + $loadContentInfoExpectation = $contentHandlerMock ->expects(self::once()) ->method('loadContentInfo') - ->with(33) - ->will($infoReturn); + ->with(33); + if ($infoReturn instanceof \Throwable) { + $loadContentInfoExpectation->willThrowException($infoReturn); + } else { + $loadContentInfoExpectation->willReturn($infoReturn); + } if ($contentReturn) { - $contentHandlerMock + $loadExpectation = $contentHandlerMock ->expects(self::once()) ->method('load') - ->with(33, 2) - ->will($contentReturn); + ->with(33, 2); + if ($contentReturn instanceof \Throwable) { + $loadExpectation->willThrowException($contentReturn); + } else { + $loadExpectation->willReturn($contentReturn); + } } else { $contentHandlerMock ->expects(self::never()) diff --git a/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php b/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php index 868d52185a..0bc012b211 100644 --- a/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php +++ b/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php @@ -33,8 +33,8 @@ protected function setUp(): void $this->configResolver = $this->createMock(VersatileScopeInterface::class); $this->viewManager = $this->createMock(ViewManager::class); $this->viewProviders = [ - $this->createMock(ViewProvider::class), - $this->createMock(ViewProvider::class), + self::createStub(ViewProvider::class), + self::createStub(ViewProvider::class), ]; } diff --git a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php index 511a6547db..a8d15271dd 100644 --- a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php +++ b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php @@ -40,8 +40,8 @@ class ConsoleCommandListenerTest extends TestCase /** @var \Symfony\Component\Console\Output\Output */ private $testOutput; - /** @var \Symfony\Component\Console\Command\Command|\PHPUnit\Framework\MockObject\MockObject */ - private $command; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\Console\Command\Command */ + private \PHPUnit\Framework\MockObject\Stub $command; protected function setUp(): void { @@ -53,7 +53,7 @@ protected function setUp(): void $this->dispatcher->addSubscriber($this->listener); $this->inputDefinition = new InputDefinition([new InputOption('siteaccess', null, InputOption::VALUE_OPTIONAL)]); $this->testOutput = new TestOutput(Output::VERBOSITY_QUIET, true); - $this->command = $this->createMock(Command::class); + $this->command = self::createStub(Command::class); } public function testGetSubscribedEvents() diff --git a/tests/bundle/Core/EventListener/ExceptionListenerTest.php b/tests/bundle/Core/EventListener/ExceptionListenerTest.php index 3d403783a5..c1f74ca525 100644 --- a/tests/bundle/Core/EventListener/ExceptionListenerTest.php +++ b/tests/bundle/Core/EventListener/ExceptionListenerTest.php @@ -24,6 +24,7 @@ use Ibexa\Core\Base\Exceptions\NotFound\LimitationNotFoundException; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Base\Exceptions\UnauthorizedException; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use RuntimeException; use Symfony\Component\HttpFoundation\Request; @@ -66,7 +67,7 @@ public function testGetSubscribedEvents(): void private function generateExceptionEvent(Exception $exception): ExceptionEvent { return new ExceptionEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), new Request(), HttpKernelInterface::MAIN_REQUEST, $exception @@ -114,10 +115,9 @@ public function testUnauthorizedException(): void } /** - * @dataProvider badRequestExceptionProvider - * * @param \Exception&\Ibexa\Core\Base\Translatable $exception */ + #[DataProvider('badRequestExceptionProvider')] public function testBadRequestException(Exception $exception): void { $messageTemplate = 'some message template'; @@ -138,10 +138,9 @@ public function testBadRequestException(Exception $exception): void } /** - * @dataProvider provideDataForTestForbiddenException - * * @param \Exception&\Ibexa\Core\Base\Translatable $exception */ + #[DataProvider('provideDataForTestForbiddenException')] public function testForbiddenException(Exception $exception): void { $messageTemplate = 'some message template'; @@ -174,10 +173,9 @@ public function testUntouchedException(): void } /** - * @dataProvider otherExceptionProvider - * * @param \Exception&\Ibexa\Core\Base\Translatable $exception */ + #[DataProvider('otherExceptionProvider')] public function testOtherRepositoryException(Exception $exception): void { $messageTemplate = 'some message template'; @@ -200,7 +198,7 @@ public function testOtherRepositoryException(Exception $exception): void /** * @return iterable */ - public function badRequestExceptionProvider(): iterable + public static function badRequestExceptionProvider(): iterable { return [ [new BadStateException('foo', 'bar')], @@ -213,7 +211,7 @@ public function badRequestExceptionProvider(): iterable /** * @return iterable */ - public function provideDataForTestForbiddenException(): iterable + public static function provideDataForTestForbiddenException(): iterable { return [ [new ForbiddenException('foo "%param%"', ['%param%' => 'bar'])], @@ -228,7 +226,7 @@ public function provideDataForTestForbiddenException(): iterable /** * @return iterable */ - public function otherExceptionProvider(): iterable + public static function otherExceptionProvider(): iterable { return [ [new MissingClass('foo')], diff --git a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php index 854bcc1947..045d2c084a 100644 --- a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php +++ b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php @@ -9,6 +9,7 @@ use Ibexa\Bundle\Core\EventListener\IndexRequestListener; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -29,8 +30,8 @@ class IndexRequestListenerTest extends TestCase /** @var \Symfony\Component\HttpKernel\Event\RequestEvent */ private $event; - /** @var \Symfony\Component\HttpKernel\HttpKernelInterface|\PHPUnit\Framework\MockObject\MockObject */ - private $httpKernel; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ + private \PHPUnit\Framework\MockObject\Stub $httpKernel; protected function setUp(): void { @@ -42,10 +43,10 @@ protected function setUp(): void $this->request = $this ->getMockBuilder(Request::class) - ->setMethods(['getSession', 'hasSession']) + ->onlyMethods(['getSession', 'hasSession']) ->getMock(); - $this->httpKernel = $this->createMock(HttpKernelInterface::class); + $this->httpKernel = self::createStub(HttpKernelInterface::class); $this->event = new RequestEvent( $this->httpKernel, $this->request, @@ -65,9 +66,7 @@ public function testSubscribedEvents() ); } - /** - * @dataProvider indexPageProvider - */ + #[DataProvider('indexPageProvider')] public function testOnKernelRequestIndexOnIndexPage($requestPath, $configuredIndexPath, $expectedIndexPath) { $this->configResolver @@ -81,7 +80,7 @@ public function testOnKernelRequestIndexOnIndexPage($requestPath, $configuredInd self::assertTrue($this->request->attributes->get('needsRedirect')); } - public function indexPageProvider() + public static function indexPageProvider() { return [ ['/', '/foo', '/foo'], diff --git a/tests/bundle/Core/EventListener/LocaleListenerTest.php b/tests/bundle/Core/EventListener/LocaleListenerTest.php index 8f25e9f67b..8456a42309 100644 --- a/tests/bundle/Core/EventListener/LocaleListenerTest.php +++ b/tests/bundle/Core/EventListener/LocaleListenerTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\EventListener\LocaleListener; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Symfony\Locale\LocaleConverterInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\Request; @@ -42,9 +43,7 @@ protected function setUp(): void $this->requestStack = new RequestStack([$requestMock]); } - /** - * @dataProvider onKernelRequestProvider - */ + #[DataProvider('onKernelRequestProvider')] public function testOnKernelRequest(array $configuredLanguages, array $convertedLocalesValueMap, $expectedLocale): void { $this->configResolver @@ -67,7 +66,7 @@ public function testOnKernelRequest(array $configuredLanguages, array $converted $request = new Request(); $localeListener->onKernelRequest( new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ) @@ -75,7 +74,7 @@ public function testOnKernelRequest(array $configuredLanguages, array $converted self::assertSame($expectedLocale, $request->attributes->get('_locale')); } - public function onKernelRequestProvider(): array + public static function onKernelRequestProvider(): array { return [ [ diff --git a/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php b/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php index 049931a944..2fcd374750 100644 --- a/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php +++ b/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php @@ -31,7 +31,7 @@ public function testOnKernelRequestNotMaster() { $request = new Request(); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::SUB_REQUEST ); @@ -45,7 +45,7 @@ public function testOnKernelRequestNoOriginalRequest() { $request = new Request(); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); @@ -73,7 +73,7 @@ public function testOnKernelRequestWithOriginalRequest() $request->headers->set('x-fos-original-url', $originalUri); $request->headers->set('x-fos-original-accept', $originalAccept); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); diff --git a/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php b/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php index 21e5ffc075..c4b255a0a0 100644 --- a/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php +++ b/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php @@ -9,6 +9,8 @@ namespace Ibexa\Tests\Bundle\Core\EventListener; use Ibexa\Bundle\Core\EventListener\RejectExplicitFrontControllerRequestsListener; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\DoesNotPerformAssertions; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -21,15 +23,15 @@ class RejectExplicitFrontControllerRequestsListenerTest extends TestCase /** @var \Ibexa\Bundle\Core\EventListener\RejectExplicitFrontControllerRequestsListener */ private $eventListener; - /** @var \Symfony\Component\HttpKernel\HttpKernelInterface|\PHPUnit\Framework\MockObject\MockObject */ - private $httpKernel; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ + private \PHPUnit\Framework\MockObject\Stub $httpKernel; protected function setUp(): void { parent::setUp(); $this->eventListener = new RejectExplicitFrontControllerRequestsListener(); - $this->httpKernel = $this->createMock(HttpKernelInterface::class); + $this->httpKernel = self::createStub(HttpKernelInterface::class); } public function testSubscribedEvents(): void @@ -44,11 +46,8 @@ public function testSubscribedEvents(): void ); } - /** - * @dataProvider validRequestDataProvider - * - * @doesNotPerformAssertions - */ + #[DataProvider('validRequestDataProvider')] + #[DoesNotPerformAssertions] public function testOnKernelRequest(Request $request): void { $event = new RequestEvent( @@ -60,9 +59,7 @@ public function testOnKernelRequest(Request $request): void $this->eventListener->onKernelRequest($event); } - /** - * @dataProvider prohibitedRequestDataProvider - */ + #[DataProvider('prohibitedRequestDataProvider')] public function testOnKernelRequestThrowsException(Request $request): void { $this->expectException(NotFoundHttpException::class); @@ -76,7 +73,7 @@ public function testOnKernelRequestThrowsException(Request $request): void $this->eventListener->onKernelRequest($event); } - public function validRequestDataProvider(): array + public static function validRequestDataProvider(): array { return [ [ @@ -212,7 +209,7 @@ public function validRequestDataProvider(): array ]; } - public function prohibitedRequestDataProvider(): array + public static function prohibitedRequestDataProvider(): array { return [ [ diff --git a/tests/bundle/Core/EventListener/RequestEventListenerTest.php b/tests/bundle/Core/EventListener/RequestEventListenerTest.php index f3bbd9d5d7..11de005176 100644 --- a/tests/bundle/Core/EventListener/RequestEventListenerTest.php +++ b/tests/bundle/Core/EventListener/RequestEventListenerTest.php @@ -23,14 +23,14 @@ class RequestEventListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject */ - private $configResolver; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */ + private \PHPUnit\Framework\MockObject\Stub $configResolver; - /** @var \PHPUnit\Framework\MockObject\MockObject */ - private $router; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\Routing\RouterInterface */ + private \PHPUnit\Framework\MockObject\Stub $router; - /** @var \PHPUnit\Framework\MockObject\MockObject|\Psr\Log\LoggerInterface */ - private $logger; + /** @var \PHPUnit\Framework\MockObject\Stub&\Psr\Log\LoggerInterface */ + private \PHPUnit\Framework\MockObject\Stub $logger; /** @var \Ibexa\Bundle\Core\EventListener\RequestEventListener */ private $requestEventListener; @@ -48,15 +48,15 @@ protected function setUp(): void { parent::setUp(); - $this->configResolver = $this->createMock(ConfigResolverInterface::class); - $this->router = $this->createMock(RouterInterface::class); - $this->logger = $this->createMock(LoggerInterface::class); + $this->configResolver = self::createStub(ConfigResolverInterface::class); + $this->router = self::createStub(RouterInterface::class); + $this->logger = self::createStub(LoggerInterface::class); $this->requestEventListener = new RequestEventListener($this->configResolver, $this->router, 'foobar', $this->logger); $this->request = $this ->getMockBuilder(Request::class) - ->setMethods(['getSession', 'hasSession']) + ->onlyMethods(['getSession', 'hasSession']) ->getMock(); $this->httpKernel = $this->createMock(HttpKernelInterface::class); diff --git a/tests/bundle/Core/EventListener/SessionSetDynamicNameListenerTest.php b/tests/bundle/Core/EventListener/SessionSetDynamicNameListenerTest.php index 618a167d3c..c013c5a931 100644 --- a/tests/bundle/Core/EventListener/SessionSetDynamicNameListenerTest.php +++ b/tests/bundle/Core/EventListener/SessionSetDynamicNameListenerTest.php @@ -13,6 +13,7 @@ use Ibexa\Core\MVC\Symfony\Event\PostSiteAccessMatchEvent; use Ibexa\Core\MVC\Symfony\MVCEvents; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Session\Session; @@ -92,14 +93,12 @@ public function testOnSiteAccessMatchNonNativeSessionStorage(): void ->method('getParameter'); $listener = new SessionSetDynamicNameListener( $this->configResolver, - $this->createMock(SessionStorageFactoryInterface::class) + self::createStub(SessionStorageFactoryInterface::class) ); $listener->onSiteAccessMatch(new PostSiteAccessMatchEvent(new SiteAccess('test'), new Request(), HttpKernelInterface::SUB_REQUEST)); } - /** - * @dataProvider onSiteAccessMatchProvider - */ + #[DataProvider('onSiteAccessMatchProvider')] public function testOnSiteAccessMatch(SiteAccess $siteAccess, $configuredSessionStorageOptions, array $expectedSessionStorageOptions): void { $request = new Request(); @@ -122,7 +121,7 @@ public function testOnSiteAccessMatch(SiteAccess $siteAccess, $configuredSession /** * @return array{array{\Ibexa\Core\MVC\Symfony\SiteAccess, array, array}} */ - public function onSiteAccessMatchProvider(): array + public static function onSiteAccessMatchProvider(): array { return [ [new SiteAccess('foo'), ['name' => 'IBX_SESSION_ID'], ['name' => 'IBX_SESSION_ID']], diff --git a/tests/bundle/Core/EventListener/SiteAccessListenerTest.php b/tests/bundle/Core/EventListener/SiteAccessListenerTest.php index 164d6dbfec..b57a481726 100644 --- a/tests/bundle/Core/EventListener/SiteAccessListenerTest.php +++ b/tests/bundle/Core/EventListener/SiteAccessListenerTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\MVCEvents; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\SiteAccessGroup; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\HttpKernelInterface; @@ -42,7 +43,7 @@ public function testGetSubscribedEvents() ); } - public function siteAccessMatchProvider() + public static function siteAccessMatchProvider() { return [ ['/foo/bar', '/foo/bar', '', []], @@ -60,9 +61,7 @@ public function siteAccessMatchProvider() ]; } - /** - * @dataProvider siteAccessMatchProvider - */ + #[DataProvider('siteAccessMatchProvider')] public function testOnSiteAccessMatchMasterRequest( $uri, $expectedSemanticPathinfo, @@ -97,12 +96,10 @@ public function testOnSiteAccessMatchMasterRequest( self::assertSame($this->defaultSiteaccess->groups, $siteAccess->groups); } - /** - * @dataProvider siteAccessMatchProvider - */ + #[DataProvider('siteAccessMatchProvider')] public function testOnSiteAccessMatchSubRequest($uri, $semanticPathinfo, $vpString, $expectedViewParameters) { - $siteAccess = new SiteAccess('test', 'test', $this->createMock(SiteAccess\Matcher::class)); + $siteAccess = new SiteAccess('test', 'test', self::createStub(SiteAccess\Matcher::class)); $request = Request::create($uri); $request->attributes->set('semanticPathinfo', $semanticPathinfo); if (!empty($vpString)) { diff --git a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php index f9744862d4..48b61f2c82 100644 --- a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php +++ b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php @@ -30,8 +30,8 @@ class ViewControllerListenerTest extends TestCase /** @var \Symfony\Component\HttpKernel\Controller\ControllerResolver|\PHPUnit\Framework\MockObject\MockObject */ private $controllerResolver; - /** @var \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ - private $logger; + /** @var \PHPUnit\Framework\MockObject\Stub&\Psr\Log\LoggerInterface */ + private \PHPUnit\Framework\MockObject\Stub $logger; /** @var \Ibexa\Bundle\Core\EventListener\ViewControllerListener */ private $controllerListener; @@ -60,7 +60,7 @@ protected function setUp(): void $this->controllerResolver = $this->createMock(ControllerResolverInterface::class); $this->viewBuilderRegistry = $this->createMock(ViewBuilderRegistry::class); $this->eventDispatcher = $this->createMock(EventDispatcherInterface::class); - $this->logger = $this->createMock(LoggerInterface::class); + $this->logger = self::createStub(LoggerInterface::class); $this->controllerListener = new ViewControllerListener( $this->controllerResolver, $this->viewBuilderRegistry, @@ -170,21 +170,22 @@ public function testGetControllerEmitsProperEvents(): void ->expects(self::once()) ->method('buildView') ->willReturn($viewObject); + $matcher = self::exactly(2); $this->eventDispatcher - ->expects(self::exactly(2)) - ->method('dispatch') - ->withConsecutive( - [ - self::isInstanceOf(FilterViewBuilderParametersEvent::class), - self::identicalTo(ViewEvents::FILTER_BUILDER_PARAMETERS), - ], - [ - self::isInstanceOf(PostBuildViewEvent::class), - self::isNull(), - ] - ) - ->willReturnArgument(0); + ->expects($matcher) + ->method('dispatch')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertInstanceOf(FilterViewBuilderParametersEvent::class, $parameters[0]); + $this->assertSame(ViewEvents::FILTER_BUILDER_PARAMETERS, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertInstanceOf(PostBuildViewEvent::class, $parameters[0]); + $this->assertNull($parameters[1]); + } + + return $parameters[0]; + }); $this->controllerListener->getController($this->event); } @@ -195,7 +196,7 @@ public function testGetControllerEmitsProperEvents(): void protected function createEvent() { return new ControllerEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), static function () {}, $this->request, HttpKernelInterface::MAIN_REQUEST diff --git a/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php b/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php index 2a6e88ab9a..40336440ad 100644 --- a/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php +++ b/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Bundle\Core\EventSubscriber; use Ibexa\Bundle\Core\EventSubscriber\CrowdinRequestLocaleSubscriber; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -15,9 +16,7 @@ class CrowdinRequestLocaleSubscriberTest extends TestCase { - /** - * @dataProvider testSetRequestsProvider - */ + #[DataProvider('provideSetRequests')] public function testSetLocale(Request $request, $shouldHaveCustomLocale) { $event = new RequestEvent( @@ -36,7 +35,7 @@ public function testSetLocale(Request $request, $shouldHaveCustomLocale) ); } - public function testSetRequestsProvider() + public static function provideSetRequests() { return [ 'with_ez_in_context_translation_cookie' => [ diff --git a/tests/bundle/Core/EventSubscriber/TrustedHeaderClientIpEventSubscriberTest.php b/tests/bundle/Core/EventSubscriber/TrustedHeaderClientIpEventSubscriberTest.php index d30e172a87..a0c86ff0e0 100644 --- a/tests/bundle/Core/EventSubscriber/TrustedHeaderClientIpEventSubscriberTest.php +++ b/tests/bundle/Core/EventSubscriber/TrustedHeaderClientIpEventSubscriberTest.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Bundle\Core\EventSubscriber; use Ibexa\Bundle\Core\EventSubscriber\TrustedHeaderClientIpEventSubscriber; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; @@ -37,7 +38,7 @@ protected function tearDown(): void $_SERVER['REMOTE_ADDR'] = $this->originalRemoteAddr; } - public function getTrustedHeaderEventSubscriberTestData(): array + public static function getTrustedHeaderEventSubscriberTestData(): array { return [ 'default behaviour' => [ @@ -90,9 +91,7 @@ public function testTrustedHeaderEventSubscriberWithoutTrustedProxy(): void self::assertEquals(self::PROXY_IP, $request->getClientIp()); } - /** - * @dataProvider getTrustedHeaderEventSubscriberTestData - */ + #[DataProvider('getTrustedHeaderEventSubscriberTestData')] public function testTrustedHeaderEventSubscriberWithTrustedProxy( string $expectedIp, string $remoteAddrIp, diff --git a/tests/bundle/Core/Fragment/DecoratedFragmentRendererTest.php b/tests/bundle/Core/Fragment/DecoratedFragmentRendererTest.php index eda709b056..3867ebe41e 100644 --- a/tests/bundle/Core/Fragment/DecoratedFragmentRendererTest.php +++ b/tests/bundle/Core/Fragment/DecoratedFragmentRendererTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\Fragment\DecoratedFragmentRenderer; use Ibexa\Bundle\Core\Fragment\SiteAccessSerializer; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -18,9 +19,7 @@ use Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; -/** - * @covers \Ibexa\Bundle\Core\Fragment\DecoratedFragmentRenderer - */ +#[CoversClass(DecoratedFragmentRenderer::class)] class DecoratedFragmentRendererTest extends FragmentRendererBaseTestCase { protected FragmentRendererInterface & MockObject $innerRenderer; diff --git a/tests/bundle/Core/Fragment/DirectFragmentRendererTest.php b/tests/bundle/Core/Fragment/DirectFragmentRendererTest.php index 49e1981f89..2094ba5311 100644 --- a/tests/bundle/Core/Fragment/DirectFragmentRendererTest.php +++ b/tests/bundle/Core/Fragment/DirectFragmentRendererTest.php @@ -169,9 +169,9 @@ private function getDirectFragmentRenderer( ?TemplateRenderer $templateRenderer = null ): DirectFragmentRenderer { return new DirectFragmentRenderer( - $this->createMock(FragmentRendererInterface::class), - $this->createMock(KernelInterface::class), - $this->createMock(ViewControllerListener::class), + self::createStub(FragmentRendererInterface::class), + self::createStub(KernelInterface::class), + self::createStub(ViewControllerListener::class), $controllerResolver, new ArgumentMetadataFactory(), new RequestAttributeValueResolver(), diff --git a/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php b/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php index 434b72b45b..cd012dd8c0 100644 --- a/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php +++ b/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Bundle\Core\Fragment; use Ibexa\Bundle\Core\Fragment\FragmentListenerFactory; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use ReflectionObject; use Symfony\Component\HttpFoundation\Request; @@ -17,9 +18,7 @@ class FragmentListenerFactoryTest extends TestCase { - /** - * @dataProvider buildFragmentListenerProvider - */ + #[DataProvider('buildFragmentListenerProvider')] public function testBuildFragmentListener($requestUri, $isFragmentCandidate) { $listenerClass = FragmentListener::class; @@ -43,7 +42,7 @@ public function testBuildFragmentListener($requestUri, $isFragmentCandidate) } } - public function buildFragmentListenerProvider() + public static function buildFragmentListenerProvider() { return [ ['/foo/bar', false], diff --git a/tests/bundle/Core/Fragment/InlineFragmentRendererTest.php b/tests/bundle/Core/Fragment/InlineFragmentRendererTest.php index 1a2a6d71e9..a5d0cfc7f0 100644 --- a/tests/bundle/Core/Fragment/InlineFragmentRendererTest.php +++ b/tests/bundle/Core/Fragment/InlineFragmentRendererTest.php @@ -10,15 +10,14 @@ use Ibexa\Bundle\Core\Fragment\InlineFragmentRenderer; use Ibexa\Bundle\Core\Fragment\SiteAccessSerializer; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Controller\ControllerReference; use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; -/** - * @covers \Ibexa\Bundle\Core\Fragment\InlineFragmentRenderer - */ +#[CoversClass(InlineFragmentRenderer::class)] class InlineFragmentRendererTest extends DecoratedFragmentRendererTest { private const string FOO_BAR_SEMANTIC_PATH = '/foo/bar'; diff --git a/tests/bundle/Core/Fragment/SiteAccessSerializerTest.php b/tests/bundle/Core/Fragment/SiteAccessSerializerTest.php index e40df471ea..11893d6537 100644 --- a/tests/bundle/Core/Fragment/SiteAccessSerializerTest.php +++ b/tests/bundle/Core/Fragment/SiteAccessSerializerTest.php @@ -10,20 +10,19 @@ use Ibexa\Bundle\Core\Fragment\SiteAccessSerializer; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Tests\Core\MVC\Symfony\Component\Serializer\Stubs\CompoundStub; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpKernel\Controller\ControllerReference; use Symfony\Component\Serializer\SerializerInterface; -/** - * @covers \Ibexa\Bundle\Core\Fragment\SiteAccessSerializer - */ +#[CoversClass(SiteAccessSerializer::class)] final class SiteAccessSerializerTest extends TestCase { /** - * @dataProvider getDataForTestSerializeSiteAccessAsControllerAttributes - * * @throws \JsonException */ + #[DataProvider('getDataForTestSerializeSiteAccessAsControllerAttributes')] public function testSerializeSiteAccessAsControllerAttributes(SiteAccess $siteAccess): void { $serializerMock = $this->createMock(SerializerInterface::class); @@ -35,7 +34,7 @@ public function testSerializeSiteAccessAsControllerAttributes(SiteAccess $siteAc ->with( self::isInstanceOf(SiteAccess\Matcher::class), 'json', - self::isType('array') + self::isArray() )->willReturn('{"foo":"bar"}') ; diff --git a/tests/bundle/Core/IbexaCoreBundleTest.php b/tests/bundle/Core/IbexaCoreBundleTest.php index b03be75e04..5888d48844 100644 --- a/tests/bundle/Core/IbexaCoreBundleTest.php +++ b/tests/bundle/Core/IbexaCoreBundleTest.php @@ -9,14 +9,13 @@ namespace Ibexa\Tests\Bundle\Core; use Ibexa\Bundle\Core\IbexaCoreBundle; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use RuntimeException; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; -/** - * @covers \Ibexa\Bundle\Core\IbexaCoreBundle - */ +#[CoversClass(IbexaCoreBundle::class)] final class IbexaCoreBundleTest extends TestCase { private IbexaCoreBundle $bundle; diff --git a/tests/bundle/Core/Imagine/AliasGeneratorTest.php b/tests/bundle/Core/Imagine/AliasGeneratorTest.php index d701acb302..9a6c793b85 100644 --- a/tests/bundle/Core/Imagine/AliasGeneratorTest.php +++ b/tests/bundle/Core/Imagine/AliasGeneratorTest.php @@ -34,6 +34,7 @@ use Liip\ImagineBundle\Imagine\Cache\Resolver\ResolverInterface; use Liip\ImagineBundle\Imagine\Filter\FilterConfiguration; use Liip\ImagineBundle\Imagine\Filter\FilterManager; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; @@ -95,9 +96,7 @@ protected function setUp(): void ); } - /** - * @dataProvider supportsValueProvider - */ + #[DataProvider('supportsValueProvider')] public function testSupportsValue(Value $value, bool $isSupported): void { self::assertSame($isSupported, $this->aliasGenerator->supportsValue($value)); @@ -112,13 +111,13 @@ public function testSupportsValue(Value $value, bool $isSupported): void * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ - public function supportsValueProvider(): array + public static function supportsValueProvider(): array { return [ - [$this->createMock(FieldTypeValue::class), false], + [self::createStub(FieldTypeValue::class), false], [new TextLineValue(), false], [new ImageValue(), true], - [$this->createMock(ImageValue::class), true], + [self::createStub(ImageValue::class), true], ]; } @@ -127,7 +126,7 @@ public function testGetVariationWrongValue(): void $this->expectException(\InvalidArgumentException::class); $field = new Field([ - 'value' => $this->createMock(FieldTypeValue::class), + 'value' => self::createStub(FieldTypeValue::class), 'fieldDefIdentifier' => 'image_field', ]); $this->aliasGenerator->getVariation($field, new VersionInfo(), 'foo'); @@ -158,7 +157,7 @@ public function testGetVariationNotStored(): void ->expects(self::once()) ->method('debug'); - $binary = $this->createMock(BinaryInterface::class); + $binary = self::createStub(BinaryInterface::class); $this->dataLoader ->expects(self::once()) ->method('find') @@ -330,7 +329,7 @@ public function testGetVariationNotStoredHavingReferences(): void ->expects(self::once()) ->method('debug'); - $binary = $this->createMock(BinaryInterface::class); + $binary = self::createStub(BinaryInterface::class); $this->dataLoader ->expects(self::once()) ->method('find') @@ -338,21 +337,20 @@ public function testGetVariationNotStoredHavingReferences(): void ->will(self::returnValue($binary)); // Filter manager is supposed to be called 3 times to generate references, and then passed variation. + $expectedApplyFilterCalls = [ + [$binary, $reference2, []], + [$binary, $reference1, []], + [$binary, $variationName, []], + ]; + $matcher = self::exactly(3); $this->filterManager - ->expects(self::at(0)) - ->method('applyFilter') - ->with($binary, $reference2) - ->will(self::returnValue($binary)); - $this->filterManager - ->expects(self::at(1)) - ->method('applyFilter') - ->with($binary, $reference1) - ->will(self::returnValue($binary)); - $this->filterManager - ->expects(self::at(2)) + ->expects($matcher) ->method('applyFilter') - ->with($binary, $variationName) - ->will(self::returnValue($binary)); + ->willReturnCallback(function (...$parameters) use ($matcher, $expectedApplyFilterCalls, $binary) { + $this->assertSame($expectedApplyFilterCalls[$matcher->numberOfInvocations() - 1], $parameters); + + return $binary; + }); $this->ioResolver ->expects(self::once()) diff --git a/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php b/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php index 32c17cf66c..93842e0a7e 100644 --- a/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php +++ b/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php @@ -41,7 +41,7 @@ protected function setUp(): void public function testCreateProxyCacheResolver() { $this->configResolver - ->expects(self::at(0)) + ->expects(self::once()) ->method('hasParameter') ->with('image_host') ->willReturn(true); @@ -49,7 +49,7 @@ public function testCreateProxyCacheResolver() $host = 'http://ibexa.co'; $this->configResolver - ->expects(self::at(1)) + ->expects(self::once()) ->method('getParameter') ->with('image_host') ->willReturn($host); @@ -62,7 +62,7 @@ public function testCreateProxyCacheResolver() public function testCreateRelativeCacheResolver() { $this->configResolver - ->expects(self::at(0)) + ->expects(self::once()) ->method('hasParameter') ->with('image_host') ->willReturn(true); @@ -70,7 +70,7 @@ public function testCreateRelativeCacheResolver() $host = '/'; $this->configResolver - ->expects(self::at(1)) + ->expects(self::once()) ->method('getParameter') ->with('image_host') ->willReturn($host); diff --git a/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php b/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php index 4f4ef7ca3f..d3c134037f 100644 --- a/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php +++ b/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Bundle\Core\Imagine\Filter; use Ibexa\Bundle\Core\Imagine\Filter\AbstractFilter; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class AbstractFilterTest extends TestCase @@ -34,9 +35,7 @@ public function testGetSetOptions() self::assertSame($options, $this->filter->getOptions()); } - /** - * @dataProvider getSetOptionNoDefaulValueProvider - */ + #[DataProvider('getSetOptionNoDefaulValueProvider')] public function testGetSetOptionNoDefaultValue($optionName, $value) { self::assertFalse($this->filter->hasOption($optionName)); @@ -46,7 +45,7 @@ public function testGetSetOptionNoDefaultValue($optionName, $value) self::assertSame($value, $this->filter->getOption($optionName)); } - public function getSetOptionNoDefaulValueProvider() + public static function getSetOptionNoDefaulValueProvider() { return [ ['foo', 'bar'], @@ -58,9 +57,7 @@ public function getSetOptionNoDefaulValueProvider() ]; } - /** - * @dataProvider getSetOptionWithDefaulValueProvider - */ + #[DataProvider('getSetOptionWithDefaulValueProvider')] public function testGetSetOptionWithDefaultValue($optionName, $value, $defaultValue) { self::assertFalse($this->filter->hasOption($optionName)); @@ -70,7 +67,7 @@ public function testGetSetOptionWithDefaultValue($optionName, $value, $defaultVa self::assertSame($value, $this->filter->getOption($optionName)); } - public function getSetOptionWithDefaulValueProvider() + public static function getSetOptionWithDefaulValueProvider() { return [ ['foo', 'bar', 'default'], diff --git a/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php index 3dc1640763..98e7727f27 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php @@ -14,22 +14,21 @@ use Imagine\Image\ImageInterface; use Imagine\Image\Palette\Color\ColorInterface; use Imagine\Image\Palette\PaletteInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class BorderFilterLoaderTest extends TestCase { - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); $loader = new BorderFilterLoader(); - $loader->load($this->createMock(ImageInterface::class), $options); + $loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], @@ -52,7 +51,7 @@ public function testLoadDefaultColor() ->expects(self::once()) ->method('color') ->with(BorderFilterLoader::DEFAULT_BORDER_COLOR) - ->will(self::returnValue($this->createMock(ColorInterface::class))); + ->will(self::returnValue(self::createStub(ColorInterface::class))); $box = $this->createMock(BoxInterface::class); $image @@ -82,9 +81,7 @@ public function testLoadDefaultColor() self::assertSame($image, $loader->load($image, $options)); } - /** - * @dataProvider loadProvider - */ + #[DataProvider('loadProvider')] public function testLoad($thickX, $thickY, $color) { $image = $this->createMock(ImageInterface::class); @@ -99,7 +96,7 @@ public function testLoad($thickX, $thickY, $color) ->expects(self::once()) ->method('color') ->with($color) - ->will(self::returnValue($this->createMock(ColorInterface::class))); + ->will(self::returnValue(self::createStub(ColorInterface::class))); $box = $this->createMock(BoxInterface::class); $image @@ -129,7 +126,7 @@ public function testLoad($thickX, $thickY, $color) self::assertSame($image, $loader->load($image, $options)); } - public function loadProvider() + public static function loadProvider() { return [ [10, 10, '#fff'], diff --git a/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php index e937182c95..612c48a419 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php @@ -11,6 +11,7 @@ use Imagine\Exception\InvalidArgumentException; use Imagine\Image\ImageInterface; use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class CropFilterLoaderTest extends TestCase @@ -29,17 +30,15 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), $options); + $this->loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], @@ -57,7 +56,7 @@ public function testLoad() $offsetX = 100; $offsetY = 200; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php index b4a6eb2942..8ee5086b1a 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php @@ -15,8 +15,8 @@ class ReduceNoiseFilterLoaderTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject */ - private $filter; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Bundle\Core\Imagine\Filter\FilterInterface */ + private \PHPUnit\Framework\MockObject\Stub $filter; /** @var \Ibexa\Bundle\Core\Imagine\Filter\Loader\ReduceNoiseFilterLoader */ private $loader; @@ -24,7 +24,7 @@ class ReduceNoiseFilterLoaderTest extends TestCase protected function setUp(): void { parent::setUp(); - $this->filter = $this->createMock(FilterInterface::class); + $this->filter = self::createStub(FilterInterface::class); $this->loader = new ReduceNoiseFilterLoader($this->filter); } @@ -32,6 +32,6 @@ public function testLoadInvalidDriver() { $this->expectException(NotSupportedException::class); - $this->loader->load($this->createMock(ImageInterface::class)); + $this->loader->load(self::createStub(ImageInterface::class)); } } diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php index c120b142ab..ced5d3d814 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php @@ -11,6 +11,7 @@ use Imagine\Exception\InvalidArgumentException; use Imagine\Image\ImageInterface; use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ScaleDownOnlyFilterLoaderTest extends TestCase @@ -29,17 +30,15 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), $options); + $this->loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], @@ -51,7 +50,7 @@ public function loadInvalidProvider() public function testLoad() { $options = [123, 456]; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php index 273b6dd972..c891812ed2 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php @@ -11,6 +11,7 @@ use Imagine\Exception\InvalidArgumentException; use Imagine\Image\ImageInterface; use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ScaleExactFilterLoaderTest extends TestCase @@ -29,17 +30,15 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), $options); + $this->loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], @@ -51,7 +50,7 @@ public function loadInvalidProvider() public function testLoad() { $options = [123, 456]; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php index 873eb0d0fc..cfd424ac51 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php @@ -12,6 +12,7 @@ use Imagine\Image\Box; use Imagine\Image\ImageInterface; use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ScaleFilterLoaderTest extends TestCase @@ -30,17 +31,15 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), $options); + $this->loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php index 840cca4006..42b78a61d8 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php @@ -33,13 +33,13 @@ public function testLoadInvalid() { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), []); + $this->loader->load(self::createStub(ImageInterface::class), []); } public function testLoad() { $height = 123; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php index 9b36149c03..05b9fa4558 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php @@ -33,13 +33,13 @@ public function testLoadFail() { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class, [])); + $this->loader->load(self::createStub(ImageInterface::class, [])); } public function testLoad() { $height = 123; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php index 762ec807e8..449896cb66 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php @@ -12,6 +12,7 @@ use Imagine\Image\Box; use Imagine\Image\ImageInterface; use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ScalePercentFilterLoaderTest extends TestCase @@ -30,17 +31,15 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - /** - * @dataProvider loadInvalidProvider - */ + #[DataProvider('loadInvalidProvider')] public function testLoadInvalidOptions(array $options) { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), $options); + $this->loader->load(self::createStub(ImageInterface::class), $options); } - public function loadInvalidProvider() + public static function loadInvalidProvider() { return [ [[]], diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php index 4ad49d493d..31e071e240 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php @@ -33,13 +33,13 @@ public function testLoadInvalid() { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class), []); + $this->loader->load(self::createStub(ImageInterface::class), []); } public function testLoad() { $width = 123; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php index 78fb82b9e0..ddc67e154a 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php @@ -33,13 +33,13 @@ public function testLoadFail() { $this->expectException(InvalidArgumentException::class); - $this->loader->load($this->createMock(ImageInterface::class, [])); + $this->loader->load(self::createStub(ImageInterface::class, [])); } public function testLoad() { $width = 123; - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->innerLoader ->expects(self::once()) ->method('load') diff --git a/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php index 4af693b48b..16b18031ad 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\Imagine\Filter\FilterInterface; use Ibexa\Bundle\Core\Imagine\Filter\Loader\SwirlFilterLoader; use Imagine\Image\ImageInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class SwirlFilterLoaderTest extends TestCase @@ -29,7 +30,7 @@ protected function setUp(): void public function testLoadNoOption() { - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->filter ->expects(self::never()) ->method('setOption'); @@ -43,12 +44,10 @@ public function testLoadNoOption() self::assertSame($image, $this->loader->load($image)); } - /** - * @dataProvider loadWithOptionProvider - */ + #[DataProvider('loadWithOptionProvider')] public function testLoadWithOption($degrees) { - $image = $this->createMock(ImageInterface::class); + $image = self::createStub(ImageInterface::class); $this->filter ->expects(self::once()) ->method('setOption') @@ -63,7 +62,7 @@ public function testLoadWithOption($degrees) self::assertSame($image, $this->loader->load($image, [$degrees])); } - public function loadWithOptionProvider() + public static function loadWithOptionProvider() { return [ [10], diff --git a/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php b/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php index 6076a2a83b..1318e8d544 100644 --- a/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php +++ b/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php @@ -18,6 +18,6 @@ public function testLoad() $this->expectException(NotSupportedException::class); $filter = new UnsupportedFilter(); - $filter->apply($this->createMock(ImageInterface::class)); + $filter->apply(self::createStub(ImageInterface::class)); } } diff --git a/tests/bundle/Core/Imagine/IORepositoryResolverTest.php b/tests/bundle/Core/Imagine/IORepositoryResolverTest.php index 61500f4de5..4775ee7ffd 100644 --- a/tests/bundle/Core/Imagine/IORepositoryResolverTest.php +++ b/tests/bundle/Core/Imagine/IORepositoryResolverTest.php @@ -20,14 +20,14 @@ use Ibexa\Core\IO\Values\MissingBinaryFile; use Liip\ImagineBundle\Exception\Imagine\Cache\Resolver\NotResolvableException; use Liip\ImagineBundle\Model\Binary; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\RequestContext; -/** - * @covers \Ibexa\Bundle\Core\Imagine\IORepositoryResolver - */ +#[CoversClass(IORepositoryResolver::class)] final class IORepositoryResolverTest extends TestCase { private IOServiceInterface & MockObject $ioService; @@ -38,7 +38,7 @@ final class IORepositoryResolverTest extends TestCase private IORepositoryResolver $imageResolver; - protected VariationPurger & MockObject $variationPurger; + protected VariationPurger&\PHPUnit\Framework\MockObject\Stub $variationPurger; protected VariationPathGenerator & MockObject $variationPathGenerator; @@ -50,7 +50,7 @@ protected function setUp(): void $this->configResolver = $this->createMock(ConfigResolverInterface::class); $filterConfiguration = new FilterConfiguration(); $filterConfiguration->setConfigResolver($this->configResolver); - $this->variationPurger = $this->createMock(VariationPurger::class); + $this->variationPurger = self::createStub(VariationPurger::class); $this->variationPathGenerator = $this->createMock(VariationPathGenerator::class); $this->imageResolver = new IORepositoryResolver( $this->ioService, @@ -61,9 +61,7 @@ protected function setUp(): void ); } - /** - * @dataProvider getFilePathProvider - */ + #[DataProvider('getFilePathProvider')] public function testGetFilePath(string $path, string $filter, string $expected): void { $this->variationPathGenerator @@ -77,7 +75,7 @@ public function testGetFilePath(string $path, string $filter, string $expected): /** * @return array */ - public function getFilePathProvider(): array + public static function getFilePathProvider(): array { return [ ['Tardis/bigger/in-the-inside/RiverSong.jpg', 'thumbnail', 'Tardis/bigger/in-the-inside/RiverSong_thumbnail.jpg'], @@ -129,9 +127,7 @@ public function testIsStoredImageDoesntExist(): void self::assertFalse($this->imageResolver->isStored($path, $filter)); } - /** - * @dataProvider resolveProvider - */ + #[DataProvider('resolveProvider')] public function testResolve(string $path, string $filter, string $variationPath, ?string $requestUrl, mixed $expected): void { if ($requestUrl) { @@ -183,7 +179,7 @@ public function testResolveNotFound(): void /** * @return array */ - public function resolveProvider(): array + public static function resolveProvider(): array { return [ [ @@ -260,7 +256,7 @@ public function testStore(): void /** * @return iterable}> */ - public function getDataForTestRemove(): iterable + public static function getDataForTestRemove(): iterable { yield 'empty filters' => [ [], @@ -274,11 +270,10 @@ public function getDataForTestRemove(): iterable } /** - * @dataProvider getDataForTestRemove - * * @param string[] $filters * @param array $imageVariations */ + #[DataProvider('getDataForTestRemove')] public function testRemove(array $filters, array $imageVariations): void { $originalPath = 'foo/bar/test.jpg'; diff --git a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php index d1e84f2a66..fe77f6d860 100644 --- a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php @@ -33,7 +33,7 @@ public function testConfigure() ->with('io.binarydata_handler') ->willReturn(self::BINARY_HANDLER_NAME); - $provider = $this->createMock(PlaceholderProvider::class); + $provider = self::createStub(PlaceholderProvider::class); $providerRegistry = $this->createMock(PlaceholderProviderRegistry::class); $providerRegistry diff --git a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php index 92a097e089..11faad99ad 100644 --- a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php @@ -24,6 +24,7 @@ use Ibexa\Core\IO\Values\BinaryFileCreateStruct; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Liip\ImagineBundle\Exception\Imagine\Cache\Resolver\NotResolvableException; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class PlaceholderAliasGeneratorTest extends TestCase @@ -69,7 +70,7 @@ public function testGetVariationWrongValue() $this->expectException(\InvalidArgumentException::class); $field = new Field([ - 'value' => $this->createMock(FieldTypeValue::class), + 'value' => self::createStub(FieldTypeValue::class), 'fieldDefIdentifier' => 'image', ]); @@ -80,12 +81,10 @@ public function testGetVariationWrongValue() $this->aliasGenerator->getVariation($field, new VersionInfo(), 'foo'); } - /** - * @dataProvider getVariationProvider - */ + #[DataProvider('getVariationProvider')] public function testGetVariationSkipsPlaceholderGeneration(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) { - $expectedVariation = $this->createMock(ImageVariation::class); + $expectedVariation = self::createStub(ImageVariation::class); $this->ioResolver ->expects(self::never()) @@ -113,12 +112,10 @@ public function testGetVariationSkipsPlaceholderGeneration(Field $field, APIVers self::assertEquals($expectedVariation, $actualVariation); } - /** - * @dataProvider getVariationProvider - */ + #[DataProvider('getVariationProvider')] public function testGetVariationOriginalFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) { - $expectedVariation = $this->createMock(ImageVariation::class); + $expectedVariation = self::createStub(ImageVariation::class); $this->ioResolver ->expects(self::once()) @@ -146,20 +143,18 @@ public function testGetVariationOriginalFound(Field $field, APIVersionInfo $vers self::assertEquals($expectedVariation, $actualVariation); } - /** - * @dataProvider getVariationProvider - */ + #[DataProvider('getVariationProvider')] public function testGetVariationOriginalNotFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) { $placeholderPath = '/tmp/placeholder.jpg'; $binaryCreateStruct = new BinaryFileCreateStruct(); - $expectedVariation = $this->createMock(ImageVariation::class); + $expectedVariation = self::createStub(ImageVariation::class); $this->ioResolver ->expects(self::once()) ->method('resolve') ->with($field->value->id, IORepositoryResolver::VARIATION_ORIGINAL) - ->willThrowException($this->createMock(NotResolvableException::class)); + ->willThrowException(self::createStub(NotResolvableException::class)); $this->placeholderProvider ->expects(self::once()) @@ -200,9 +195,7 @@ public function testGetVariationOriginalNotFound(Field $field, APIVersionInfo $v self::assertEquals($expectedVariation, $actualVariation); } - /** - * @dataProvider getVariationProvider - */ + #[DataProvider('getVariationProvider')] public function testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable( Field $field, APIVersionInfo $versionInfo, @@ -213,8 +206,8 @@ public function testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable( $placeholderPath = '/tmp/placeholder.jpg'; $binaryCreateStruct = new BinaryFileCreateStruct(); - $expectedVariation = $this->createMock(ImageVariation::class); - $binaryFile = $this->createMock(BinaryFile::class); + $expectedVariation = self::createStub(ImageVariation::class); + $binaryFile = self::createStub(BinaryFile::class); $this->ioResolver ->expects(self::once()) @@ -230,7 +223,7 @@ public function testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable( $this->ioService ->method('getFileInputStream') ->with($binaryFile) - ->willThrowException($this->createMock(NotFoundException::class)); + ->willThrowException(self::createStub(NotFoundException::class)); $this->placeholderProvider ->expects(self::once()) @@ -271,15 +264,13 @@ public function testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable( self::assertEquals($expectedVariation, $actualVariation); } - /** - * @dataProvider supportsValueProvider - */ + #[DataProvider('supportsValueProvider')] public function testSupportsValue(Value $value, bool $isSupported) { self::assertSame($isSupported, $this->aliasGenerator->supportsValue($value)); } - public function supportsValueProvider(): array + public static function supportsValueProvider(): array { return [ [new NullValue(), false], @@ -287,7 +278,7 @@ public function supportsValueProvider(): array ]; } - public function getVariationProvider(): array + public static function getVariationProvider(): array { $field = new Field([ 'value' => new ImageValue([ diff --git a/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php b/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php index def720c8ad..d027045af6 100644 --- a/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php @@ -15,13 +15,12 @@ use Imagine\Image\ImageInterface; use Imagine\Image\ImagineInterface; use Imagine\Image\Palette\Color\ColorInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class GenericProviderTest extends TestCase { - /** - * @dataProvider getPlaceholderDataProvider - */ + #[DataProvider('getPlaceholderDataProvider')] public function testGetPlaceholder(ImageValue $value, $expectedText, array $options = []) { $font = $this->createMock(AbstractFont::class); @@ -41,7 +40,7 @@ public function testGetPlaceholder(ImageValue $value, $expectedText, array $opti $font ->expects(self::any()) ->method('box') - ->willReturn($this->createMock(BoxInterface::class)); + ->willReturn(self::createStub(BoxInterface::class)); $image = $this->createMock(ImageInterface::class); @@ -70,7 +69,7 @@ public function testGetPlaceholder(ImageValue $value, $expectedText, array $opti $provider->getPlaceholder($value, $options); } - public function getPlaceholderDataProvider() + public static function getPlaceholderDataProvider() { return [ [ diff --git a/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php b/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php index c5b421f6a3..2366bc6894 100644 --- a/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php @@ -9,19 +9,17 @@ use Ibexa\Bundle\Core\Imagine\PlaceholderProvider; use Ibexa\Bundle\Core\Imagine\PlaceholderProviderRegistry; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\Imagine\PlaceholderProviderRegistry - */ +#[CoversClass(PlaceholderProviderRegistry::class)] class PlaceholderProviderRegistryTest extends TestCase { private const FOO = 'foo'; private const BAR = 'bar'; - /** - * @depends testGetProviderKnown - */ + #[Depends('testGetProviderKnown')] public function testConstructor() { $providers = [ @@ -35,9 +33,7 @@ public function testConstructor() self::assertSame($providers[self::BAR], $registry->getProvider(self::BAR)); } - /** - * @depends testGetProviderKnown - */ + #[Depends('testGetProviderKnown')] public function testAddProvider(): void { $provider = $this->getPlaceholderProviderMock(); diff --git a/tests/bundle/Core/Imagine/VariationPurger/IOVariationPurgerTest.php b/tests/bundle/Core/Imagine/VariationPurger/IOVariationPurgerTest.php index de882edd19..1268d56b07 100644 --- a/tests/bundle/Core/Imagine/VariationPurger/IOVariationPurgerTest.php +++ b/tests/bundle/Core/Imagine/VariationPurger/IOVariationPurgerTest.php @@ -12,12 +12,11 @@ use Ibexa\Bundle\Core\Imagine\VariationPurger\IOVariationPurger; use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\Persistence\Cache\Identifier\CacheIdentifierGeneratorInterface; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; -/** - * @covers \Ibexa\Bundle\Core\Imagine\VariationPurger\IOVariationPurger - */ +#[CoversClass(IOVariationPurger::class)] final class IOVariationPurgerTest extends TestCase { public function testPurgesAliasList(): void @@ -31,28 +30,47 @@ public function testPurgesAliasList(): void ->expects(self::once()) ->method('getVariationNameTag') ->willReturn('image_variation_name'); + $matcher = self::exactly(2); $ioService - ->expects(self::exactly(2)) - ->method('deleteDirectory') - ->withConsecutive( - ['_aliases/medium'], - ['_aliases/large'] - ); + ->expects($matcher) + ->method('deleteDirectory')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('_aliases/medium', $parameters[0]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('_aliases/large', $parameters[0]); + } + }); + $matcher = self::exactly(2); $cacheIdentifierGenerator - ->expects(self::exactly(2)) - ->method('generateTag') - ->withConsecutive( - ['image_variation_name', ['medium']], - ['image_variation_name', ['large']] - ) - ->willReturnOnConsecutiveCalls('ign-medium', 'ign-large'); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('image_variation_name', $parameters[0]); + $this->assertSame(['medium'], $parameters[1]); + + return 'ign-medium'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('image_variation_name', $parameters[0]); + $this->assertSame(['large'], $parameters[1]); + + return 'ign-large'; + } + }); + $matcher = self::exactly(2); $tagAwareAdapter - ->expects(self::exactly(2)) - ->method('invalidateTags') - ->withConsecutive( - [['ign-medium']], - [['ign-large']] - ); + ->expects($matcher) + ->method('invalidateTags')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(['ign-medium'], $parameters[0]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(['ign-large'], $parameters[0]); + } + + return false; + }); $purger = new IOVariationPurger( $ioService, diff --git a/tests/bundle/Core/Imagine/VariationPurger/ImageFileVariationPurgerTest.php b/tests/bundle/Core/Imagine/VariationPurger/ImageFileVariationPurgerTest.php index 1310c7980d..abb9abb2b4 100644 --- a/tests/bundle/Core/Imagine/VariationPurger/ImageFileVariationPurgerTest.php +++ b/tests/bundle/Core/Imagine/VariationPurger/ImageFileVariationPurgerTest.php @@ -14,12 +14,11 @@ use Ibexa\Contracts\Core\Variation\VariationPathGenerator; use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\IO\Values\BinaryFile; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\Imagine\VariationPurger\ImageFileVariationPurger - */ +#[CoversClass(ImageFileVariationPurger::class)] final class ImageFileVariationPurgerTest extends TestCase { protected IOServiceInterface & MockObject $ioServiceMock; @@ -42,16 +41,30 @@ public function testIteratesOverItems(): void 'path/to/2nd/image.png', ] ); + $matcher = self::exactly(4); $this->pathGeneratorMock - ->expects(self::exactly(4)) - ->method('getVariationPath') - ->withConsecutive( - ['path/to/1st/image.jpg', 'large'], - ['path/to/1st/image.jpg', 'gallery'], - ['path/to/2nd/image.png', 'large'], - ['path/to/2nd/image.png', 'gallery'] - ); + ->expects($matcher) + ->method('getVariationPath')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('path/to/1st/image.jpg', $parameters[0]); + $this->assertSame('large', $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('path/to/1st/image.jpg', $parameters[0]); + $this->assertSame('gallery', $parameters[1]); + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('path/to/2nd/image.png', $parameters[0]); + $this->assertSame('large', $parameters[1]); + } + if ($matcher->numberOfInvocations() === 4) { + $this->assertSame('path/to/2nd/image.png', $parameters[0]); + $this->assertSame('gallery', $parameters[1]); + } + + return ''; + }); $purger->purge(['large', 'gallery']); } diff --git a/tests/bundle/Core/Imagine/VariationPurger/LegacyStorageImageFileListTest.php b/tests/bundle/Core/Imagine/VariationPurger/LegacyStorageImageFileListTest.php index df0ae13b76..55647ee934 100644 --- a/tests/bundle/Core/Imagine/VariationPurger/LegacyStorageImageFileListTest.php +++ b/tests/bundle/Core/Imagine/VariationPurger/LegacyStorageImageFileListTest.php @@ -12,12 +12,11 @@ use Ibexa\Bundle\Core\Imagine\VariationPurger\LegacyStorageImageFileList; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\IO\IOConfigProvider; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\Imagine\VariationPurger\LegacyStorageImageFileList - */ +#[CoversClass(LegacyStorageImageFileList::class)] final class LegacyStorageImageFileListTest extends TestCase { protected ImageFileRowReader&MockObject $rowReaderMock; diff --git a/tests/bundle/Core/Matcher/ServiceAwareMatcherFactoryTest.php b/tests/bundle/Core/Matcher/ServiceAwareMatcherFactoryTest.php index faf21dd3e1..c5f19894ff 100644 --- a/tests/bundle/Core/Matcher/ServiceAwareMatcherFactoryTest.php +++ b/tests/bundle/Core/Matcher/ServiceAwareMatcherFactoryTest.php @@ -14,13 +14,14 @@ use Ibexa\Core\MVC\Symfony\View\ContentView; use Ibexa\Core\MVC\Symfony\View\View; use Ibexa\Core\Repository\Repository; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** - * @covers \Ibexa\Bundle\Core\Matcher\ServiceAwareMatcherFactory - * * @phpstan-type TMatchConfigArray array}>> */ +#[CoversClass(ServiceAwareMatcherFactory::class)] final class ServiceAwareMatcherFactoryTest extends TestCase { /** @var \Ibexa\Contracts\Core\MVC\View\ViewMatcherRegistryInterface&\PHPUnit\Framework\MockObject\MockObject */ @@ -52,7 +53,7 @@ protected function setUp(): void /** * @phpstan-return iterable */ - public function getDataForTestMatch(): iterable + public static function getDataForTestMatch(): iterable { yield 'full view service-based matcher' => [ new ContentView(), @@ -84,15 +85,14 @@ public function getDataForTestMatch(): iterable } /** - * @dataProvider getDataForTestMatch - * * @phpstan-param TMatchConfigArray $matchConfig */ + #[DataProvider('getDataForTestMatch')] public function testMatch(View $view, array $matchConfig, string $matchedConfigValue): void { $serviceMatcherFactory = new ServiceAwareMatcherFactory( $this->viewMatcherRegistryMock, - $this->createMock(Repository::class), + self::createStub(Repository::class), null, $matchConfig ); diff --git a/tests/bundle/Core/Matcher/ViewMatcherRegistryTest.php b/tests/bundle/Core/Matcher/ViewMatcherRegistryTest.php index b9e8e58fe3..2461ae4933 100644 --- a/tests/bundle/Core/Matcher/ViewMatcherRegistryTest.php +++ b/tests/bundle/Core/Matcher/ViewMatcherRegistryTest.php @@ -10,11 +10,10 @@ use Ibexa\Bundle\Core\Matcher\ViewMatcherRegistry; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Core\MVC\Symfony\Matcher\ViewMatcherInterface; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\Matcher\ViewMatcherRegistry - */ +#[CoversClass(ViewMatcherRegistry::class)] final class ViewMatcherRegistryTest extends TestCase { private const MATCHER_NAME = 'test_matcher'; diff --git a/tests/bundle/Core/Routing/DefaultRouterTest.php b/tests/bundle/Core/Routing/DefaultRouterTest.php index d39a98301a..4b3323b42d 100644 --- a/tests/bundle/Core/Routing/DefaultRouterTest.php +++ b/tests/bundle/Core/Routing/DefaultRouterTest.php @@ -12,6 +12,8 @@ use Ibexa\Bundle\Core\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Bundle\FrameworkBundle\Routing\Router as FrameworkRouter; @@ -21,9 +23,7 @@ use Symfony\Component\Routing\RequestContext; use Symfony\Component\Routing\Router; -/** - * @covers \Ibexa\Bundle\Core\Routing\DefaultRouter - */ +#[CoversClass(DefaultRouter::class)] final class DefaultRouterTest extends TestCase { private const array NON_SITEACCESS_AWARE_ROUTES = ['_dontwantsiteaccess']; @@ -83,9 +83,7 @@ public function testMatchRequestRegularPathinfo(): void self::assertSame($matchedParameters, $this->createRouter()->matchRequest($request)); } - /** - * @dataProvider providerGenerateNoSiteAccess - */ + #[DataProvider('providerGenerateNoSiteAccess')] public function testGenerateNoSiteAccess(string $url): void { $this->innerRouter @@ -100,7 +98,7 @@ public function testGenerateNoSiteAccess(string $url): void /** * @return iterable */ - public function providerGenerateNoSiteAccess(): iterable + public static function providerGenerateNoSiteAccess(): iterable { return [ ['/foo/bar'], @@ -111,8 +109,6 @@ public function providerGenerateNoSiteAccess(): iterable } /** - * @dataProvider providerGenerateWithSiteAccess - * * @param string $urlGenerated The URL generated by the standard UrLGenerator * @param string $relevantUri The relevant URI part of the generated URL (without host and basepath) * @param string $expectedUrl The URL we're expecting to be finally generated, with siteaccess @@ -120,6 +116,7 @@ public function providerGenerateNoSiteAccess(): iterable * @param bool $isMatcherLexer True if the siteaccess matcher is URILexer * @param int $referenceType The type of reference to be generated (one of the constants) */ + #[DataProvider('providerGenerateWithSiteAccess')] public function testGenerateWithSiteAccess( string $urlGenerated, string $relevantUri, @@ -179,7 +176,7 @@ public function testGenerateWithSiteAccess( /** * @return iterable */ - public function providerGenerateWithSiteAccess(): iterable + public static function providerGenerateWithSiteAccess(): iterable { return [ ['/foo/bar', '/foo/bar', '/foo/bar', 'test_siteaccess', false, UrlGeneratorInterface::ABSOLUTE_PATH, null], diff --git a/tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php b/tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php index 4ab16993e8..7f75b1b87b 100644 --- a/tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php +++ b/tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php @@ -11,20 +11,21 @@ use FOS\JsRoutingBundle\Extractor\ExposedRoutesExtractorInterface; use Ibexa\Bundle\Core\Routing\JsRouting\ExposedRoutesExtractor; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; /** - * @covers \Ibexa\Bundle\Core\Routing\JsRouting\ExposedRoutesExtractor - * * @internal */ +#[CoversClass(ExposedRoutesExtractor::class)] final class ExposedRoutesExtractorTest extends TestCase { private const BASE_URL = '/foo'; - public function getDataForTestGetBaseUrl(): iterable + public static function getDataForTestGetBaseUrl(): iterable { yield 'CLI' => [ // no master request in a stack @@ -58,9 +59,7 @@ public function getDataForTestGetBaseUrl(): iterable ]; } - /** - * @dataProvider getDataForTestGetBaseUrl - */ + #[DataProvider('getDataForTestGetBaseUrl')] public function testGetBaseUrl(?Request $masterRequest, string $expectedBaseUrl): void { $innerExtractor = $this->createMock(ExposedRoutesExtractorInterface::class); diff --git a/tests/bundle/Core/SiteAccess/Config/IOConfigResolverTest.php b/tests/bundle/Core/SiteAccess/Config/IOConfigResolverTest.php index cf6b8a1586..5ea0a28308 100644 --- a/tests/bundle/Core/SiteAccess/Config/IOConfigResolverTest.php +++ b/tests/bundle/Core/SiteAccess/Config/IOConfigResolverTest.php @@ -13,11 +13,10 @@ use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessService; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\SiteAccess\Config\IOConfigResolver - */ +#[CoversClass(IOConfigResolver::class)] class IOConfigResolverTest extends TestCase { private const DEFAULT_NAMESPACE = 'ibexa.site_access.config'; diff --git a/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php b/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php index 66bc2bebab..38fafaad75 100644 --- a/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php +++ b/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php @@ -12,11 +12,10 @@ use Ibexa\Bundle\Core\SiteAccess\SiteAccessMatcherRegistryInterface; use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\Core\SiteAccess\MatcherBuilder - */ +#[CoversClass(MatcherBuilder::class)] class MatcherBuilderTest extends TestCase { /** @var \PHPUnit\Framework\MockObject\MockObject */ @@ -34,7 +33,7 @@ public function testBuildMatcherNoService() ->expects(self::never()) ->method('getMatcher'); $matcherBuilder = new MatcherBuilder($this->siteAccessMatcherRegistry); - $matcher = $this->createMock(Matcher::class); + $matcher = self::createStub(Matcher::class); $builtMatcher = $matcherBuilder->buildMatcher('\\' . get_class($matcher), [], new SimplifiedRequest()); self::assertInstanceOf(get_class($matcher), $builtMatcher); } @@ -48,7 +47,7 @@ public function testBuildMatcherServiceWrongInterface() ->expects(self::once()) ->method('getMatcher') ->with($serviceId) - ->will(self::returnValue($this->createMock(Matcher::class))); + ->will(self::returnValue(self::createStub(Matcher::class))); $matcherBuilder = new MatcherBuilder($this->siteAccessMatcherRegistry); $matcherBuilder->buildMatcher("@$serviceId", [], new SimplifiedRequest()); } diff --git a/tests/bundle/Core/URLChecker/URLCheckerTest.php b/tests/bundle/Core/URLChecker/URLCheckerTest.php index e0d6be90ec..afee9c7f86 100644 --- a/tests/bundle/Core/URLChecker/URLCheckerTest.php +++ b/tests/bundle/Core/URLChecker/URLCheckerTest.php @@ -55,8 +55,8 @@ public function testCheck() ->willReturn($this->createSearchResults($groups)); $handlers = [ - 'http' => $this->createMock(URLHandlerInterface::class), - 'https' => $this->createMock(URLHandlerInterface::class), + 'http' => self::createStub(URLHandlerInterface::class), + 'https' => self::createStub(URLHandlerInterface::class), ]; foreach ($handlers as $scheme => $handler) { @@ -91,7 +91,7 @@ public function testCheckUnsupported() ->with('Unsupported URL schema: https'); $handlers = [ - 'http' => $this->createMock(URLHandlerInterface::class), + 'http' => self::createStub(URLHandlerInterface::class), ]; foreach ($handlers as $scheme => $handler) { diff --git a/tests/bundle/Core/ValueResolver/ContentValueResolverTest.php b/tests/bundle/Core/ValueResolver/ContentValueResolverTest.php index fdc46a07cf..d04631e352 100644 --- a/tests/bundle/Core/ValueResolver/ContentValueResolverTest.php +++ b/tests/bundle/Core/ValueResolver/ContentValueResolverTest.php @@ -34,7 +34,7 @@ public function testResolveWithValidContentId(): void $argumentMetadata = $this->createMock(ArgumentMetadata::class); $argumentMetadata->method('getType')->willReturn(Content::class); - $mockContent = $this->createMock(Content::class); + $mockContent = self::createStub(Content::class); $this->contentServiceMock ->expects(self::once()) diff --git a/tests/bundle/Core/ValueResolver/LocationValueResolverTest.php b/tests/bundle/Core/ValueResolver/LocationValueResolverTest.php index 692aa36727..58d5d8be03 100644 --- a/tests/bundle/Core/ValueResolver/LocationValueResolverTest.php +++ b/tests/bundle/Core/ValueResolver/LocationValueResolverTest.php @@ -42,7 +42,7 @@ public function testResolveWithValidLocationId(): void $argumentMetadata = $this->createMock(ArgumentMetadata::class); $argumentMetadata->method('getType')->willReturn(Location::class); - $mockLocation = $this->createMock(Location::class); + $mockLocation = self::createStub(Location::class); $this->contentPreviewHelperMock ->method('isPreviewActive') diff --git a/tests/bundle/IO/BinaryStreamResponseTest.php b/tests/bundle/IO/BinaryStreamResponseTest.php index 1ebc485080..63c21bc852 100644 --- a/tests/bundle/IO/BinaryStreamResponseTest.php +++ b/tests/bundle/IO/BinaryStreamResponseTest.php @@ -11,13 +11,12 @@ use Ibexa\Bundle\IO\BinaryStreamResponse; use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\IO\Values\BinaryFile; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; -/** - * @covers \Ibexa\Bundle\IO\BinaryStreamResponse - */ +#[CoversClass(BinaryStreamResponse::class)] final class BinaryStreamResponseTest extends TestCase { /** diff --git a/tests/bundle/IO/DependencyInjection/Compiler/IOConfigurationPassTest.php b/tests/bundle/IO/DependencyInjection/Compiler/IOConfigurationPassTest.php index d5d187c657..b8e079f131 100644 --- a/tests/bundle/IO/DependencyInjection/Compiler/IOConfigurationPassTest.php +++ b/tests/bundle/IO/DependencyInjection/Compiler/IOConfigurationPassTest.php @@ -12,14 +12,13 @@ use Ibexa\Bundle\IO\DependencyInjection\Compiler\IOConfigurationPass; use Ibexa\Bundle\IO\DependencyInjection\ConfigurationFactory; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; -/** - * @covers \Ibexa\Bundle\IO\DependencyInjection\Compiler\IOConfigurationPass - */ +#[CoversClass(IOConfigurationPass::class)] final class IOConfigurationPassTest extends AbstractCompilerPassTestCase { protected ConfigurationFactory & MockObject $metadataConfigurationFactoryMock; diff --git a/tests/bundle/IO/EventListener/StreamFileListenerTest.php b/tests/bundle/IO/EventListener/StreamFileListenerTest.php index 9c5b59a7de..2c2b56c57a 100644 --- a/tests/bundle/IO/EventListener/StreamFileListenerTest.php +++ b/tests/bundle/IO/EventListener/StreamFileListenerTest.php @@ -14,15 +14,14 @@ use Ibexa\Core\IO\IOConfigProvider; use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\IO\Values\BinaryFile; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\HttpKernelInterface; -/** - * @covers \Ibexa\Bundle\IO\EventListener\StreamFileListener - */ +#[CoversClass(StreamFileListener::class)] final class StreamFileListenerTest extends TestCase { private StreamFileListener $eventListener; @@ -119,7 +118,7 @@ protected function createRequest(string $semanticPath, string $host = 'localhost protected function createEvent(Request $request): RequestEvent { return new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); diff --git a/tests/bundle/IO/FieldType/Image/ImageThumbnailProxyStrategyTest.php b/tests/bundle/IO/FieldType/Image/ImageThumbnailProxyStrategyTest.php index 8fd673dcb2..182bfa443c 100644 --- a/tests/bundle/IO/FieldType/Image/ImageThumbnailProxyStrategyTest.php +++ b/tests/bundle/IO/FieldType/Image/ImageThumbnailProxyStrategyTest.php @@ -40,7 +40,7 @@ public function testGetThumbnailThrowsExceptionIfWrappedObjectIsNull(): void $field->method('getId')->willReturn(123); $field->method('getFieldTypeIdentifier')->willReturn('ezimage'); - $versionInfo = $this->createMock(VersionInfo::class); + $versionInfo = self::createStub(VersionInfo::class); $this->imageThumbnailStrategyMock ->expects(self::once()) diff --git a/tests/bundle/IO/Migration/FileMigratorTest.php b/tests/bundle/IO/Migration/FileMigratorTest.php index 3fdf38ffa5..2723bbab52 100644 --- a/tests/bundle/IO/Migration/FileMigratorTest.php +++ b/tests/bundle/IO/Migration/FileMigratorTest.php @@ -11,16 +11,16 @@ use DateTime; use Ibexa\Bundle\IO\ApiLoader\HandlerRegistry; use Ibexa\Bundle\IO\Migration\FileMigrator\FileMigrator; +use Ibexa\Bundle\IO\Migration\MigrationHandler; use Ibexa\Contracts\Core\IO\BinaryFile; use Ibexa\Core\IO\IOBinarydataHandler; use Ibexa\Core\IO\IOMetadataHandler; use Ibexa\Core\IO\IOMetadataHandler\Flysystem; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Bundle\IO\Migration\MigrationHandler - */ +#[CoversClass(MigrationHandler::class)] final class FileMigratorTest extends TestCase { /** @var \Ibexa\Bundle\IO\ApiLoader\HandlerRegistry<\Ibexa\Core\IO\IOMetadataHandler>&\PHPUnit\Framework\MockObject\MockObject */ diff --git a/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php b/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php index 0dd8d5003b..51a4d7efab 100644 --- a/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php +++ b/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php @@ -11,18 +11,16 @@ use Ibexa\Bundle\RepositoryInstaller\Command\InstallPlatformCommand; use Ibexa\Bundle\RepositoryInstaller\DependencyInjection\Compiler\InstallerTagPass; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; -/** - * @covers \Ibexa\Bundle\RepositoryInstaller\DependencyInjection\Compiler\InstallerTagPass - */ +#[CoversClass(InstallerTagPass::class)] +#[CoversMethod(InstallerTagPass::class, 'process')] class InstallerTagPassTest extends AbstractCompilerPassTestCase { - /** - * @covers \Ibexa\Bundle\RepositoryInstaller\DependencyInjection\Compiler\InstallerTagPass::process - */ public function testProcessInjectsInstallersIntoCommand(): void { $this->setDefinition( diff --git a/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php b/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php index e4a48f7812..cd45cbe586 100644 --- a/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php +++ b/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php @@ -14,15 +14,13 @@ use Ibexa\Bundle\RepositoryInstaller\Installer\CoreInstaller; use Ibexa\Bundle\RepositoryInstaller\Installer\DbBasedInstaller; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Bundle\RepositoryInstaller\DependencyInjection\IbexaRepositoryInstallerExtension - */ +#[CoversClass(IbexaRepositoryInstallerExtension::class)] +#[CoversMethod(IbexaRepositoryInstallerExtension::class, 'load')] class IbexaInstallerExtensionTest extends AbstractExtensionTestCase { - /** - * @covers \Ibexa\Bundle\RepositoryInstaller\DependencyInjection\IbexaRepositoryInstallerExtension::load - */ public function testLoadLoadsTaggedCoreInstaller(): void { $this->load(); @@ -37,9 +35,6 @@ public function testLoadLoadsTaggedCoreInstaller(): void ); } - /** - * @covers \Ibexa\Bundle\RepositoryInstaller\DependencyInjection\IbexaRepositoryInstallerExtension::load - */ public function testLoadLoadsTaggedInstallerCommand(): void { $this->load(); diff --git a/tests/bundle/RepositoryInstaller/IbexaRepositoryInstallerBundleTest.php b/tests/bundle/RepositoryInstaller/IbexaRepositoryInstallerBundleTest.php index a67042e6ba..fec2ae15ff 100644 --- a/tests/bundle/RepositoryInstaller/IbexaRepositoryInstallerBundleTest.php +++ b/tests/bundle/RepositoryInstaller/IbexaRepositoryInstallerBundleTest.php @@ -11,14 +11,13 @@ use Ibexa\Bundle\DoctrineSchema\DependencyInjection\DoctrineSchemaExtension; use Ibexa\Bundle\RepositoryInstaller\DependencyInjection\Compiler\InstallerTagPass; use Ibexa\Bundle\RepositoryInstaller\IbexaRepositoryInstallerBundle; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * @covers \Ibexa\Bundle\RepositoryInstaller\IbexaRepositoryInstallerBundle - */ +#[CoversClass(IbexaRepositoryInstallerBundle::class)] class IbexaRepositoryInstallerBundleTest extends TestCase { private IbexaRepositoryInstallerBundle $bundle; diff --git a/tests/integration/Core/BasicKernelTest.php b/tests/integration/Core/BasicKernelTest.php index 37a5e49910..35070c3862 100644 --- a/tests/integration/Core/BasicKernelTest.php +++ b/tests/integration/Core/BasicKernelTest.php @@ -10,13 +10,13 @@ use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Test\Core\IbexaKernelTestCase; +use PHPUnit\Framework\Attributes\CoversNothing; /** * Schema and fixtures are imported once, before the suite runs, by tests/integration/bootstrap.php — * this test only needs to boot the kernel. - * - * @coversNothing */ +#[CoversNothing] final class BasicKernelTest extends IbexaKernelTestCase { public function testBasicKernelCompiles(): void diff --git a/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php b/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php index ecc2247e5d..bc6d04d4a1 100644 --- a/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php +++ b/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php @@ -22,6 +22,8 @@ use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\IO\Values\BinaryFileCreateStruct; use Ibexa\Tests\Integration\Core\BaseCoreFieldTypeIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; class BinaryBaseStorageTest extends BaseCoreFieldTypeIntegrationTestCase @@ -37,8 +39,8 @@ class BinaryBaseStorageTest extends BaseCoreFieldTypeIntegrationTestCase /** @var \Ibexa\Core\FieldType\BinaryBase\BinaryBaseStorage|\PHPUnit\Framework\MockObject\MockObject */ protected $storage; - /** @var \Ibexa\Core\FieldType\Validator\FileExtensionBlackListValidator&\PHPUnit\Framework\MockObject\MockObject */ - protected $fileExtensionBlackListValidatorMock; + /** @var \Ibexa\Core\FieldType\Validator\FileExtensionBlackListValidator&\PHPUnit\Framework\MockObject\Stub */ + protected \PHPUnit\Framework\MockObject\Stub $fileExtensionBlackListValidatorMock; protected function setUp(): void { @@ -47,7 +49,7 @@ protected function setUp(): void $this->gateway = $this->getStorageGateway(); $this->pathGeneratorMock = $this->createMock(PathGeneratorInterface::class); $this->ioServiceMock = $this->createMock(IOServiceInterface::class); - $this->fileExtensionBlackListValidatorMock = $this->createMock( + $this->fileExtensionBlackListValidatorMock = self::createStub( FileExtensionBlackListValidator::class ); $this->storage = $this->getMockBuilder(BinaryBaseStorage::class) @@ -57,7 +59,7 @@ protected function setUp(): void $this->gateway, $this->ioServiceMock, $this->pathGeneratorMock, - $this->createMock(MimeTypeDetector::class), + self::createStub(MimeTypeDetector::class), $this->fileExtensionBlackListValidatorMock, ] ) @@ -74,9 +76,7 @@ public function testHasFieldData(): void self::assertTrue($this->storage->hasFieldData()); } - /** - * @dataProvider providerOfFieldData - */ + #[DataProvider('providerOfFieldData')] public function testStoreFieldData(VersionInfo $versionInfo, Field $field): void { $binaryFileIdentifier = 'qwerty12345'; @@ -104,15 +104,10 @@ public function testStoreFieldData(VersionInfo $versionInfo, Field $field): void ->willReturn(new BinaryFile(['id' => $binaryFileIdentifier, 'uri' => '/foo'])); $this->storage->storeFieldData($versionInfo, $field); - - $this->expectNotToPerformAssertions(); } - /** - * @depends testStoreFieldData - * - * @dataProvider providerOfFieldData - */ + #[Depends('testStoreFieldData')] + #[DataProvider('providerOfFieldData')] public function testCopyLegacyField(VersionInfo $versionInfo, Field $originalField): void { $field = clone $originalField; @@ -132,7 +127,7 @@ public function testCopyLegacyField(VersionInfo $versionInfo, Field $originalFie self::assertFalse($flag); } - public function providerOfFieldData(): array + public static function providerOfFieldData(): array { $field = new Field(); $field->id = 124; diff --git a/tests/integration/Core/Doctrine/ManagedTablesSchemaAssetFilterCompositionTest.php b/tests/integration/Core/Doctrine/ManagedTablesSchemaAssetFilterCompositionTest.php index 6190785480..65ff4fb5c5 100644 --- a/tests/integration/Core/Doctrine/ManagedTablesSchemaAssetFilterCompositionTest.php +++ b/tests/integration/Core/Doctrine/ManagedTablesSchemaAssetFilterCompositionTest.php @@ -10,7 +10,9 @@ use Doctrine\Bundle\DoctrineBundle\Dbal\SchemaAssetsFilterManager; use Doctrine\DBAL\Configuration; +use Ibexa\Bundle\Core\DependencyInjection\Compiler\InjectEntityManagerMappingsPass; use Ibexa\Contracts\Core\Test\IbexaKernelTestCase; +use PHPUnit\Framework\Attributes\CoversClass; /** * Both InjectEntityManagerMappingsPass and DoctrineBundle's DbalSchemaFilterPass install a @@ -18,9 +20,8 @@ * Configuration::setSchemaAssetsFilter() overwrites rather than composes, this verifies in a * fully booted kernel - i.e. with the real compiler pass ordering - that neither the legacy * schema protection nor a project's own schema filter gets lost. - * - * @covers \Ibexa\Bundle\Core\DependencyInjection\Compiler\InjectEntityManagerMappingsPass */ +#[CoversClass(InjectEntityManagerMappingsPass::class)] final class ManagedTablesSchemaAssetFilterCompositionTest extends IbexaKernelTestCase { protected static function getKernelClass(): string diff --git a/tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php b/tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php index f2d6cfbd42..e1b6ad143e 100644 --- a/tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php +++ b/tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php @@ -16,6 +16,7 @@ use Ibexa\Tests\Integration\Core\FieldType\FieldConstraintsStorage\Stub\ExampleFieldConstraintsStorage; use Ibexa\Tests\Integration\Core\FieldType\FieldConstraintsStorage\Stub\ExampleFieldType; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DependsExternal; final class FieldConstraintsStorageTest extends BaseTestCase { @@ -90,9 +91,7 @@ public function testStorageDataIsCreatedOnContentTypeCreate(): ContentType return $contentTypeService->loadContentTypeByIdentifier($contentType->identifier); } - /** - * @depends Ibexa\Tests\Integration\Core\FieldType\FieldConstraintsStorage\FieldConstraintsStorageTest::testStorageDataIsCreatedOnContentTypeCreate - */ + #[DependsExternal(self::class, 'testStorageDataIsCreatedOnContentTypeCreate')] public function testStorageDataIsUpdatedOnContentTypeUpdate(ContentType $contentType): ContentType { $repository = $this->getRepository(false); @@ -128,9 +127,7 @@ public function testStorageDataIsUpdatedOnContentTypeUpdate(ContentType $content return $contentTypeService->loadContentTypeByIdentifier($contentType->identifier); } - /** - * @depends Ibexa\Tests\Integration\Core\FieldType\FieldConstraintsStorage\FieldConstraintsStorageTest::testStorageDataIsUpdatedOnContentTypeUpdate - */ + #[DependsExternal(self::class, 'testStorageDataIsUpdatedOnContentTypeUpdate')] public function testStorageDataIsDeletedOnContentTypeDelete(ContentType $contentType): void { $fieldDefinition = $contentType->getFieldDefinition(self::EXAMPLE_FIELD_IDENTIFIER); diff --git a/tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php b/tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php index 3d8dcd7d34..a1bd7dd638 100644 --- a/tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php +++ b/tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php @@ -11,14 +11,14 @@ use Ibexa\Contracts\Core\IO\BinaryFileCreateStruct; use Ibexa\Contracts\Core\Test\IbexaKernelTestCase; use Ibexa\Core\IO\IOBinarydataHandler; +use Ibexa\Core\IO\IOBinarydataHandler\Flysystem; use Ibexa\Tests\Integration\Core\IO\FlysystemTestAdapterInterface; use League\Flysystem\FilesystemOperator; use League\Flysystem\Visibility; +use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\DependencyInjection\ContainerInterface; -/** - * @covers \Ibexa\Core\IO\IOBinarydataHandler\Flysystem - */ +#[CoversClass(Flysystem::class)] final class FlysystemTest extends IbexaKernelTestCase { private IOBinarydataHandler $binaryDataHandler; diff --git a/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php b/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php index 1aa33948d6..5cef732d02 100644 --- a/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php +++ b/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php @@ -23,6 +23,8 @@ use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\IO\Values\BinaryFileCreateStruct; use Ibexa\Tests\Integration\Core\BaseCoreFieldTypeIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase @@ -31,9 +33,9 @@ final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase private UrlRedecoratorInterface & MockObject $redecorator; - private PathGenerator & MockObject $pathGenerator; + private PathGenerator&\PHPUnit\Framework\MockObject\Stub $pathGenerator; - private AliasCleanerInterface & MockObject $aliasCleaner; + private AliasCleanerInterface&\PHPUnit\Framework\MockObject\Stub $aliasCleaner; private FilePathNormalizerInterface & MockObject $filePathNormalizer; @@ -41,7 +43,7 @@ final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase private ImageStorage $storage; - private FileExtensionBlackListValidator & MockObject $fileExtensionBlackListValidator; + private FileExtensionBlackListValidator&\PHPUnit\Framework\MockObject\Stub $fileExtensionBlackListValidator; protected function setUp(): void { @@ -49,11 +51,11 @@ protected function setUp(): void $this->redecorator = $this->createMock(UrlRedecoratorInterface::class); $this->gateway = new DoctrineStorage($this->redecorator, $this->getDatabaseConnection()); - $this->pathGenerator = $this->createMock(PathGenerator::class); - $this->aliasCleaner = $this->createMock(AliasCleanerInterface::class); + $this->pathGenerator = self::createStub(PathGenerator::class); + $this->aliasCleaner = self::createStub(AliasCleanerInterface::class); $this->filePathNormalizer = $this->createMock(FilePathNormalizerInterface::class); $this->ioService = $this->createMock(IOServiceInterface::class); - $this->fileExtensionBlackListValidator = $this->createMock(FileExtensionBlackListValidator::class); + $this->fileExtensionBlackListValidator = self::createStub(FileExtensionBlackListValidator::class); $this->storage = new ImageStorage( $this->gateway, $this->ioService, @@ -70,11 +72,10 @@ public function testHasFieldData(): void } /** - * @dataProvider providerOfFieldData - * * @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentException * @throws \Ibexa\Core\IO\Exception\InvalidBinaryFileIdException */ + #[DataProvider('providerOfFieldData')] public function testStoreFieldDataDuringCreate(VersionInfo $versionInfo, Field $field): void { $binaryFile = $this->runCommonStoreFieldDataMocks($field); @@ -90,11 +91,8 @@ public function testStoreFieldDataDuringCreate(VersionInfo $versionInfo, Field $ self::assertSame(1, $this->gateway->countImageReferences($binaryFile->uri)); } - /** - * @dataProvider providerOfFieldData - * - * @depends testStoreFieldDataDuringCreate - */ + #[Depends('testStoreFieldDataDuringCreate')] + #[DataProvider('providerOfFieldData')] public function testStoreFieldDataDuringUpdate(VersionInfo $versionInfo, Field $field): void { $binaryFile = $this->runCommonStoreFieldDataMocks($field); @@ -110,11 +108,8 @@ public function testStoreFieldDataDuringUpdate(VersionInfo $versionInfo, Field $ self::assertSame(1, $this->gateway->countImageReferences($binaryFile->uri)); } - /** - * @dataProvider providerOfFieldData - * - * @depends testStoreFieldDataDuringUpdate - */ + #[Depends('testStoreFieldDataDuringUpdate')] + #[DataProvider('providerOfFieldData')] public function testStoreFieldDataDuringUpdateWithDifferentImage(VersionInfo $versionInfo, Field $field): void { $versionInfo->versionNo = 2; @@ -152,9 +147,7 @@ public function testStoreFieldDataDuringUpdateWithDifferentImage(VersionInfo $ve self::assertSame(1, $this->gateway->countImageReferences($binaryFile->uri)); } - /** - * @dataProvider providerOfFieldData - */ + #[DataProvider('providerOfFieldData')] public function testStoreFieldDataWithSameImageOnAutosave(VersionInfo $versionInfo, Field $field): void { $targetPath = '1/8/6/232-eng-GB/' . $field->value->externalData['fileName']; @@ -256,7 +249,7 @@ private function runCommonStoreFieldDataMocks(Field $field): BinaryFile * \Ibexa\Contracts\Core\Persistence\Content\Field * }> */ - public function providerOfFieldData(): iterable + public static function providerOfFieldData(): iterable { $path = __DIR__ . '/image.jpg'; diff --git a/tests/integration/Core/Limitation/MemberOfLimitationTest.php b/tests/integration/Core/Limitation/MemberOfLimitationTest.php index 82ad8430d2..d4d82529ae 100644 --- a/tests/integration/Core/Limitation/MemberOfLimitationTest.php +++ b/tests/integration/Core/Limitation/MemberOfLimitationTest.php @@ -12,13 +12,14 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\MemberOfLimitation; use Ibexa\Core\Limitation\MemberOfLimitationType; use Ibexa\Tests\Integration\Core\Repository\Limitation\PermissionResolver\BaseLimitationIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class MemberOfLimitationTest extends BaseLimitationIntegrationTestCase { private const ADMIN_GROUP_ID = 14; private const USERS_GROUP_ID = 4; - public function userPermissionLimitationProvider(): array + public static function userPermissionLimitationProvider(): array { $allowInAdministratorsLimitation = new MemberOfLimitation(); $allowInAdministratorsLimitation->limitationValues[] = self::ADMIN_GROUP_ID; @@ -36,9 +37,7 @@ public function userPermissionLimitationProvider(): array ]; } - /** - * @dataProvider userPermissionLimitationProvider - */ + #[DataProvider('userPermissionLimitationProvider')] public function testCanUserAssignRoleToUser(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php b/tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php index 675e774179..fd1353e896 100644 --- a/tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php +++ b/tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\Limitation\Target; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Tests\Integration\Core\Repository\Limitation\PermissionResolver\BaseLimitationIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * Integration test for chosen use cases of calls to PermissionResolver::canUser. @@ -28,7 +29,7 @@ class LanguageLimitationIntegrationTest extends BaseLimitationIntegrationTestCas * * @return array */ - public function providerForCanUserCreateContent(): array + public static function providerForCanUserCreateContent(): array { $limitationForGerman = new LanguageLimitation(); $limitationForGerman->limitationValues = [self::LANG_GER_DE]; @@ -49,8 +50,6 @@ public function providerForCanUserCreateContent(): array } /** - * @dataProvider providerForCanUserCreateContent - * * @param array $limitations * @param bool $expectedResult * @@ -58,6 +57,7 @@ public function providerForCanUserCreateContent(): array * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserCreateContent')] public function testCanUserCreateContent(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); @@ -94,7 +94,7 @@ public function testCanUserCreateContent(array $limitations, bool $expectedResul * @see testCanUserEditContent * @see testCanUserPublishContent */ - public function providerForCanUserEditOrPublishContent(): array + public static function providerForCanUserEditOrPublishContent(): array { $limitationForGerman = new LanguageLimitation(); $limitationForGerman->limitationValues = [self::LANG_GER_DE]; @@ -114,8 +114,6 @@ public function providerForCanUserEditOrPublishContent(): array } /** - * @dataProvider providerForCanUserEditOrPublishContent - * * @param array $limitations * @param bool $expectedResult * @@ -123,6 +121,7 @@ public function providerForCanUserEditOrPublishContent(): array * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserEditOrPublishContent')] public function testCanUserEditContent(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); @@ -145,8 +144,6 @@ public function testCanUserEditContent(array $limitations, bool $expectedResult) } /** - * @dataProvider providerForCanUserEditOrPublishContent - * * @param array $limitations * @param bool $expectedResult * @@ -154,6 +151,7 @@ public function testCanUserEditContent(array $limitations, bool $expectedResult) * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserEditOrPublishContent')] public function testCanUserPublishContent(array $limitations, bool $expectedResult): void { $content = $this->createFolder([self::LANG_ENG_GB => 'British Folder'], 2); @@ -168,7 +166,7 @@ public function testCanUserPublishContent(array $limitations, bool $expectedResu * * @see testCanUserDeleteContent */ - public function providerForCanUserDeleteContent(): array + public static function providerForCanUserDeleteContent(): array { $limitationForGerman = new LanguageLimitation(); $limitationForGerman->limitationValues = [self::LANG_GER_DE]; @@ -188,8 +186,6 @@ public function providerForCanUserDeleteContent(): array } /** - * @dataProvider providerForCanUserDeleteContent - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation[] $limitations * @param bool $expectedResult * @@ -197,6 +193,7 @@ public function providerForCanUserDeleteContent(): array * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserDeleteContent')] public function testCanUserDeleteContent(array $limitations, bool $expectedResult): void { $content = $this->createFolder( @@ -218,7 +215,7 @@ public function testCanUserDeleteContent(array $limitations, bool $expectedResul * * @see testCanUserDeleteContentTranslation */ - public function providerForCanUserDeleteContentTranslation(): iterable + public static function providerForCanUserDeleteContentTranslation(): iterable { $limitationForGerman = new LanguageLimitation(); $limitationForGerman->limitationValues = [self::LANG_GER_DE]; @@ -249,8 +246,6 @@ public function providerForCanUserDeleteContentTranslation(): iterable } /** - * @dataProvider providerForCanUserDeleteContentTranslation - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation[] $limitations * @param string $translation * @param bool $expectedResult @@ -259,6 +254,7 @@ public function providerForCanUserDeleteContentTranslation(): iterable * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserDeleteContentTranslation')] public function testCanUserDeleteContentTranslation(array $limitations, string $translation, bool $expectedResult): void { $content = $this->createFolder( diff --git a/tests/integration/Core/Limitation/RoleLimitationTest.php b/tests/integration/Core/Limitation/RoleLimitationTest.php index 08415cf620..8a60c19500 100644 --- a/tests/integration/Core/Limitation/RoleLimitationTest.php +++ b/tests/integration/Core/Limitation/RoleLimitationTest.php @@ -11,15 +11,16 @@ use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\UserRoleLimitation; use Ibexa\Tests\Integration\Core\Repository\Limitation\PermissionResolver\BaseLimitationIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class RoleLimitationTest extends BaseLimitationIntegrationTestCase { private const USERS_GROUP_ID = 4; - public function userPermissionLimitationProvider(): array + public static function userPermissionLimitationProvider(): array { $allowEditorLimitation = new UserRoleLimitation(); - $roleService = $this->getRepository()->getRoleService(); + $roleService = static::resolveRepository()->getRoleService(); $allowEditorLimitation->limitationValues[] = $roleService->loadRoleByIdentifier('Editor')->id; $allowAdministratorLimitation = new UserRoleLimitation(); @@ -31,9 +32,7 @@ public function userPermissionLimitationProvider(): array ]; } - /** - * @dataProvider userPermissionLimitationProvider - */ + #[DataProvider('userPermissionLimitationProvider')] public function testCanUserAssignRole(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/MVC/Symfony/Controller/Content/DownloadControllerRequestFlowTest.php b/tests/integration/Core/MVC/Symfony/Controller/Content/DownloadControllerRequestFlowTest.php index f7acd3ee21..265bf01afc 100644 --- a/tests/integration/Core/MVC/Symfony/Controller/Content/DownloadControllerRequestFlowTest.php +++ b/tests/integration/Core/MVC/Symfony/Controller/Content/DownloadControllerRequestFlowTest.php @@ -12,9 +12,12 @@ use Ibexa\Bundle\IO\BinaryStreamResponse; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Test\IbexaKernelTestCase; +use Ibexa\Core\MVC\Symfony\Controller\Content\DownloadController; use Ibexa\Core\MVC\Symfony\Routing\ChainRouter; use Ibexa\Tests\Core\MVC\Symfony\Controller\Controller\Content\DownloadControllerTestTrait; use Ibexa\Tests\Integration\Core\MVC\Symfony\InternalRoutingTestKernel; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use Symfony\Bundle\FrameworkBundle\Routing\Router as FrameworkRouter; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; @@ -31,11 +34,8 @@ use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Routing\RouterInterface; -/** - * @group integration - * - * @covers \Ibexa\Core\MVC\Symfony\Controller\Content\DownloadController - */ +#[CoversClass(DownloadController::class)] +#[Group('integration')] final class DownloadControllerRequestFlowTest extends IbexaKernelTestCase { use DownloadControllerTestTrait; diff --git a/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php b/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php index 3933a08000..de43891731 100644 --- a/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php +++ b/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php @@ -14,8 +14,10 @@ use Doctrine\DBAL\SQL\Builder\DefaultSelectSQLBuilder; use Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder; use Ibexa\Core\Base\Exceptions\DatabaseException; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; +#[CoversMethod(FilteringQueryBuilder::class, 'joinOnce')] class FilteringQueryBuilderTest extends TestCase { /** @var \Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder */ @@ -35,9 +37,6 @@ protected function setUp(): void $this->queryBuilder = new FilteringQueryBuilder($connectionMock); } - /** - * @covers \Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder::joinOnce - */ public function testJoinOnce(): void { $this->queryBuilder diff --git a/tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php b/tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php index fe419ee748..a79dca6b7c 100644 --- a/tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php +++ b/tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php @@ -14,11 +14,11 @@ use Ibexa\Contracts\Core\Persistence\Content\Location; use Ibexa\Contracts\Core\Persistence\Handler; use Ibexa\Contracts\Core\Repository\Values\Content\Content; +use Ibexa\Core\Persistence\Legacy\Bookmark\Handler as CoveredHandler; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Bookmark\Handler - */ +#[CoversClass(CoveredHandler::class)] final class BookmarkHandlerTest extends RepositoryTestCase { private Handler $handler; diff --git a/tests/integration/Core/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php b/tests/integration/Core/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php index 01628fdd26..1aa0bf85b9 100644 --- a/tests/integration/Core/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php +++ b/tests/integration/Core/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php @@ -13,12 +13,12 @@ use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Test\IbexaKernelTestCase; use Ibexa\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase; +use PHPUnit\Framework\Attributes\CoversClass; /** * @internal - * - * @covers \Ibexa\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase */ +#[CoversClass(DoctrineDatabase::class)] final class DoctrineDatabaseTest extends IbexaKernelTestCase { private const int CONTENT_ID = 2342; diff --git a/tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php b/tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php index dedf7438ee..6b91b74429 100644 --- a/tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php +++ b/tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php @@ -11,12 +11,13 @@ use DateTimeImmutable; use Ibexa\Core\Search\Legacy\Content\IndexerGateway; use Ibexa\Tests\Integration\Core\BaseGatewayTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; /** * @internal - * - * @covers \Ibexa\Core\Search\Legacy\Content\IndexerGateway */ +#[CoversClass(IndexerGateway::class)] final class IndexerGatewayTest extends BaseGatewayTestCase { /** @var \Ibexa\Core\Search\Legacy\Content\IndexerGateway */ @@ -32,7 +33,7 @@ protected function setUp(): void $this->gateway = new IndexerGateway($this->getRawDatabaseConnection()); } - public function getDataForContentSince(): iterable + public static function getDataForContentSince(): iterable { yield '1999-01-01' => [ new DateTimeImmutable('1999-01-01'), @@ -47,7 +48,7 @@ public function getDataForContentSince(): iterable ]; } - public function getDataForContentInSubtree(): iterable + public static function getDataForContentInSubtree(): iterable { yield '/1/5/' => [ '/1/5/', @@ -63,10 +64,9 @@ public function getDataForContentInSubtree(): iterable } /** - * @dataProvider getDataForContentSince - * * @throws \Doctrine\DBAL\Exception */ + #[DataProvider('getDataForContentSince')] public function testGetContentSince( DateTimeImmutable $since, int $expectedCount, @@ -76,10 +76,9 @@ public function testGetContentSince( } /** - * @dataProvider getDataForContentSince - * * @throws \Doctrine\DBAL\Exception */ + #[DataProvider('getDataForContentSince')] public function testCountContentSince( DateTimeImmutable $since, int $expectedCount, @@ -92,10 +91,9 @@ public function testCountContentSince( } /** - * @dataProvider getDataForContentInSubtree - * * @throws \Doctrine\DBAL\Exception */ + #[DataProvider('getDataForContentInSubtree')] public function testGetContentInSubtree( string $subtreePath, int $expectedCount, @@ -108,10 +106,9 @@ public function testGetContentInSubtree( } /** - * @dataProvider getDataForContentInSubtree - * * @throws \Doctrine\DBAL\Exception */ + #[DataProvider('getDataForContentInSubtree')] public function testCountContentInSubtree( string $subtreePath, int $expectedCount, diff --git a/tests/integration/Core/Repository/BaseTestCase.php b/tests/integration/Core/Repository/BaseTestCase.php index 72dd8d9fda..d771fef534 100644 --- a/tests/integration/Core/Repository/BaseTestCase.php +++ b/tests/integration/Core/Repository/BaseTestCase.php @@ -30,11 +30,13 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy as LegacySetupFactory; use Ibexa\Tests\Core\Repository\PHPUnitConstraint; use PDOException; +use PHPUnit\Framework\Attributes\UsesMethod; use PHPUnit\Framework\TestCase; /** * Base class for api specific tests. */ +#[UsesMethod(self::class, 'createCustomUserVersion1')] abstract class BaseTestCase extends TestCase { /** @@ -134,54 +136,83 @@ protected function getConfigValue($configKey) protected function getRepository(bool $initialInitializeFromScratch = true): Repository { if (null === $this->repository) { - try { - $this->repository = $this->getSetupFactory()->getRepository( - $initialInitializeFromScratch - ); - } catch (ErrorException $e) { - self::fail( - sprintf( - '%s: %s in %s:%d', - __FUNCTION__, - $e->getMessage(), - $e->getFile(), - $e->getLine() - ) - ); - } + $this->repository = self::resolveRepository($initialInitializeFromScratch); } return $this->repository; } + /** + * Resolves a fresh Repository from the environment, without instance-level caching. + * + * Extracted from {@see self::getRepository()} so that static data providers (required by + * PHPUnit 11) that need repository access to build their expected values (e.g. resolving + * identifiers to real domain objects) can do so without an instance. This mirrors what + * happened under PHPUnit 9 as well: a non-static provider ran on a throw-away instance whose + * own `$repository` cache started out empty, so it always built a fresh Repository too. + * + * @param bool $initialInitializeFromScratch Only has an effect if set in first call within a test + */ + protected static function resolveRepository(bool $initialInitializeFromScratch = true): Repository + { + try { + return self::resolveSetupFactory()->getRepository($initialInitializeFromScratch); + } catch (ErrorException $e) { + self::fail( + sprintf( + '%s: %s in %s:%d', + __FUNCTION__, + $e->getMessage(), + $e->getFile(), + $e->getLine() + ) + ); + } + } + /** * @throws \ErrorException */ protected function getSetupFactory(): SetupFactory { if (null === $this->setupFactory) { - if (false === ($setupClass = getenv('setupFactory'))) { - $setupClass = LegacySetupFactory::class; - putenv("setupFactory=$setupClass"); - } + $this->setupFactory = self::resolveSetupFactory(); + } - if (false === getenv('fixtureDir')) { - putenv('fixtureDir=Legacy'); - } + return $this->setupFactory; + } - if (false === class_exists($setupClass)) { - throw new ErrorException( - sprintf( - 'Environment variable "setupFactory" does not reference an existing class: %s. Did you forget to install a package dependency?', - $setupClass - ) - ); - } + /** + * Resolves the configured SetupFactory from the environment, without instance-level caching. + * + * Extracted from {@see self::getSetupFactory()} so that static data providers (required by + * PHPUnit 11) can determine the active search engine / setup factory without needing an + * instance. The underlying resolution is process-global (env vars), so no per-instance state + * is lost by calling this statically. + * + * @throws \ErrorException + */ + protected static function resolveSetupFactory(): SetupFactory + { + if (false === ($setupClass = getenv('setupFactory'))) { + $setupClass = LegacySetupFactory::class; + putenv("setupFactory=$setupClass"); + } - $this->setupFactory = new $setupClass(); + if (false === getenv('fixtureDir')) { + putenv('fixtureDir=Legacy'); } - return $this->setupFactory; + if (false === class_exists($setupClass)) { + throw new ErrorException( + sprintf( + 'Environment variable "setupFactory" does not reference an existing class: %s. Did you forget to install a package dependency?', + $setupClass + ) + ); + } + + return new $setupClass(); } /** @@ -343,7 +374,6 @@ protected function createUserVersion1( /** * Create a user in new user group with editor rights limited to Media Library (/1/48/). * - * @uses ::createCustomUserVersion1() * * @return \Ibexa\Contracts\Core\Repository\Values\User\User */ @@ -527,9 +557,9 @@ protected function refreshSearch(Repository $repository) $searchHandler->commit(); } - protected function isLegacySearchEngineSetup(): bool + protected static function isLegacySearchEngineSetup(): bool { - return get_class($this->getSetupFactory()) === LegacySetupFactory::class; + return get_class(self::resolveSetupFactory()) === LegacySetupFactory::class; } /** diff --git a/tests/integration/Core/Repository/BookmarkServiceTest.php b/tests/integration/Core/Repository/BookmarkServiceTest.php index 694ea6709d..d6a99a2d0c 100644 --- a/tests/integration/Core/Repository/BookmarkServiceTest.php +++ b/tests/integration/Core/Repository/BookmarkServiceTest.php @@ -10,6 +10,7 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\ParameterType; +use Ibexa\Contracts\Core\Repository\BookmarkService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Location; @@ -17,12 +18,18 @@ use Ibexa\Contracts\Core\Repository\Values\Filter\Filter; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway\DoctrineDatabase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; /** * Test case for the BookmarkService. - * - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService */ +#[CoversClass(BookmarkService::class)] +#[CoversMethod(BookmarkService::class, 'isBookmarked')] +#[CoversMethod(BookmarkService::class, 'createBookmark')] +#[CoversMethod(BookmarkService::class, 'deleteBookmark')] +#[CoversMethod(BookmarkService::class, 'loadBookmarks')] class BookmarkServiceTest extends BaseTestCase { public const LOCATION_ID_BOOKMARKED = 5; @@ -70,9 +77,7 @@ public function testCreateBookmark() self::assertTrue($afterCreateBookmark); } - /** - * @depends testCreateBookmark - */ + #[Depends('testCreateBookmark')] public function testCreateBookmarkThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -107,9 +112,7 @@ public function testDeleteBookmark() self::assertFalse($afterDeleteBookmark); } - /** - * @depends testDeleteBookmark - */ + #[Depends('testDeleteBookmark')] public function testDeleteBookmarkThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); diff --git a/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php b/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php index 656bfb6fd7..8c983a873b 100644 --- a/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php +++ b/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php @@ -9,14 +9,14 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; use DateTime; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionCreateStruct; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class CopyNonTranslatableFieldsFromPublishedVersionTest extends RepositoryTestCase { private const GER_DE = 'ger-DE'; diff --git a/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php b/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php index 680f43abf4..45f46a542d 100644 --- a/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php +++ b/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php @@ -9,15 +9,15 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; use DateTime; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionCreateStruct; use Ibexa\Core\FieldType\TextLine; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class CopyTranslationsFromPublishedVersionTest extends RepositoryTestCase { private const ENG_LANGUAGE_CODE = 'eng-GB'; diff --git a/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php b/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php index 3d1c92a41b..486f81607f 100644 --- a/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php +++ b/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Validation\ValidationFailedException; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class CreateContentInNonContainerTest extends RepositoryTestCase { public function testCreateContentInNonContainerTest(): void diff --git a/tests/integration/Core/Repository/ContentService/DeleteContentTest.php b/tests/integration/Core/Repository/ContentService/DeleteContentTest.php index 7ee3e023d3..0f94ba9945 100644 --- a/tests/integration/Core/Repository/ContentService/DeleteContentTest.php +++ b/tests/integration/Core/Repository/ContentService/DeleteContentTest.php @@ -8,14 +8,14 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\TrashService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Assert; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class DeleteContentTest extends RepositoryTestCase { /** diff --git a/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php b/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php index 97fc6e5316..1f1110bb4c 100644 --- a/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php +++ b/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php @@ -8,11 +8,11 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class LoadVersionInfoTest extends RepositoryTestCase { /** diff --git a/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php b/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php index 0c474d28a8..c10b69f7af 100644 --- a/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\Yaml\Yaml; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class MaxLanguagesContentServiceTest extends RepositoryTestCase { /** @var list */ diff --git a/tests/integration/Core/Repository/ContentService/UpdateContentTest.php b/tests/integration/Core/Repository/ContentService/UpdateContentTest.php index a1f74ceed7..745816fc4f 100644 --- a/tests/integration/Core/Repository/ContentService/UpdateContentTest.php +++ b/tests/integration/Core/Repository/ContentService/UpdateContentTest.php @@ -8,16 +8,16 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentService - */ +#[CoversClass(ContentService::class)] final class UpdateContentTest extends RepositoryTestCase { /** diff --git a/tests/integration/Core/Repository/ContentService/VersionValidatorTest.php b/tests/integration/Core/Repository/ContentService/VersionValidatorTest.php index 1e69e70ea6..c100ed603e 100644 --- a/tests/integration/Core/Repository/ContentService/VersionValidatorTest.php +++ b/tests/integration/Core/Repository/ContentService/VersionValidatorTest.php @@ -41,7 +41,7 @@ protected function setUp(): void parent::setUp(); $this->validator = new VersionValidator( - $this->createMock(FieldTypeRegistry::class) + self::createStub(FieldTypeRegistry::class) ); $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php index 35f0522783..2d0a00bf3e 100644 --- a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php @@ -7,6 +7,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; @@ -15,17 +16,56 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the ContentServiceAuthorization using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser - * - * @group integration - * @group authorization */ +#[CoversClass(ContentService::class)] +#[CoversMethod(ContentService::class, 'createContent()')] +#[CoversMethod(ContentService::class, 'createContent($contentCreateStruct, $locationCreateStructs)')] +#[CoversMethod(ContentService::class, 'loadContentInfo()')] +#[CoversMethod(Repository::class, 'sudo()')] +#[CoversMethod(ContentService::class, 'loadContentInfoList()')] +#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId()')] +#[CoversMethod(ContentService::class, 'loadVersionInfo()')] +#[CoversMethod(ContentService::class, 'loadVersionInfo($contentInfo, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById()')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById($contentId, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo()')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages)')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo()')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo($versionInfo, $languages)')] +#[CoversMethod(ContentService::class, 'loadContent()')] +#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages)')] +#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId()')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages)')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'updateContentMetadata()')] +#[CoversMethod(ContentService::class, 'deleteContent()')] +#[CoversMethod(ContentService::class, 'createContentDraft()')] +#[CoversMethod(ContentService::class, 'createContentDraft($contentInfo, $versionInfo)')] +#[CoversMethod(ContentService::class, 'countContentDrafts()')] +#[CoversMethod(ContentService::class, 'loadContentDraftList()')] +#[CoversMethod(ContentService::class, 'loadContentDraftList($user)')] +#[CoversMethod(ContentService::class, 'updateContent()')] +#[CoversMethod(ContentService::class, 'publishVersion()')] +#[CoversMethod(ContentService::class, 'deleteVersion()')] +#[CoversMethod(ContentService::class, 'loadVersions()')] +#[CoversMethod(ContentService::class, 'copyContent()')] +#[CoversMethod(ContentService::class, 'copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo)')] +#[CoversMethod(ContentService::class, 'loadRelationList()')] +#[CoversMethod(ContentService::class, 'loadReverseRelations()')] +#[CoversMethod(ContentService::class, 'addRelation()')] +#[CoversMethod(ContentService::class, 'deleteRelation()')] +#[Group('integration')] +#[Group('authorization')] class ContentServiceAuthorizationTest extends BaseContentServiceTestCase { /** @var \Ibexa\Contracts\Core\Repository\Values\User\User */ @@ -64,11 +104,8 @@ public function setUp(): void /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] public function testCreateContentThrowsUnauthorizedException() { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -91,11 +128,8 @@ public function testCreateContentThrowsUnauthorizedException() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent($contentCreateStruct, $locationCreateStructs) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] public function testCreateContentThrowsUnauthorizedExceptionWithSecondParameter() { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -108,11 +142,8 @@ public function testCreateContentThrowsUnauthorizedExceptionWithSecondParameter( /** * Test for the loadContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfo */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] public function testLoadContentInfoThrowsUnauthorizedException() { $contentId = $this->generateId('object', 10); @@ -127,11 +158,8 @@ public function testLoadContentInfoThrowsUnauthorizedException() /** * Test for the sudo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::sudo() - * - * @depends testLoadContentInfoThrowsUnauthorizedException */ + #[Depends('testLoadContentInfoThrowsUnauthorizedException')] public function testSudo() { $repository = $this->getRepository(); @@ -150,11 +178,8 @@ public function testSudo() /** * Test for the loadContentInfoList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoList() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfoList */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfoList')] public function testLoadContentInfoListSkipsUnauthorizedItems() { $contentId = $this->generateId('object', 10); @@ -165,11 +190,8 @@ public function testLoadContentInfoListSkipsUnauthorizedItems() /** * Test for the loadContentInfoByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoByRemoteId() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfoByRemoteId */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfoByRemoteId')] public function testLoadContentInfoByRemoteIdThrowsUnauthorizedException() { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -184,11 +206,8 @@ public function testLoadContentInfoByRemoteIdThrowsUnauthorizedException() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersionInfo */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfo')] public function testLoadVersionInfoThrowsUnauthorizedException() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -203,11 +222,8 @@ public function testLoadVersionInfoThrowsUnauthorizedException() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo($contentInfo, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersionInfoWithSecondParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoWithSecondParameter')] public function testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParameter() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -222,11 +238,8 @@ public function testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParamete /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersionInfoById */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoById')] public function testLoadVersionInfoByIdThrowsUnauthorizedException() { $anonymousUserId = $this->generateId('user', 10); @@ -240,11 +253,8 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedException() /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById($contentId, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersionInfoByIdWithSecondParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoByIdWithSecondParameter')] public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondParameter() { $anonymousUserId = $this->generateId('user', 10); @@ -258,11 +268,8 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondPara /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById($contentId, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersionInfoById */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoById')] public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft() { $contentDraft = $this->createContentDraftVersion1(); @@ -281,11 +288,8 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft( /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByContentInfo */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfo')] public function testLoadContentByContentInfoThrowsUnauthorizedException() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -300,11 +304,8 @@ public function testLoadContentByContentInfoThrowsUnauthorizedException() /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo($contentInfo, $languages) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByContentInfoWithLanguageParameters */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfoWithLanguageParameters')] public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecondParameter() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -319,11 +320,8 @@ public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecon /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo($contentInfo, $languages, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByContentInfoWithVersionNumberParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfoWithVersionNumberParameter')] public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThirdParameter() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -338,11 +336,8 @@ public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThird /** * Test for the loadContentByVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByVersionInfo() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByVersionInfo */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByVersionInfo')] public function testLoadContentByVersionInfoThrowsUnauthorizedException() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -359,11 +354,8 @@ public function testLoadContentByVersionInfoThrowsUnauthorizedException() /** * Test for the loadContentByVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByVersionInfo($versionInfo, $languages) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByVersionInfoWithSecondParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByVersionInfoWithSecondParameter')] public function testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecondParameter() { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -380,11 +372,8 @@ public function testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecon /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContent */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] public function testLoadContentThrowsUnauthorizedException() { $anonymousUserId = $this->generateId('user', 10); @@ -398,11 +387,8 @@ public function testLoadContentThrowsUnauthorizedException() /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent($contentId, $languages) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentWithPrioritizedLanguages */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentWithPrioritizedLanguages')] public function testLoadContentThrowsUnauthorizedExceptionWithSecondParameter() { $anonymousUserId = $this->generateId('user', 10); @@ -416,11 +402,8 @@ public function testLoadContentThrowsUnauthorizedExceptionWithSecondParameter() /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent($contentId, $languages, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentWithThirdParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentWithThirdParameter')] public function testLoadContentThrowsUnauthorizedExceptionWithThirdParameter() { $anonymousUserId = $this->generateId('user', 10); @@ -434,11 +417,8 @@ public function testLoadContentThrowsUnauthorizedExceptionWithThirdParameter() /** * Test for the loadContent() method on a draft. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContent */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] public function testLoadContentThrowsUnauthorizedExceptionOnDrafts() { $editorUser = $this->createUserVersion1(); @@ -462,11 +442,8 @@ public function testLoadContentThrowsUnauthorizedExceptionOnDrafts() * Test for the ContentService::loadContent() method on an archive. * * This test the version permission on loading archived versions - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContent */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] public function testLoadContentThrowsUnauthorizedExceptionsOnArchives() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -507,11 +484,8 @@ public function testLoadContentThrowsUnauthorizedExceptionsOnArchives() /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByRemoteId */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteId')] public function testLoadContentByRemoteIdThrowsUnauthorizedException() { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -526,11 +500,8 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedException() /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId($remoteId, $languages) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByRemoteIdWithSecondParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteIdWithSecondParameter')] public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondParameter() { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -545,11 +516,8 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondPa /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId($remoteId, $languages, $versionNo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentByRemoteIdWithThirdParameter */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteIdWithThirdParameter')] public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdParameter() { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -564,11 +532,8 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdPar /** * Test for the updateContentMetadata() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testUpdateContentMetadata */ + #[DependsExternal(ContentServiceTest::class, 'testUpdateContentMetadata')] public function testUpdateContentMetadataThrowsUnauthorizedException() { $content = $this->createContentVersion1(); @@ -596,11 +561,8 @@ public function testUpdateContentMetadataThrowsUnauthorizedException() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testDeleteContent */ + #[DependsExternal(ContentServiceTest::class, 'testDeleteContent')] public function testDeleteContentThrowsUnauthorizedException() { $contentVersion2 = $this->createContentVersion2(); @@ -615,9 +577,6 @@ public function testDeleteContentThrowsUnauthorizedException() $this->contentService->deleteContent($contentInfo); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - */ public function testDeleteContentThrowsUnauthorizedExceptionWithLanguageLimitation(): void { $contentVersion2 = $this->createMultipleLanguageContentVersion2(); @@ -641,9 +600,6 @@ public function testDeleteContentThrowsUnauthorizedExceptionWithLanguageLimitati $this->contentService->deleteContent($contentInfo); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - */ public function testDeleteContentWithLanguageLimitation(): void { $contentVersion2 = $this->createMultipleLanguageContentVersion2(); @@ -667,11 +623,8 @@ public function testDeleteContentWithLanguageLimitation(): void /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContentDraft */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContentDraft')] public function testCreateContentDraftThrowsUnauthorizedException() { $content = $this->createContentVersion1(); @@ -688,11 +641,8 @@ public function testCreateContentDraftThrowsUnauthorizedException() /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft($contentInfo, $versionInfo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContentDraftWithSecondParameter */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContentDraftWithSecondParameter')] public function testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParameter() { $content = $this->createContentVersion1(); @@ -710,8 +660,6 @@ public function testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParam /** * Test for the countContentDrafts() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::countContentDrafts() */ public function testCountContentDraftsReturnZero() { @@ -720,11 +668,7 @@ public function testCountContentDraftsReturnZero() self::assertSame(0, $this->contentService->countContentDrafts()); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentDraftList - */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentDraftList')] public function testLoadContentDraftListReturnsEmptyListForUserWithoutVersionReadAccess(): void { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -735,11 +679,7 @@ public function testLoadContentDraftListReturnsEmptyListForUserWithoutVersionRea self::assertEmpty($draftList->items); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList($user) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentDraftList - */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentDraftList')] public function testLoadContentDraftListReturnsEmptyListForUserWithoutVersionReadAccessWithUser(): void { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -752,11 +692,8 @@ public function testLoadContentDraftListReturnsEmptyListForUserWithoutVersionRea /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testUpdateContent */ + #[DependsExternal(ContentServiceTest::class, 'testUpdateContent')] public function testUpdateContentThrowsUnauthorizedException() { $draftVersion2 = $this->createContentDraftVersion2(); @@ -781,11 +718,8 @@ public function testUpdateContentThrowsUnauthorizedException() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testPublishVersion */ + #[DependsExternal(ContentServiceTest::class, 'testPublishVersion')] public function testPublishVersionThrowsUnauthorizedException() { $draft = $this->createContentDraftVersion1(); @@ -800,11 +734,8 @@ public function testPublishVersionThrowsUnauthorizedException() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testDeleteVersion */ + #[DependsExternal(ContentServiceTest::class, 'testDeleteVersion')] public function testDeleteVersionThrowsUnauthorizedException() { $draft = $this->createContentDraftVersion1(); @@ -819,11 +750,8 @@ public function testDeleteVersionThrowsUnauthorizedException() /** * Test for the loadVersions() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersions() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadVersions */ + #[DependsExternal(ContentServiceTest::class, 'testLoadVersions')] public function testLoadVersionsThrowsUnauthorizedException() { $contentVersion2 = $this->createContentVersion2(); @@ -840,11 +768,8 @@ public function testLoadVersionsThrowsUnauthorizedException() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCopyContent */ + #[DependsExternal(ContentServiceTest::class, 'testCopyContent')] public function testCopyContentThrowsUnauthorizedException() { $parentLocationId = $this->generateId('location', 52); @@ -877,11 +802,8 @@ public function testCopyContentThrowsUnauthorizedException() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo) - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCopyContentWithGivenVersion */ + #[DependsExternal(ContentServiceTest::class, 'testCopyContentWithGivenVersion')] public function testCopyContentThrowsUnauthorizedExceptionWithGivenVersion() { $parentLocationId = $this->generateId('location', 52); @@ -910,10 +832,9 @@ public function testCopyContentThrowsUnauthorizedExceptionWithGivenVersion() } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadRelationList() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadRelationList + * Test for the loadRelations() method. */ + #[DependsExternal(ContentServiceTest::class, 'testLoadRelationList')] public function testLoadRelationsReturnsEmptyListForUserWithoutReadAccess(): void { $mediaEditor = $this->createMediaUserVersion1(); @@ -935,10 +856,9 @@ public function testLoadRelationsReturnsEmptyListForUserWithoutReadAccess(): voi } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadRelationList() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadRelationList + * Test for the loadRelations() method. */ + #[DependsExternal(ContentServiceTest::class, 'testLoadRelationList')] public function testLoadRelationsForDraftVersionReturnsEmptyListForUserWithoutVersionReadAccess(): void { $draft = $this->createContentDraftVersion1(); @@ -953,11 +873,8 @@ public function testLoadRelationsForDraftVersionReturnsEmptyListForUserWithoutVe /** * Test for the loadReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelations() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadReverseRelations */ + #[DependsExternal(ContentServiceTest::class, 'testLoadReverseRelations')] public function testLoadReverseRelationsThrowsUnauthorizedException() { $mediaEditor = $this->createMediaUserVersion1(); @@ -976,11 +893,8 @@ public function testLoadReverseRelationsThrowsUnauthorizedException() /** * Test for the addRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::addRelation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testAddRelation */ + #[DependsExternal(ContentServiceTest::class, 'testAddRelation')] public function testAddRelationThrowsUnauthorizedException() { $mediaRemoteId = 'a6e35cbcb7cd6ae4b691f3eee30cd262'; @@ -1004,11 +918,8 @@ public function testAddRelationThrowsUnauthorizedException() /** * Test for the deleteRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteRelation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testDeleteRelation */ + #[DependsExternal(ContentServiceTest::class, 'testDeleteRelation')] public function testDeleteRelationThrowsUnauthorizedException() { $mediaRemoteId = 'a6e35cbcb7cd6ae4b691f3eee30cd262'; @@ -1064,11 +975,8 @@ private function createAnonymousWithEditorRole() * Test that for a user that doesn't have access (read permissions) to a * related object, executing loadRelationList() would not throw any exception, and * would instead expose the non-readable related object(s) as unauthorized list items. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadRelationList() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testAddRelation */ + #[DependsExternal(ContentServiceTest::class, 'testAddRelation')] public function testLoadRelationsWithUnauthorizedRelations() { $mainLanguage = 'eng-GB'; diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index 04022d0aaf..b193b3df2a 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -37,6 +37,11 @@ use Ibexa\Core\FieldType\Relation\Value as RelationValue; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use InvalidArgumentException; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; use ReflectionClass; use ReflectionProperty; use Symfony\Bridge\PhpUnit\ClockMock; @@ -45,9 +50,65 @@ * Test case for operations in the ContentService using in memory storage. * * @see \Ibexa\Contracts\Core\Repository\ContentService - * - * @group content */ +#[CoversMethod(ContentService::class, 'newContentCreateStruct()')] +#[CoversMethod(ContentService::class, 'createContent()')] +#[CoversMethod(ContentService::class, 'createContent')] +#[CoversMethod(ContentService::class, 'createContent($contentCreateStruct, $locationCreateStructs)')] +#[CoversMethod(ContentService::class, 'loadContentInfo()')] +#[CoversMethod(ContentService::class, 'loadContentInfo')] +#[CoversMethod(ContentService::class, 'loadContentInfoList()')] +#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId()')] +#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] +#[CoversMethod(ContentService::class, 'loadVersionInfo()')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById()')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo()')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo()')] +#[CoversMethod(ContentService::class, 'loadContent()')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId()')] +#[CoversMethod(ContentService::class, 'publishVersion()')] +#[CoversMethod(ContentService::class, 'publishVersion')] +#[CoversMethod(ContentService::class, 'createContentDraft()')] +#[CoversMethod(ContentService::class, 'createContentDraft')] +#[CoversMethod(ContentService::class, 'newContentUpdateStruct')] +#[CoversMethod(ContentService::class, 'updateContent()')] +#[CoversMethod(ContentService::class, 'createContentDraft($contentInfo, $versionInfo)')] +#[CoversMethod(ContentService::class, 'newContentMetadataUpdateStruct')] +#[CoversMethod(ContentService::class, 'updateContentMetadata()')] +#[CoversMethod(ContentService::class, 'updateContentMetadata')] +#[CoversMethod(ContentService::class, 'deleteContent()')] +#[CoversMethod(ContentService::class, 'loadContentDraftList()')] +#[CoversMethod(ContentService::class, 'loadContentDraftList($user)')] +#[CoversMethod(ContentService::class, 'loadVersionInfo($contentInfo, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById($contentId, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo($versionInfo, $languages)')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages)')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages)')] +#[CoversMethod(ContentService::class, 'loadContent')] +#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages)')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages, $versionNo)')] +#[CoversMethod(ContentService::class, 'deleteVersion()')] +#[CoversMethod(ContentService::class, 'loadVersions()')] +#[CoversMethod(ContentService::class, 'loadVersions')] +#[CoversMethod(ContentService::class, 'copyContent()')] +#[CoversMethod(ContentService::class, 'copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo)')] +#[CoversMethod(ContentService::class, 'addRelation')] +#[CoversMethod(ContentService::class, 'addRelation()')] +#[CoversMethod(ContentService::class, 'loadRelationList()')] +#[CoversMethod(ContentService::class, 'countReverseRelations')] +#[CoversMethod(ContentService::class, 'loadReverseRelations()')] +#[CoversMethod(ContentService::class, 'loadReverseRelationList')] +#[CoversMethod(ContentService::class, 'deleteRelation()')] +#[CoversMethod(ContentService::class, 'deleteTranslation')] +#[CoversMethod(ContentService::class, 'deleteTranslationFromDraft')] +#[CoversMethod(ContentService::class, 'deleteVersion')] +#[CoversMethod(ContentService::class, 'hideContent')] +#[CoversMethod(ContentService::class, 'revealContent')] +#[Group('content')] class ContentServiceTest extends BaseContentServiceTestCase { private const ADMINISTRATORS_USER_GROUP_NAME = 'Administrators'; @@ -90,14 +151,10 @@ public function setUp(): void /** * Test for the newContentCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::newContentCreateStruct() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testLoadContentTypeByIdentifier - * - * @group user - * @group field-type */ + #[DependsExternal(ContentTypeServiceTest::class, 'testLoadContentTypeByIdentifier')] + #[Group('user')] + #[Group('field-type')] public function testNewContentCreateStruct() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -112,14 +169,10 @@ public function testNewContentCreateStruct() * Test for the createContent() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testNewContentCreateStruct - * - * @group user - * @group field-type */ + #[Depends('testNewContentCreateStruct')] + #[Group('user')] + #[Group('field-type')] public function testCreateContent() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -144,12 +197,9 @@ public function testCreateContent() * * Tests made for issue #EZP-20955 where Anonymous user is granted access to create content * and should have access to do that. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @group user - * @group field-type */ + #[Group('user')] + #[Group('field-type')] public function testCreateContentAndPublishWithPrivilegedAnonymousUser(): void { $anonymousUserId = $this->generateId('user', 10); @@ -201,11 +251,8 @@ public function testCreateContentAndPublishWithPrivilegedAnonymousUser(): void * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentSetsContentInfo($content) { self::assertInstanceOf(ContentInfo::class, $content->contentInfo); @@ -217,11 +264,8 @@ public function testCreateContentSetsContentInfo($content) * Test for the createContent() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContentSetsContentInfo */ + #[Depends('testCreateContentSetsContentInfo')] public function testCreateContentSetsExpectedContentInfo($content) { $permissionResolver = $this->getRepository()->getPermissionResolver(); @@ -261,11 +305,8 @@ public function testCreateContentSetsExpectedContentInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentSetsVersionInfo($content) { self::assertInstanceOf(VersionInfo::class, $content->getVersionInfo()); @@ -277,11 +318,8 @@ public function testCreateContentSetsVersionInfo($content) * Test for the createContent() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContentSetsVersionInfo */ + #[Depends('testCreateContentSetsVersionInfo')] public function testCreateContentSetsExpectedVersionInfo($content) { $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -309,11 +347,8 @@ public function testCreateContentSetsExpectedVersionInfo($content) * Test for the createContent() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentSetsExpectedContentType($content) { $contentType = $content->getContentType(); @@ -337,8 +372,6 @@ public function testCreateContentSetsExpectedContentType($content) /** * Test for the createContent() method with utilizing ContentType default options. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent */ public function testCreateContentWithContentTypeDefaultOptions(): void { @@ -363,11 +396,8 @@ public function testCreateContentWithContentTypeDefaultOptions(): void /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentThrowsInvalidArgumentException() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -395,11 +425,8 @@ public function testCreateContentThrowsInvalidArgumentException() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -416,11 +443,8 @@ public function testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAcc /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentThrowsContentFieldValidationException() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -440,11 +464,8 @@ public function testCreateContentThrowsContentFieldValidationException() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent */ + #[Depends('testCreateContent')] public function testCreateContentRequiredFieldMissing() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -465,13 +486,9 @@ public function testCreateContentRequiredFieldMissing() * NOTE: We have bidirectional dependencies between the ContentService and * the LocationService, so that we cannot use PHPUnit's test dependencies * here. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @depends testCreateContent - * - * @group user */ + #[Depends('testCreateContent')] + #[Group('user')] public function testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately() { $this->createContentDraftVersion1(); @@ -484,11 +501,8 @@ public function testCreateContentWithLocationCreateParameterDoesNotCreateLocatio /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent($contentCreateStruct, $locationCreateStructs) - * - * @depends testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately */ + #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] public function testCreateContentThrowsInvalidArgumentExceptionWithLocationCreateParameter() { $parentLocationId = $this->generateId('location', 56); @@ -539,11 +553,8 @@ public function testCreateContentThrowsInvalidArgumentExceptionWithLocationCreat /** * Test for the loadContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo() - * - * @group user */ + #[Group('user')] public function testLoadContentInfo() { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); @@ -559,12 +570,11 @@ public function testLoadContentInfo() /** * Test for the returned value of the loadContentInfo() method. * - * @depends testLoadContentInfo * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoSetsExpectedContentInfo(ContentInfo $contentInfo) { $this->assertPropertiesCorrectUnsorted( @@ -574,12 +584,9 @@ public function testLoadContentInfoSetsExpectedContentInfo(ContentInfo $contentI } /** - * @depends testLoadContentInfo - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoGetContentType(ContentInfo $contentInfo): void { $contentType = $contentInfo->getContentType(); @@ -589,12 +596,9 @@ public function testLoadContentInfoGetContentType(ContentInfo $contentInfo): voi } /** - * @depends testLoadContentInfo - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoGetSection(ContentInfo $contentInfo): void { $section = $contentInfo->getSection(); @@ -604,12 +608,9 @@ public function testLoadContentInfoGetSection(ContentInfo $contentInfo): void } /** - * @depends testLoadContentInfo - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoGetMainLanguage(ContentInfo $contentInfo): void { $language = $contentInfo->getMainLanguage(); @@ -619,12 +620,9 @@ public function testLoadContentInfoGetMainLanguage(ContentInfo $contentInfo): vo } /** - * @depends testLoadContentInfo - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoGetMainLocation(ContentInfo $contentInfo): void { $mainLocation = $contentInfo->getMainLocation(); @@ -634,12 +632,9 @@ public function testLoadContentInfoGetMainLocation(ContentInfo $contentInfo): vo } /** - * @depends testLoadContentInfo - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoSetsExpectedOwnerProxy(ContentInfo $contentInfo): void { $owner = $contentInfo->getOwner(); @@ -650,11 +645,8 @@ public function testLoadContentInfoSetsExpectedOwnerProxy(ContentInfo $contentIn /** * Test for the loadContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfo() - * - * @depends testLoadContentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentInfoThrowsNotFoundException() { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -666,8 +658,6 @@ public function testLoadContentInfoThrowsNotFoundException() /** * Test for the loadContentInfoList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoList() */ public function testLoadContentInfoList() { @@ -684,11 +674,8 @@ public function testLoadContentInfoList() /** * Test for the loadContentInfoList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoList() - * - * @depends testLoadContentInfoList */ + #[Depends('testLoadContentInfoList')] public function testLoadContentInfoListSkipsNotFoundItems() { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -699,8 +686,6 @@ public function testLoadContentInfoListSkipsNotFoundItems() /** * Test for the loadContentInfoByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoByRemoteId() */ public function testLoadContentInfoByRemoteId() { @@ -715,12 +700,11 @@ public function testLoadContentInfoByRemoteId() /** * Test for the returned value of the loadContentInfoByRemoteId() method. * - * @depends testLoadContentInfoByRemoteId * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoByRemoteId * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testLoadContentInfoByRemoteId')] public function testLoadContentInfoByRemoteIdSetsExpectedContentInfo(ContentInfo $contentInfo) { $this->assertPropertiesCorrectUnsorted( @@ -745,11 +729,8 @@ public function testLoadContentInfoByRemoteIdSetsExpectedContentInfo(ContentInfo /** * Test for the loadContentInfoByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentInfoByRemoteId() - * - * @depends testLoadContentInfoByRemoteId */ + #[Depends('testLoadContentInfoByRemoteId')] public function testLoadContentInfoByRemoteIdThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -759,13 +740,9 @@ public function testLoadContentInfoByRemoteIdThrowsNotFoundException() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo() - * - * @depends testLoadContentInfo - * - * @group user */ + #[Depends('testLoadContentInfo')] + #[Group('user')] public function testLoadVersionInfo() { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); @@ -785,8 +762,6 @@ public function testLoadVersionInfo() /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById() */ public function testLoadVersionInfoById() { @@ -807,12 +782,11 @@ public function testLoadVersionInfoById() /** * Test for the returned value of the loadVersionInfoById() method. * - * @depends testLoadVersionInfoById * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById * * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdSetsExpectedVersionInfo(VersionInfo $versionInfo) { $this->assertPropertiesCorrect( @@ -840,10 +814,9 @@ public function testLoadVersionInfoByIdSetsExpectedVersionInfo(VersionInfo $vers } /** - * @depends testLoadVersionInfoById - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdGetCreator(VersionInfo $versionInfo): void { $creator = $versionInfo->getCreator(); @@ -853,12 +826,9 @@ public function testLoadVersionInfoByIdGetCreator(VersionInfo $versionInfo): voi } /** - * @depends testLoadVersionInfoById - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdGetInitialLanguage(VersionInfo $versionInfo): void { $initialLanguage = $versionInfo->getInitialLanguage(); @@ -868,10 +838,9 @@ public function testLoadVersionInfoByIdGetInitialLanguage(VersionInfo $versionIn } /** - * @depends testLoadVersionInfoById - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdGetLanguages(VersionInfo $versionInfo): void { $actualLanguages = iterator_to_array($versionInfo->getLanguages()); @@ -884,11 +853,8 @@ public function testLoadVersionInfoByIdGetLanguages(VersionInfo $versionInfo): v /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById() - * - * @depends testLoadVersionInfoById */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdThrowsNotFoundException() { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -900,11 +866,8 @@ public function testLoadVersionInfoByIdThrowsNotFoundException() /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo() - * - * @depends testLoadContentInfo */ + #[Depends('testLoadContentInfo')] public function testLoadContentByContentInfo() { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); @@ -924,11 +887,8 @@ public function testLoadContentByContentInfo() /** * Test for the loadContentByVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByVersionInfo() - * - * @depends testLoadVersionInfo */ + #[Depends('testLoadVersionInfo')] public function testLoadContentByVersionInfo() { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); @@ -951,12 +911,9 @@ public function testLoadContentByVersionInfo() /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent() - * - * @group user - * @group field-type */ + #[Group('user')] + #[Group('field-type')] public function testLoadContent() { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); @@ -973,11 +930,8 @@ public function testLoadContent() /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent() - * - * @depends testLoadContent */ + #[Depends('testLoadContent')] public function testLoadContentThrowsNotFoundException() { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -992,7 +946,7 @@ public function testLoadContentThrowsNotFoundException() * * @return array */ - public function contentRemoteIdVersionLanguageProvider() + public static function contentRemoteIdVersionLanguageProvider() { return [ ['f5c88a2209584891056f987fd965b0ba', null, null], @@ -1009,14 +963,13 @@ public function contentRemoteIdVersionLanguageProvider() /** * Test for the loadContentByRemoteId() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId * - * @dataProvider contentRemoteIdVersionLanguageProvider * * @param string $remoteId * @param array|null $languages * @param int $versionNo */ + #[DataProvider('contentRemoteIdVersionLanguageProvider')] public function testLoadContentByRemoteId($remoteId, $languages, $versionNo) { $content = $this->contentService->loadContentByRemoteId($remoteId, $languages, $versionNo); @@ -1035,11 +988,8 @@ public function testLoadContentByRemoteId($remoteId, $languages, $versionNo) /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId() - * - * @depends testLoadContentByRemoteId */ + #[Depends('testLoadContentByRemoteId')] public function testLoadContentByRemoteIdThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -1052,17 +1002,13 @@ public function testLoadContentByRemoteIdThrowsNotFoundException() * Test for the publishVersion() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testLoadContent - * @depends testLoadContentInfo - * @depends testLoadVersionInfo - * @depends testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately - * - * @group user - * @group field-type */ + #[Depends('testLoadContent')] + #[Depends('testLoadContentInfo')] + #[Depends('testLoadVersionInfo')] + #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] + #[Group('user')] + #[Group('field-type')] public function testPublishVersion() { ClockMock::withClockMock(false); @@ -1085,11 +1031,8 @@ public function testPublishVersion() * Test for the publishVersion() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion */ + #[Depends('testPublishVersion')] public function testPublishVersionSetsExpectedContentInfo($content) { $userReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1127,11 +1070,8 @@ public function testPublishVersionSetsExpectedContentInfo($content) * Test for the publishVersion() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion */ + #[Depends('testPublishVersion')] public function testPublishVersionSetsExpectedVersionInfo($content) { $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1167,11 +1107,8 @@ public function testPublishVersionSetsExpectedVersionInfo($content) * Test for the publishVersion() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion */ + #[Depends('testPublishVersion')] public function testPublishVersionSetsExpectedContentType($content) { $contentType = $content->getContentType(); @@ -1195,8 +1132,6 @@ public function testPublishVersionSetsExpectedContentType($content) /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion */ public function testPublishVersionCreatesLocationsDefinedOnCreate(): array { @@ -1216,11 +1151,8 @@ public function testPublishVersionCreatesLocationsDefinedOnCreate(): array /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersionCreatesLocationsDefinedOnCreate */ + #[Depends('testPublishVersionCreatesLocationsDefinedOnCreate')] public function testCreateContentWithLocationCreateParameterCreatesExpectedLocation(array $testData) { /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ @@ -1250,11 +1182,8 @@ public function testCreateContentWithLocationCreateParameterCreatesExpectedLocat /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion */ + #[Depends('testPublishVersion')] public function testPublishVersionThrowsBadStateException() { $draft = $this->createContentDraftVersion1(); @@ -1270,8 +1199,6 @@ public function testPublishVersionThrowsBadStateException() /** * Test that publishVersion() does not affect publishedDate (assuming previous version exists). - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion */ public function testPublishVersionDoesNotChangePublishedDate() { @@ -1300,13 +1227,9 @@ public function testPublishVersionDoesNotChangePublishedDate() * Test for the createContentDraft() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testPublishVersion - * - * @group user */ + #[Depends('testPublishVersion')] + #[Group('user')] public function testCreateContentDraft() { $content = $this->createContentVersion1(); @@ -1324,8 +1247,6 @@ public function testCreateContentDraft() /** * Test for the createContentDraft() method with given language for new draft. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft */ public function testCreateContentDraftInOtherLanguage() { @@ -1350,13 +1271,9 @@ public function testCreateContentDraftInOtherLanguage() * * Test that editor has access to edit own draft. * Note: Editors have access to version_read, which is needed to load content drafts. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testPublishVersion - * - * @group user */ + #[Depends('testPublishVersion')] + #[Group('user')] public function testCreateContentDraftAndLoadAccess() { $user = $this->createUserVersion1(); @@ -1377,11 +1294,8 @@ public function testCreateContentDraftAndLoadAccess() * Test for the createContentDraft() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft */ + #[Depends('testCreateContentDraft')] public function testCreateContentDraftSetsExpectedProperties($draft) { self::assertEquals( @@ -1400,11 +1314,8 @@ public function testCreateContentDraftSetsExpectedProperties($draft) * Test for the createContentDraft() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft */ + #[Depends('testCreateContentDraft')] public function testCreateContentDraftSetsContentInfo($draft) { $contentInfo = $draft->contentInfo; @@ -1436,11 +1347,8 @@ public function testCreateContentDraftSetsContentInfo($draft) * Test for the createContentDraft() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft */ + #[Depends('testCreateContentDraft')] public function testCreateContentDraftSetsVersionInfo($draft) { $versionInfo = $draft->getVersionInfo(); @@ -1471,12 +1379,9 @@ public function testCreateContentDraftSetsVersionInfo($draft) * Test for the createContentDraft() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft - * @depends testLoadVersionInfo */ + #[Depends('testCreateContentDraft')] + #[Depends('testLoadVersionInfo')] public function testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion($draft) { $content = $this->createContentVersion1(); @@ -1492,12 +1397,9 @@ public function testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion( /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testLoadContent - * @depends testCreateContentDraft */ + #[Depends('testLoadContent')] + #[Depends('testCreateContentDraft')] public function testCreateContentDraftLoadContentStillLoadsPublishedVersion() { $content = $this->createContentVersion1(); @@ -1513,12 +1415,9 @@ public function testCreateContentDraftLoadContentStillLoadsPublishedVersion() /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testLoadContentByRemoteId - * @depends testCreateContentDraft */ + #[Depends('testLoadContentByRemoteId')] + #[Depends('testCreateContentDraft')] public function testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVersion() { $content = $this->createContentVersion1(); @@ -1534,12 +1433,9 @@ public function testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVe /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testLoadContentByContentInfo - * @depends testCreateContentDraft */ + #[Depends('testLoadContentByContentInfo')] + #[Depends('testCreateContentDraft')] public function testCreateContentDraftLoadContentByContentInfoStillLoadsPublishedVersion() { $content = $this->createContentVersion1(); @@ -1555,11 +1451,8 @@ public function testCreateContentDraftLoadContentByContentInfoStillLoadsPublishe /** * Test for the newContentUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::newContentUpdateStruct - * - * @group user */ + #[Group('user')] public function testNewContentUpdateStruct() { $updateStruct = $this->contentService->newContentUpdateStruct(); @@ -1582,15 +1475,11 @@ public function testNewContentUpdateStruct() * Test for the updateContent() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testNewContentUpdateStruct - * @depends testCreateContentDraft - * - * @group user - * @group field-type */ + #[Depends('testNewContentUpdateStruct')] + #[Depends('testCreateContentDraft')] + #[Group('user')] + #[Group('field-type')] public function testUpdateContent() { $draftVersion2 = $this->createUpdatedDraftVersion2(); @@ -1613,15 +1502,11 @@ public function testUpdateContent() * Test for the updateContent_WithDifferentUser() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testNewContentUpdateStruct - * @depends testCreateContentDraft - * - * @group user - * @group field-type */ + #[Depends('testNewContentUpdateStruct')] + #[Depends('testCreateContentDraft')] + #[Group('user')] + #[Group('field-type')] public function testUpdateContentWithDifferentUser() { $arrayWithDraftVersion2 = $this->createUpdatedDraftVersion2NotAdmin(); @@ -1644,11 +1529,8 @@ public function testUpdateContentWithDifferentUser() * Test for the updateContent() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentSetsExpectedFields($content) { $actual = $this->normalizeFields($content->getFields()); @@ -1679,11 +1561,8 @@ public function testUpdateContentSetsExpectedFields($content) /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentThrowsBadStateException() { $content = $this->createContentVersion1(); @@ -1706,11 +1585,8 @@ public function testUpdateContentThrowsBadStateException() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoesNotAccept() { $draft = $this->createContentDraftVersion1(); @@ -1730,11 +1606,8 @@ public function testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoes /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentWhenMandatoryFieldIsEmpty() { $draft = $this->createContentDraftVersion1(); @@ -1757,11 +1630,8 @@ public function testUpdateContentWhenMandatoryFieldIsEmpty() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentThrowsContentFieldValidationException() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -1784,11 +1654,8 @@ public function testUpdateContentThrowsContentFieldValidationException() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLanguages() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -1826,11 +1693,8 @@ public function testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLangu /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testUpdateContentWithNotUpdatingMandatoryField() { $draft = $this->createContentDraftVersion1(); @@ -1861,11 +1725,8 @@ public function testUpdateContentWithNotUpdatingMandatoryField() /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft($contentInfo, $versionInfo) - * - * @depends testUpdateContent */ + #[Depends('testUpdateContent')] public function testCreateContentDraftWithSecondParameter() { $contentVersion2 = $this->createContentVersion2(); @@ -1881,8 +1742,6 @@ public function testCreateContentDraftWithSecondParameter() /** * Test for the createContentDraft() method with third parameter. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft */ public function testCreateContentDraftWithThirdParameter() { @@ -1903,12 +1762,9 @@ public function testCreateContentDraftWithThirdParameter() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion - * @depends testUpdateContent */ + #[Depends('testPublishVersion')] + #[Depends('testUpdateContent')] public function testPublishVersionFromContentDraft() { $contentVersion2 = $this->createContentVersion2(); @@ -1932,11 +1788,8 @@ public function testPublishVersionFromContentDraft() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testPublishVersionFromContentDraftArchivesOldVersion() { $contentVersion2 = $this->createContentVersion2(); @@ -1960,11 +1813,8 @@ public function testPublishVersionFromContentDraftArchivesOldVersion() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersion() { $contentVersion2 = $this->createContentVersion2(); @@ -1974,11 +1824,8 @@ public function testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersi /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testPublishVersionFromOldContentDraftArchivesNewerVersionNo() { $content = $this->createContentVersion1(); @@ -2003,11 +1850,8 @@ public function testPublishVersionFromOldContentDraftArchivesNewerVersionNo() * Test for the publishVersion() method, and that it creates limited archives. * * @todo Adapt this when per content type archive limited is added on repository content type model. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testPublishVersionNotCreatingUnlimitedArchives(): void { $content = $this->createContentVersion1(); @@ -2069,11 +1913,8 @@ public function testPublishVersionNotCreatingUnlimitedArchives(): void /** * Test for the newContentMetadataUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::newContentMetadataUpdateStruct - * - * @group user */ + #[Group('user')] public function testNewContentMetadataUpdateStruct() { // Creates a new metadata update struct @@ -2097,14 +1938,10 @@ public function testNewContentMetadataUpdateStruct() * Test for the updateContentMetadata() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testPublishVersion - * @depends testNewContentMetadataUpdateStruct - * - * @group user */ + #[Depends('testPublishVersion')] + #[Depends('testNewContentMetadataUpdateStruct')] + #[Group('user')] public function testUpdateContentMetadata() { $content = $this->createContentVersion1(); @@ -2136,11 +1973,8 @@ public function testUpdateContentMetadata() * Test for the updateContentMetadata() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata */ + #[Depends('testUpdateContentMetadata')] public function testUpdateContentMetadataSetsExpectedProperties($content) { $contentInfo = $content->contentInfo; @@ -2176,11 +2010,8 @@ public function testUpdateContentMetadataSetsExpectedProperties($content) * Test for the updateContentMetadata() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata */ + #[Depends('testUpdateContentMetadata')] public function testUpdateContentMetadataNotUpdatesContentVersion($content) { self::assertEquals(1, $content->getVersionInfo()->versionNo); @@ -2188,11 +2019,8 @@ public function testUpdateContentMetadataNotUpdatesContentVersion($content) /** * Test for the updateContentMetadata() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata */ + #[Depends('testUpdateContentMetadata')] public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplicateRemoteId() { $content = $this->createContentVersion1(); @@ -2211,8 +2039,6 @@ public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplica /** * Test for the updateContentMetadata() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata */ public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnNoMetadataPropertiesSet() { @@ -2224,8 +2050,6 @@ public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnNoMetad } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -2249,8 +2073,6 @@ public function testUpdateContentAlwaysAvailable(): void } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -2315,11 +2137,8 @@ public function testUpdateContentMainTranslation(): void /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testDeleteContent() { $contentVersion2 = $this->createContentVersion2(); @@ -2342,11 +2161,8 @@ public function testDeleteContent() * * Test for issue EZP-21057: * "contentService: Unable to delete a content with an empty file attribute" - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testDeleteContentWithEmptyBinaryField() { $contentVersion = $this->createContentVersion1EmptyBinaryField(); @@ -2409,9 +2225,6 @@ public function testCountContentDraftsForUsers(): void self::assertSame(0, $previousUserDrafts); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList() - */ public function testLoadContentDraftsReturnsEmptyArrayByDefault() { $contentDrafts = $this->contentService->loadContentDraftList(); @@ -2419,11 +2232,7 @@ public function testLoadContentDraftsReturnsEmptyArrayByDefault() self::assertSame([], $contentDrafts->items); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList() - * - * @depends testCreateContentDraft - */ + #[Depends('testCreateContentDraft')] public function testLoadContentDraftList(): void { // "Media" content object @@ -2465,9 +2274,6 @@ public function testLoadContentDraftList(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList($user) - */ public function testLoadContentDraftsWithFirstParameter() { $user = $this->createUserVersion1(); @@ -2513,8 +2319,6 @@ public function testLoadContentDraftsWithFirstParameter() /** * Test for the loadContentDraftList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList() */ public function testLoadContentDraftListWithPaginationParameters(): void { @@ -2539,8 +2343,6 @@ public function testLoadContentDraftListWithPaginationParameters(): void /** * Test for the loadContentDraftList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList($user) */ public function testLoadContentDraftListWithForUserWithLimitation(): void { @@ -2578,8 +2380,6 @@ public function testLoadContentDraftListWithForUserWithLimitation(): void /** * Test for the loadContentDraftList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentDraftList() */ public function testLoadAllContentDraftList(): void { @@ -2591,11 +2391,8 @@ public function testLoadAllContentDraftList(): void /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo($contentInfo, $versionNo) - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testLoadVersionInfoWithSecondParameter() { $publishedContent = $this->createContentVersion1(); @@ -2616,11 +2413,8 @@ public function testLoadVersionInfoWithSecondParameter() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo($contentInfo, $versionNo) - * - * @depends testLoadVersionInfoWithSecondParameter */ + #[Depends('testLoadVersionInfoWithSecondParameter')] public function testLoadVersionInfoThrowsNotFoundExceptionWithSecondParameter() { $draft = $this->createContentDraftVersion1(); @@ -2633,11 +2427,8 @@ public function testLoadVersionInfoThrowsNotFoundExceptionWithSecondParameter() /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById($contentId, $versionNo) - * - * @depends testLoadVersionInfoWithSecondParameter */ + #[Depends('testLoadVersionInfoWithSecondParameter')] public function testLoadVersionInfoByIdWithSecondParameter() { $publishedContent = $this->createContentVersion1(); @@ -2664,12 +2455,11 @@ public function testLoadVersionInfoByIdWithSecondParameter() /** * Test for the returned value of the loadVersionInfoById() method. * - * @depends testLoadVersionInfoByIdWithSecondParameter * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById * * @param array $data */ + #[Depends('testLoadVersionInfoByIdWithSecondParameter')] public function testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo(array $data) { /** @var \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ @@ -2714,8 +2504,6 @@ public function testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInf /** * Test for the loadVersionInfoById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById($contentId, $versionNo) */ public function testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParameter() { @@ -2729,12 +2517,9 @@ public function testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParamete /** * Test for the loadContentByVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByVersionInfo($versionInfo, $languages) - * - * @depends testCreateContent - * @depends testLoadContentByVersionInfo */ + #[Depends('testCreateContent')] + #[Depends('testLoadContentByVersionInfo')] public function testLoadContentByVersionInfoWithSecondParameter() { $sectionId = $this->generateId('section', 1); @@ -2806,11 +2591,8 @@ static function ($field1, $field2): int { /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo($contentInfo, $languages) - * - * @depends testLoadContentByContentInfo */ + #[Depends('testLoadContentByContentInfo')] public function testLoadContentByContentInfoWithLanguageParameters() { $sectionId = $this->generateId('section', 1); @@ -2916,11 +2698,8 @@ public function testLoadContentByContentInfoWithLanguageParameters() /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo($contentInfo, $languages, $versionNo) - * - * @depends testLoadContentByContentInfo */ + #[Depends('testLoadContentByContentInfo')] public function testLoadContentByContentInfoWithVersionNumberParameter() { $publishedContent = $this->createContentVersion1(); @@ -2948,11 +2727,8 @@ public function testLoadContentByContentInfoWithVersionNumberParameter() /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo($contentInfo, $languages, $versionNo) - * - * @depends testLoadContentByContentInfoWithVersionNumberParameter */ + #[Depends('testLoadContentByContentInfoWithVersionNumberParameter')] public function testLoadContentByContentInfoThrowsNotFoundExceptionWithVersionNumberParameter() { $content = $this->createContentVersion1(); @@ -2965,11 +2741,8 @@ public function testLoadContentByContentInfoThrowsNotFoundExceptionWithVersionNu /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent($contentId, $languages) - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testLoadContentWithPrioritizedLanguages() { $draft = $this->createMultipleLanguageDraftVersion1(); @@ -2985,10 +2758,10 @@ public function testLoadContentWithPrioritizedLanguages() /** * Test for the loadContent() method using undefined translation. * - * @depends testLoadContentWithPrioritizedLanguages * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ + #[Depends('testLoadContentWithPrioritizedLanguages')] public function testLoadContentWithPrioritizedLanguagesThrowsNotFoundException(Content $contentDraft) { $this->expectException(NotFoundException::class); @@ -2998,11 +2771,8 @@ public function testLoadContentWithPrioritizedLanguagesThrowsNotFoundException(C /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent - * - * @depends testLoadContentWithPrioritizedLanguages */ + #[Depends('testLoadContentWithPrioritizedLanguages')] public function testLoadContentPassTroughPrioritizedLanguagesToContentType(Content $content): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -3017,11 +2787,8 @@ public function testLoadContentPassTroughPrioritizedLanguagesToContentType(Conte /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent($contentId, $languages, $versionNo) - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testLoadContentWithThirdParameter() { $publishedContent = $this->createContentVersion1(); @@ -3042,11 +2809,8 @@ public function testLoadContentWithThirdParameter() /** * Test for the loadContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContent($contentId, $languages, $versionNo) - * - * @depends testLoadContentWithThirdParameter */ + #[Depends('testLoadContentWithThirdParameter')] public function testLoadContentThrowsNotFoundExceptionWithThirdParameter() { $content = $this->createContentVersion1(); @@ -3059,11 +2823,8 @@ public function testLoadContentThrowsNotFoundExceptionWithThirdParameter() /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId($remoteId, $languages) - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testLoadContentByRemoteIdWithSecondParameter() { $draft = $this->createMultipleLanguageDraftVersion1(); @@ -3083,11 +2844,8 @@ public function testLoadContentByRemoteIdWithSecondParameter() /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId($remoteId, $languages, $versionNo) - * - * @depends testPublishVersionFromContentDraft */ + #[Depends('testPublishVersionFromContentDraft')] public function testLoadContentByRemoteIdWithThirdParameter() { $publishedContent = $this->createContentVersion1(); @@ -3112,11 +2870,8 @@ public function testLoadContentByRemoteIdWithThirdParameter() /** * Test for the loadContentByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByRemoteId($remoteId, $languages, $versionNo) - * - * @depends testLoadContentByRemoteIdWithThirdParameter */ + #[Depends('testLoadContentByRemoteIdWithThirdParameter')] public function testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParameter() { $content = $this->createContentVersion1(); @@ -3134,10 +2889,10 @@ public function testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParamet /** * Test that retrieval of translated name field respects prioritized language list. * - * @dataProvider getPrioritizedLanguageList * * @param string[]|null $languageCodes */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadContentWithPrioritizedLanguagesList($languageCodes) { $content = $this->createContentVersion2(); @@ -3158,7 +2913,7 @@ public function testLoadContentWithPrioritizedLanguagesList($languageCodes) /** * @return array */ - public function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList() { return [ [[self::ENG_US]], @@ -3170,14 +2925,11 @@ public function getPrioritizedLanguageList() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends testLoadContent - * @depends testCreateContent - * @depends testPublishVersion - * @depends testCreateContentDraft */ + #[Depends('testLoadContent')] + #[Depends('testCreateContent')] + #[Depends('testPublishVersion')] + #[Depends('testCreateContentDraft')] public function testDeleteVersion() { $content = $this->createContentVersion1(); @@ -3203,13 +2955,10 @@ public function testDeleteVersion() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends testLoadContent - * @depends testCreateContent - * @depends testPublishVersion */ + #[Depends('testLoadContent')] + #[Depends('testCreateContent')] + #[Depends('testPublishVersion')] public function testDeleteVersionThrowsBadStateExceptionOnPublishedVersion() { $content = $this->createContentVersion1(); @@ -3222,13 +2971,10 @@ public function testDeleteVersionThrowsBadStateExceptionOnPublishedVersion() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends testLoadContent - * @depends testCreateContent - * @depends testPublishVersion */ + #[Depends('testLoadContent')] + #[Depends('testCreateContent')] + #[Depends('testPublishVersion')] public function testDeleteVersionWorksIfOnlyVersionIsDraft() { $draft = $this->createContentDraftVersion1(); @@ -3245,12 +2991,11 @@ public function testDeleteVersionWorksIfOnlyVersionIsDraft() /** * Test for the loadVersions() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersions() * - * @depends testPublishVersion * * @return \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo[] */ + #[Depends('testPublishVersion')] public function testLoadVersions() { $contentVersion2 = $this->createContentVersion2(); @@ -3271,12 +3016,11 @@ public function testLoadVersions() /** * Test for the loadVersions() method. * - * @depends testLoadVersions * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersions * * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo[] $versions */ + #[Depends('testLoadVersions')] public function testLoadVersionsSetsExpectedVersionInfo(array $versions) { self::assertCount(2, $versions); @@ -3323,13 +3067,9 @@ public function testLoadVersionsSetsExpectedVersionInfo(array $versions) /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent() - * - * @depends testPublishVersionFromContentDraft - * - * @group field-type */ + #[Depends('testPublishVersionFromContentDraft')] + #[Group('field-type')] public function testCopyContent() { $parentLocationId = $this->generateId('location', 56); @@ -3386,13 +3126,9 @@ public function testCopyContent() /** * Test for the copyContent() method with ibexa.site_access.config.default.content.retain_owner_on_copy set to false * See settings/test/integration_legacy.yml for service override. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent() - * - * @depends testPublishVersionFromContentDraft - * - * @group field-type */ + #[Depends('testPublishVersionFromContentDraft')] + #[Group('field-type')] public function testCopyContentWithNewOwner() { $parentLocationId = $this->generateId('location', 56); @@ -3448,11 +3184,8 @@ public function testCopyContentWithNewOwner() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo) - * - * @depends testCopyContent */ + #[Depends('testCopyContent')] public function testCopyContentWithGivenVersion() { $parentLocationId = $this->generateId('location', 56); @@ -3506,14 +3239,11 @@ public function testCopyContentWithGivenVersion() /** * @return \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::addRelation - * - * @depends testPublishVersionFromContentDraft - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException */ + #[Depends('testPublishVersionFromContentDraft')] public function testAddRelation(): array { $draft = $this->createContentDraftVersion1(); @@ -3538,11 +3268,8 @@ public function testAddRelation(): array * Test for the addRelation() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::addRelation() - * - * @depends testAddRelation */ + #[Depends('testAddRelation')] public function testAddRelationAddsRelationToContent($relations) { self::assertCount( @@ -3576,11 +3303,8 @@ protected function assertExpectedRelations($relations) * Test for the addRelation() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::addRelation() - * - * @depends testAddRelation */ + #[Depends('testAddRelation')] public function testAddRelationSetsExpectedRelations($relations) { $this->assertExpectedRelations($relations); @@ -3590,11 +3314,8 @@ public function testAddRelationSetsExpectedRelations($relations) * Test for the createContentDraft() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft - * - * @depends testAddRelationSetsExpectedRelations */ + #[Depends('testAddRelationSetsExpectedRelations')] public function testCreateContentDraftWithRelations() { $draft = $this->createContentDraftVersion1(); @@ -3621,9 +3342,8 @@ public function testCreateContentDraftWithRelations() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] - * - * @depends testCreateContentDraftWithRelations */ + #[Depends('testCreateContentDraftWithRelations')] public function testCreateContentDraftWithRelationsCreatesRelations(array $relations): array { self::assertCount( @@ -3638,9 +3358,8 @@ public function testCreateContentDraftWithRelationsCreatesRelations(array $relat * Test for the createContentDraft() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations - * - * @depends testCreateContentDraftWithRelationsCreatesRelations */ + #[Depends('testCreateContentDraftWithRelationsCreatesRelations')] public function testCreateContentDraftWithRelationsCreatesExpectedRelations($relations) { $this->assertExpectedRelations($relations); @@ -3648,11 +3367,8 @@ public function testCreateContentDraftWithRelationsCreatesExpectedRelations($rel /** * Test for the addRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::addRelation() - * - * @depends testAddRelation */ + #[Depends('testAddRelation')] public function testAddRelationThrowsBadStateException() { $content = $this->createContentVersion1(); @@ -3670,12 +3386,9 @@ public function testAddRelationThrowsBadStateException() /** * Test for the loadRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadRelationList() - * - * @depends testAddRelation - * @depends testLoadRelationList */ + #[Depends('testAddRelation')] + #[Depends('testLoadRelationList')] public function testLoadRelationsSkipsArchivedContent() { $trashService = $this->getRepository()->getTrashService(); @@ -3734,12 +3447,9 @@ public function testLoadRelationsSkipsArchivedContent() /** * Test for the loadRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadRelationList() - * - * @depends testAddRelation - * @depends testLoadRelationList */ + #[Depends('testAddRelation')] + #[Depends('testLoadRelationList')] public function testLoadRelationsSkipsDraftContent() { $draft = $this->createContentDraftVersion1(); @@ -3899,8 +3609,6 @@ public function testLoadRelationListWithType(): void /** * Test for the countReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::countReverseRelations */ public function testCountReverseRelations(): void { @@ -3936,8 +3644,6 @@ public function testCountReverseRelationsWithType(): void /** * Test for the countReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::countReverseRelations */ public function testCountReverseRelationsReturnsZeroByDefault(): void { @@ -3948,8 +3654,6 @@ public function testCountReverseRelationsReturnsZeroByDefault(): void /** * Test for the countReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::countReverseRelations */ public function testCountReverseRelationsForUnauthorizedUser(): void { @@ -3968,11 +3672,8 @@ public function testCountReverseRelationsForUnauthorizedUser(): void /** * Test for the loadReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelations() - * - * @depends testAddRelation */ + #[Depends('testAddRelation')] public function testLoadReverseRelations() { $versionInfo = $this->createContentVersion1()->getVersionInfo(); @@ -4050,12 +3751,9 @@ static function ($rel1, $rel2): int { /** * Test for the loadReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelations() - * - * @depends testAddRelation - * @depends testLoadReverseRelations */ + #[Depends('testAddRelation')] + #[Depends('testLoadReverseRelations')] public function testLoadReverseRelationsSkipsArchivedContent() { $trashService = $this->getRepository()->getTrashService(); @@ -4126,12 +3824,9 @@ public function testLoadReverseRelationsSkipsArchivedContent() /** * Test for the loadReverseRelations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelations() - * - * @depends testAddRelation - * @depends testLoadReverseRelations */ + #[Depends('testAddRelation')] + #[Depends('testLoadReverseRelations')] public function testLoadReverseRelationsSkipsDraftContent() { // Load "Media" page Content @@ -4188,9 +3883,6 @@ public function testLoadReverseRelationsSkipsDraftContent() ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelationList - */ public function testLoadReverseRelationList(): void { $draft1 = $this->contentService->createContentDraft( @@ -4228,9 +3920,6 @@ public function testLoadReverseRelationList(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelationList - */ public function testLoadReverseRelationListWithPagination(): void { $draft1 = $this->contentService->createContentDraft( @@ -4269,9 +3958,6 @@ public function testLoadReverseRelationListWithPagination(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelationList - */ public function testLoadReverseRelationListSkipsArchivedContent(): void { $trashService = $this->getRepository()->getTrashService(); @@ -4313,9 +3999,6 @@ public function testLoadReverseRelationListSkipsArchivedContent(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadReverseRelationList - */ public function testLoadReverseRelationListSkipsDraftContent() { $draft1 = $this->contentService->createContentDraft( @@ -4363,11 +4046,8 @@ public function testLoadReverseRelationListWithType(): void /** * Test for the deleteRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteRelation() - * - * @depends testLoadRelationList */ + #[Depends('testLoadRelationList')] public function testDeleteRelation() { $draft = $this->createContentDraftVersion1(); @@ -4390,11 +4070,8 @@ public function testDeleteRelation() /** * Test for the deleteRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteRelation() - * - * @depends testDeleteRelation */ + #[Depends('testDeleteRelation')] public function testDeleteRelationThrowsBadStateException() { $content = $this->createContentVersion1(); @@ -4424,11 +4101,8 @@ public function testDeleteRelationThrowsBadStateException() /** * Test for the deleteRelation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteRelation() - * - * @depends testDeleteRelation */ + #[Depends('testDeleteRelation')] public function testDeleteRelationThrowsInvalidArgumentException() { $draft = $this->createContentDraftVersion1(); @@ -4446,12 +4120,9 @@ public function testDeleteRelationThrowsInvalidArgumentException() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent - * @depends testLoadContent */ + #[Depends('testCreateContent')] + #[Depends('testLoadContent')] public function testCreateContentInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4495,12 +4166,9 @@ public function testCreateContentInTransactionWithRollback() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() - * - * @depends testCreateContent - * @depends testLoadContent */ + #[Depends('testCreateContent')] + #[Depends('testLoadContent')] public function testCreateContentInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4539,12 +4207,9 @@ public function testCreateContentInTransactionWithCommit() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent($contentCreateStruct, $locationCreateStructs) - * - * @depends testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately - * @depends testLoadContentThrowsNotFoundException */ + #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] + #[Depends('testLoadContentThrowsNotFoundException')] public function testCreateContentWithLocationCreateParameterInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4577,12 +4242,9 @@ public function testCreateContentWithLocationCreateParameterInTransactionWithRol /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent($contentCreateStruct, $locationCreateStructs) - * - * @depends testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately - * @depends testLoadContentThrowsNotFoundException */ + #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] + #[Depends('testLoadContentThrowsNotFoundException')] public function testCreateContentWithLocationCreateParameterInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4611,12 +4273,9 @@ public function testCreateContentWithLocationCreateParameterInTransactionWithCom /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft - * @depends testLoadContent */ + #[Depends('testCreateContentDraft')] + #[Depends('testLoadContent')] public function testCreateContentDraftInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4656,12 +4315,9 @@ public function testCreateContentDraftInTransactionWithRollback() /** * Test for the createContentDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() - * - * @depends testCreateContentDraft - * @depends testLoadContent */ + #[Depends('testCreateContentDraft')] + #[Depends('testLoadContent')] public function testCreateContentDraftInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4699,12 +4355,9 @@ public function testCreateContentDraftInTransactionWithCommit() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion - * @depends testLoadContent */ + #[Depends('testPublishVersion')] + #[Depends('testLoadContent')] public function testPublishVersionInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4746,12 +4399,9 @@ public function testPublishVersionInTransactionWithRollback() /** * Test for the publishVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion() - * - * @depends testPublishVersion - * @depends testLoadVersionInfo */ + #[Depends('testPublishVersion')] + #[Depends('testLoadVersionInfo')] public function testPublishVersionInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4787,13 +4437,10 @@ public function testPublishVersionInTransactionWithCommit() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent - * @depends testLoadContent - * @depends testLoadContentInfo */ + #[Depends('testUpdateContent')] + #[Depends('testLoadContent')] + #[Depends('testLoadContentInfo')] public function testUpdateContentInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4838,13 +4485,10 @@ public function testUpdateContentInTransactionWithRollback() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() - * - * @depends testUpdateContent - * @depends testLoadContent - * @depends testLoadContentInfo */ + #[Depends('testUpdateContent')] + #[Depends('testLoadContent')] + #[Depends('testLoadContentInfo')] public function testUpdateContentInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4889,12 +4533,9 @@ public function testUpdateContentInTransactionWithCommit() /** * Test for the updateContentMetadata() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata - * @depends testLoadContentInfo */ + #[Depends('testUpdateContentMetadata')] + #[Depends('testLoadContentInfo')] public function testUpdateContentMetadataInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4937,12 +4578,9 @@ public function testUpdateContentMetadataInTransactionWithRollback() /** * Test for the updateContentMetadata() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata - * @depends testLoadContentInfo */ + #[Depends('testUpdateContentMetadata')] + #[Depends('testLoadContentInfo')] public function testUpdateContentMetadataInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4985,12 +4623,9 @@ public function testUpdateContentMetadataInTransactionWithCommit() /** * Test for the updateContentMetadata() method, and how cache + transactions play together. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContentMetadata() - * - * @depends testUpdateContentMetadata - * @depends testLoadContentInfo */ + #[Depends('testUpdateContentMetadata')] + #[Depends('testLoadContentInfo')] public function testUpdateContentMetadataCheckWithinTransaction() { $repository = $this->getRepository(); @@ -5032,13 +4667,10 @@ public function testUpdateContentMetadataCheckWithinTransaction() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends testCreateContent - * @depends testLoadContentInfo - * @depends testLoadContentDraftList */ + #[Depends('testCreateContent')] + #[Depends('testLoadContentInfo')] + #[Depends('testLoadContentDraftList')] public function testDeleteVersionInTransactionWithRollback() { $repository = $this->getRepository(); @@ -5072,13 +4704,10 @@ public function testDeleteVersionInTransactionWithRollback() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion() - * - * @depends testCreateContent - * @depends testLoadContentInfo - * @depends testLoadContentDraftList */ + #[Depends('testCreateContent')] + #[Depends('testLoadContentInfo')] + #[Depends('testLoadContentDraftList')] public function testDeleteVersionInTransactionWithCommit() { $repository = $this->getRepository(); @@ -5112,12 +4741,9 @@ public function testDeleteVersionInTransactionWithCommit() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - * - * @depends testDeleteContent - * @depends testLoadContentInfo */ + #[Depends('testDeleteContent')] + #[Depends('testLoadContentInfo')] public function testDeleteContentInTransactionWithRollback() { $repository = $this->getRepository(); @@ -5150,12 +4776,9 @@ public function testDeleteContentInTransactionWithRollback() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent() - * - * @depends testDeleteContent - * @depends testLoadContentInfo */ + #[Depends('testDeleteContent')] + #[Depends('testLoadContentInfo')] public function testDeleteContentInTransactionWithCommit() { $repository = $this->getRepository(); @@ -5192,11 +4815,8 @@ public function testDeleteContentInTransactionWithCommit() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent() - * - * @depends testCopyContent */ + #[Depends('testCopyContent')] public function testCopyContentInTransactionWithRollback() { $repository = $this->getRepository(); @@ -5240,11 +4860,8 @@ public function testCopyContentInTransactionWithRollback() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent() - * - * @depends testCopyContent */ + #[Depends('testCopyContent')] public function testCopyContentInTransactionWithCommit() { $repository = $this->getRepository(); @@ -5520,8 +5137,6 @@ public function testPublishContentWithoutPublishPolicyThrowsException() /** * Test removal of the specific translation from all the Versions of a Content Object. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslation() { @@ -5578,8 +5193,6 @@ public function testDeleteTranslationUpdatesInitialLanguageCodeVersion() /** * Test removal of the specific translation properly updates languages of the URL alias. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslationUpdatesUrlAlias() { @@ -5623,8 +5236,6 @@ public function testDeleteTranslationUpdatesUrlAlias() /** * Test removal of a main translation throws BadStateException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslationMainLanguageThrowsBadStateException() { @@ -5642,8 +5253,6 @@ public function testDeleteTranslationMainLanguageThrowsBadStateException() /** * Test removal of a Translation is possible when some archived Versions have only this Translation. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslationDeletesSingleTranslationVersions() { @@ -5671,8 +5280,6 @@ public function testDeleteTranslationDeletesSingleTranslationVersions() /** * Test removal of the translation by the user who is not allowed to delete a content * throws UnauthorizedException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslationThrowsUnauthorizedException() { @@ -5701,8 +5308,6 @@ public function testDeleteTranslationThrowsUnauthorizedException() /** * Test removal of a non-existent translation throws InvalidArgumentException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslationThrowsInvalidArgumentException() { @@ -5717,8 +5322,6 @@ public function testDeleteTranslationThrowsInvalidArgumentException() /** * Test deleting a Translation from Draft. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraft() { @@ -5738,7 +5341,7 @@ public function testDeleteTranslationFromDraft() * * @return array */ - public function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing() + public static function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing() { return [ [ @@ -5753,9 +5356,7 @@ public function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing /** * Test deleting a Translation from Draft removes previously stored URL aliases for published Content. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft * - * @dataProvider providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing * * @param string[] $fieldValues translated field values * @@ -5764,6 +5365,7 @@ public function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing')] public function testDeleteTranslationFromDraftRemovesUrlAliasOnPublishing(array $fieldValues) { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -5881,8 +5483,6 @@ public function testDeleteTranslationFromDraftArchivesUrlAliasOnPublishing() /** * Test deleting a Translation from Draft which has single Translation throws BadStateException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTranslation() { @@ -5918,8 +5518,6 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTra /** * Test deleting the Main Translation from Draft throws BadStateException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTranslation() { @@ -5944,8 +5542,6 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTrans /** * Test deleting the Translation from Published Version throws BadStateException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublishedVersion() { @@ -5962,8 +5558,6 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublished /** * Test deleting a Translation from Draft throws UnauthorizedException if user cannot edit Content. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraftThrowsUnauthorizedException() { @@ -5994,8 +5588,6 @@ public function testDeleteTranslationFromDraftThrowsUnauthorizedException() /** * Test deleting a non-existent Translation from Draft throws InvalidArgumentException. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslationFromDraft */ public function testDeleteTranslationFromDraftThrowsInvalidArgumentException() { @@ -6038,8 +5630,6 @@ static function (Location $location) { * Test loading content versions after removing exactly two drafts. * * @see https://issues.ibexa.co/browse/EZP-30271 - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion */ public function testLoadVersionsAfterDeletingTwoDrafts() { @@ -6329,8 +5919,6 @@ private function getExpectedMediaContentInfoProperties() } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::hideContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ContentFieldValidationException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ContentValidationException @@ -6375,8 +5963,6 @@ function (Location $parentLocation) { } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::revealContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -6507,8 +6093,6 @@ public function testPublishRevealedDraft(): void } /** - * @dataProvider draftVisibilityTransitionsProvider - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ContentFieldValidationException @@ -6516,6 +6100,7 @@ public function testPublishRevealedDraft(): void * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ContentValidationException */ + #[DataProvider('draftVisibilityTransitionsProvider')] public function testDraftVisibilityTransitions( bool $initiallyHidden, bool $secondDraftHidden @@ -6594,9 +6179,7 @@ private function createFolderDraft(): Content ); } - /** - * @depends testRevealContent - */ + #[Depends('testRevealContent')] public function testRevealContentWithHiddenParent() { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6658,9 +6241,7 @@ public function testRevealContentWithHiddenParent() } } - /** - * @depends testRevealContent - */ + #[Depends('testRevealContent')] public function testRevealContentWithHiddenChildren() { $contentTypeService = $this->getRepository()->getContentTypeService(); diff --git a/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php b/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php index b91cc9d73d..f8e35378e5 100644 --- a/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php +++ b/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php @@ -8,6 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentTypeService; +use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\ContentTypeQuery; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion\ContainsFieldDefinitionId; @@ -22,10 +23,10 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause\Identifier; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause\Name; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService - */ +#[CoversClass(ContentTypeService::class)] final class FindContentTypesTest extends RepositoryTestCase { public function testFindContentTypesWithNullQueryFinds25Results(): void @@ -42,9 +43,8 @@ public function testFindContentTypesWithNullQueryFinds25Results(): void /** * @param list $expectedIdentifiers - * - * @dataProvider dataProviderForTestFindContentTypes */ + #[DataProvider('dataProviderForTestFindContentTypes')] public function testFindContentTypes(ContentTypeQuery $query, array $expectedIdentifiers): void { $contentTypeService = $this->getIbexaTestCore()->getContentTypeService(); @@ -151,7 +151,7 @@ public function testFindContentTypesContainingFieldDefinitions(): void /** * @return iterable}> */ - public function dataProviderForTestFindContentTypes(): iterable + public static function dataProviderForTestFindContentTypes(): iterable { yield 'identifiers' => [ new ContentTypeQuery( diff --git a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php index c4fd943916..1883708a06 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php @@ -7,27 +7,39 @@ namespace Ibexa\Tests\Integration\Core\Repository; +use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the ContentTypeServiceAuthorization using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser - * - * @group integration - * @group authorization */ +#[CoversClass(ContentTypeService::class)] +#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'createContentType()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'addFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'deleteContentType()')] +#[CoversMethod(ContentTypeService::class, 'copyContentType()')] +#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup()')] +#[Group('integration')] +#[Group('authorization')] class ContentTypeServiceAuthorizationTest extends BaseContentTypeServiceTestCase { /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentTypeGroup */ + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentTypeGroup')] public function testCreateContentTypeGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -65,11 +77,8 @@ public function testCreateContentTypeGroupThrowsUnauthorizedException() /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testUpdateContentTypeGroup */ + #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateContentTypeGroup')] public function testUpdateContentTypeGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -116,11 +125,8 @@ public function testUpdateContentTypeGroupThrowsUnauthorizedException() /** * Test for the deleteContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentTypeGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testDeleteContentTypeGroup */ + #[DependsExternal(ContentTypeServiceTest::class, 'testDeleteContentTypeGroup')] public function testDeleteContentTypeGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -154,11 +160,8 @@ public function testDeleteContentTypeGroupThrowsUnauthorizedException() /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType */ + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentTypeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -212,11 +215,8 @@ public function testCreateContentTypeThrowsUnauthorizedException() /** * Test for the updateContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testUpdateContentTypeDraft */ + #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateContentTypeDraft')] public function testUpdateContentTypeDraftThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -265,11 +265,8 @@ public function testUpdateContentTypeDraftThrowsUnauthorizedException() /** * Test for the addFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testAddFieldDefinition */ + #[DependsExternal(ContentTypeServiceTest::class, 'testAddFieldDefinition')] public function testAddFieldDefinitionThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -322,11 +319,8 @@ public function testAddFieldDefinitionThrowsUnauthorizedException() /** * Test for the removeFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testRemoveFieldDefinition */ + #[DependsExternal(ContentTypeServiceTest::class, 'testRemoveFieldDefinition')] public function testRemoveFieldDefinitionThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -356,11 +350,8 @@ public function testRemoveFieldDefinitionThrowsUnauthorizedException() /** * Test for the updateFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testUpdateFieldDefinition */ + #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateFieldDefinition')] public function testUpdateFieldDefinitionThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -415,11 +406,8 @@ public function testUpdateFieldDefinitionThrowsUnauthorizedException() /** * Test for the publishContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testPublishContentTypeDraft */ + #[DependsExternal(ContentTypeServiceTest::class, 'testPublishContentTypeDraft')] public function testPublishContentTypeDraftThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -447,11 +435,8 @@ public function testPublishContentTypeDraftThrowsUnauthorizedException() /** * Test for the createContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentTypeDraft */ + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentTypeDraft')] public function testCreateContentTypeDraftThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -480,11 +465,8 @@ public function testCreateContentTypeDraftThrowsUnauthorizedException() /** * Test for the deleteContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentType() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testDeleteContentType */ + #[DependsExternal(ContentTypeServiceTest::class, 'testDeleteContentType')] public function testDeleteContentTypeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -513,11 +495,8 @@ public function testDeleteContentTypeThrowsUnauthorizedException() /** * Test for the copyContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCopyContentType */ + #[DependsExternal(ContentTypeServiceTest::class, 'testCopyContentType')] public function testCopyContentTypeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -546,11 +525,8 @@ public function testCopyContentTypeThrowsUnauthorizedException() /** * Test for the assignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::assignContentTypeGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testAssignContentTypeGroup */ + #[DependsExternal(ContentTypeServiceTest::class, 'testAssignContentTypeGroup')] public function testAssignContentTypeGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -580,11 +556,8 @@ public function testAssignContentTypeGroupThrowsUnauthorizedException() /** * Test for the unassignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::unassignContentTypeGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testUnassignContentTypeGroup */ + #[DependsExternal(ContentTypeServiceTest::class, 'testUnassignContentTypeGroup')] public function testUnassignContentTypeGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/ContentTypeServiceTest.php b/tests/integration/Core/Repository/ContentTypeServiceTest.php index e125887a2b..6637b7518d 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -9,6 +9,7 @@ use Exception; use Ibexa\Contracts\Core\FieldType\ValidationError; +use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeFieldDefinitionValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeValidationException; @@ -30,24 +31,67 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\Translation\Message; use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the ContentTypeService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService - * - * @group integration - * @group content-type */ +#[CoversClass(ContentTypeService::class)] +#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupCreateStruct()')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroupByIdentifier()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroups()')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupUpdateStruct()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeCreateStruct()')] +#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionCreateStruct()')] +#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'createContentType()')] +#[CoversMethod(ContentTypeService::class, 'createContentType')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'addFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition')] +#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionUpdateStruct()')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct')] +#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition')] +#[CoversClass(FieldDefinitionUpdateStruct::class)] +#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'loadContentType()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeByIdentifier()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeByRemoteId()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeList()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypes()')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'deleteContentType()')] +#[CoversMethod(ContentTypeService::class, 'copyContentType()')] +#[CoversMethod(ContentTypeService::class, 'copyContentType($contentType, $user)')] +#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'isContentTypeUsed()')] +#[CoversMethod(ContentTypeService::class, 'removeContentTypeTranslation')] +#[CoversMethod(ContentTypeService::class, 'deleteUserDrafts()')] +#[Group('integration')] +#[Group('content-type')] class ContentTypeServiceTest extends BaseContentTypeServiceTestCase { /** * Test for the newContentTypeGroupCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeGroupCreateStruct() - * - * @group user */ + #[Group('user')] public function testNewContentTypeGroupCreateStruct() { $repository = $this->getRepository(); @@ -70,11 +114,8 @@ public function testNewContentTypeGroupCreateStruct() /** * Test for the newContentTypeGroupCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeGroupCreateStruct() - * - * @depends testNewContentTypeGroupCreateStruct */ + #[Depends('testNewContentTypeGroupCreateStruct')] public function testNewContentTypeGroupCreateStructValues($createStruct) { $this->assertPropertiesCorrect( @@ -92,13 +133,9 @@ public function testNewContentTypeGroupCreateStructValues($createStruct) /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends testNewContentTypeGroupCreateStruct - * - * @group user */ + #[Depends('testNewContentTypeGroupCreateStruct')] + #[Group('user')] public function testCreateContentTypeGroup() { $repository = $this->getRepository(); @@ -137,11 +174,8 @@ public function testCreateContentTypeGroup() /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends testCreateContentTypeGroup */ + #[Depends('testCreateContentTypeGroup')] public function testCreateContentTypeGroupStructValues(array $data) { $createStruct = $data['createStruct']; @@ -170,11 +204,8 @@ public function testCreateContentTypeGroupStructValues(array $data) /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends testCreateContentTypeGroupStructValues */ + #[Depends('testCreateContentTypeGroupStructValues')] public function testCreateContentTypeGroupStructLanguageDependentValues(array $data) { $createStruct = $data['createStruct']; @@ -191,11 +222,8 @@ public function testCreateContentTypeGroupStructLanguageDependentValues(array $d /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup - * - * @depends testCreateContentTypeGroup */ + #[Depends('testCreateContentTypeGroup')] public function testCreateContentTypeGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -217,13 +245,9 @@ public function testCreateContentTypeGroupThrowsInvalidArgumentException() /** * Test for the loadContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroup() - * - * @depends testCreateContentTypeGroup - * - * @group user */ + #[Depends('testCreateContentTypeGroup')] + #[Group('user')] public function testLoadContentTypeGroup() { $repository = $this->getRepository(); @@ -263,11 +287,8 @@ public function testLoadSystemContentTypeGroup(): void /** * Test for the loadContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroup() - * - * @depends testLoadContentTypeGroup */ + #[Depends('testLoadContentTypeGroup')] public function testLoadContentTypeGroupStructValues(ContentTypeGroup $group) { $this->assertPropertiesCorrect( @@ -285,8 +306,6 @@ public function testLoadContentTypeGroupStructValues(ContentTypeGroup $group) /** * Test for the loadContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroup() */ public function testLoadContentTypeGroupThrowsNotFoundException() { @@ -300,12 +319,9 @@ public function testLoadContentTypeGroupThrowsNotFoundException() /** * Test for the loadContentTypeGroupByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroupByIdentifier() - * - * @group user - * @group field-type */ + #[Group('user')] + #[Group('field-type')] public function testLoadContentTypeGroupByIdentifier() { $repository = $this->getRepository(); @@ -328,11 +344,8 @@ public function testLoadContentTypeGroupByIdentifier() /** * Test for the loadContentTypeGroupByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroupByIdentifier() - * - * @depends testLoadContentTypeGroupByIdentifier */ + #[Depends('testLoadContentTypeGroupByIdentifier')] public function testLoadContentTypeGroupByIdentifierStructValues(ContentTypeGroup $group) { $repository = $this->getRepository(); @@ -346,11 +359,8 @@ public function testLoadContentTypeGroupByIdentifierStructValues(ContentTypeGrou /** * Test for the loadContentTypeGroupByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroupByIdentifier() - * - * @depends testLoadContentTypeGroupByIdentifier */ + #[Depends('testLoadContentTypeGroupByIdentifier')] public function testLoadContentTypeGroupByIdentifierThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -369,11 +379,8 @@ public function testLoadContentTypeGroupByIdentifierThrowsNotFoundException() /** * Test for the loadContentTypeGroups() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroups() - * - * @depends testCreateContentTypeGroup */ + #[Depends('testCreateContentTypeGroup')] public function testLoadContentTypeGroups() { $repository = $this->getRepository(); @@ -408,11 +415,8 @@ public function testLoadContentTypeGroups() /** * Test for the loadContentTypeGroups() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeGroups() - * - * @depends testLoadContentTypeGroups */ + #[Depends('testLoadContentTypeGroups')] public function testLoadContentTypeGroupsIdentifiers($groups) { self::assertCount(4, $groups); @@ -441,8 +445,6 @@ public function testLoadContentTypeGroupsIdentifiers($groups) /** * Test for the newContentTypeGroupUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeGroupUpdateStruct() */ public function testNewContentTypeGroupUpdateStruct() { @@ -462,11 +464,8 @@ public function testNewContentTypeGroupUpdateStruct() /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends testCreateContentTypeGroup */ + #[Depends('testCreateContentTypeGroup')] public function testUpdateContentTypeGroup() { $repository = $this->getRepository(); @@ -515,11 +514,8 @@ public function testUpdateContentTypeGroup() /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends testUpdateContentTypeGroup */ + #[Depends('testUpdateContentTypeGroup')] public function testUpdateContentTypeGroupStructValues(array $data) { $expectedValues = [ @@ -538,11 +534,8 @@ public function testUpdateContentTypeGroupStructValues(array $data) /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends testUpdateContentTypeGroupStructValues */ + #[Depends('testUpdateContentTypeGroupStructValues')] public function testUpdateContentTypeGroupStructLanguageDependentValues(array $data) { $expectedValues = [ @@ -563,11 +556,8 @@ public function testUpdateContentTypeGroupStructLanguageDependentValues(array $d /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup - * - * @depends testUpdateContentTypeGroup */ + #[Depends('testUpdateContentTypeGroup')] public function testUpdateContentTypeGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -592,11 +582,8 @@ public function testUpdateContentTypeGroupThrowsInvalidArgumentException() /** * Test for the deleteContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentTypeGroup - * - * @depends testLoadContentTypeGroup */ + #[Depends('testLoadContentTypeGroup')] public function testDeleteContentTypeGroup() { $this->expectException(NotFoundException::class); @@ -654,12 +641,9 @@ public function testDeleteContentTypeGroupWithOrphanedContentTypeDrafts(): void /** * Test for the newContentTypeCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeCreateStruct() - * - * @group user - * @group field-type */ + #[Group('user')] + #[Group('field-type')] public function testNewContentTypeCreateStruct() { $repository = $this->getRepository(); @@ -682,11 +666,8 @@ public function testNewContentTypeCreateStruct() /** * Test for the newContentTypeCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeCreateStruct() - * - * @depends testNewContentTypeCreateStruct */ + #[Depends('testNewContentTypeCreateStruct')] public function testNewContentTypeCreateStructValues($createStruct) { $this->assertPropertiesCorrect( @@ -711,12 +692,9 @@ public function testNewContentTypeCreateStructValues($createStruct) /** * Test for the newFieldDefinitionCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newFieldDefinitionCreateStruct() - * - * @group user - * @group field-type */ + #[Group('user')] + #[Group('field-type')] public function testNewFieldDefinitionCreateStruct() { $repository = $this->getRepository(); @@ -737,11 +715,8 @@ public function testNewFieldDefinitionCreateStruct() /** * Test for the newFieldDefinitionCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newFieldDefinitionCreateStruct() - * - * @depends testNewFieldDefinitionCreateStruct */ + #[Depends('testNewFieldDefinitionCreateStruct')] public function testNewFieldDefinitionCreateStructValues($createStruct) { $this->assertPropertiesCorrect( @@ -766,11 +741,8 @@ public function testNewFieldDefinitionCreateStructValues($createStruct) /** * Test for the deleteContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentTypeGroup() - * - * @depends testDeleteContentTypeGroup */ + #[Depends('testDeleteContentTypeGroup')] public function testDeleteContentTypeGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -789,16 +761,12 @@ public function testDeleteContentTypeGroupThrowsInvalidArgumentException() /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testNewContentTypeCreateStruct - * @depends testNewFieldDefinitionCreateStruct - * @depends testLoadContentTypeGroupByIdentifier - * - * @group user - * @group field-type */ + #[Depends('testNewContentTypeCreateStruct')] + #[Depends('testNewFieldDefinitionCreateStruct')] + #[Depends('testLoadContentTypeGroupByIdentifier')] + #[Group('user')] + #[Group('field-type')] public function testCreateContentType() { $repository = $this->getRepository(); @@ -901,12 +869,11 @@ public function testCreateContentType() /** * Test for the createContentType() method struct values. * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType * - * @depends testCreateContentType * * @param array $data */ + #[Depends('testCreateContentType')] public function testCreateContentTypeStructValues(array $data) { $typeCreate = $data['typeCreate']; @@ -1036,11 +1003,8 @@ protected function assertContentTypeGroupsCorrect($expectedGroups, $actualGroups /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIdentifier() { $this->expectException(InvalidArgumentException::class); @@ -1071,11 +1035,8 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIden /** * Test for the createContentType() method trying to create content type with already existing * remoteId. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemoteId() { $this->expectException(InvalidArgumentException::class); @@ -1106,11 +1067,8 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemo /** * Test for the createContentType() method creating content with duplicate field identifiers. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFieldIdentifier() { $this->expectException(InvalidArgumentException::class); @@ -1144,11 +1102,8 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFiel /** * Test for the createContentTypeGroup() method trying to create a content type with already * existing identifier. - * - * @depends testCreateContentType - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateContentTypeIdentifier() { $this->expectException(InvalidArgumentException::class); @@ -1183,11 +1138,8 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateCont /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsContentTypeFieldDefinitionValidationException() { $repository = $this->getRepository(); @@ -1242,11 +1194,8 @@ public function testCreateContentTypeThrowsContentTypeFieldDefinitionValidationE /** * Test for the createContentTypeGroup() method called with no groups. - * - * @depends testCreateContentType - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup */ + #[Depends('testCreateContentType')] public function testCreateContentTypeThrowsInvalidArgumentExceptionGroupsEmpty() { $this->expectException(InvalidArgumentException::class); @@ -1268,8 +1217,6 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionGroupsEmpty() /** * Test for the newContentTypeUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeUpdateStruct() */ public function testNewContentTypeUpdateStruct() { @@ -1291,11 +1238,8 @@ public function testNewContentTypeUpdateStruct() /** * Test for the newContentTypeUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeUpdateStruct() - * - * @depends testNewContentTypeUpdateStruct */ + #[Depends('testNewContentTypeUpdateStruct')] public function testNewContentTypeUpdateStructValues($typeUpdate) { foreach ($typeUpdate as $propertyName => $propertyValue) { @@ -1308,11 +1252,8 @@ public function testNewContentTypeUpdateStructValues($typeUpdate) /** * Test for the loadContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeDraft() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testLoadContentTypeDraft() { $repository = $this->getRepository(); @@ -1334,11 +1275,8 @@ public function testLoadContentTypeDraft() /** * Test for the loadContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeDraft() - * - * @depends testLoadContentTypeDraft */ + #[Depends('testLoadContentTypeDraft')] public function testLoadContentTypeDraftThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -1356,8 +1294,6 @@ public function testLoadContentTypeDraftThrowsNotFoundException() /** * Test for the loadContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeDraft() */ public function testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner() { @@ -1377,8 +1313,6 @@ public function testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner() /** * Test for the loadContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeDraft() */ public function testCanLoadContentTypeDraftEvenIfDiffrentOwner() { @@ -1399,8 +1333,6 @@ public function testCanLoadContentTypeDraftEvenIfDiffrentOwner() /** * Test for the updateContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft() */ public function testUpdateContentTypeDraft() { @@ -1451,11 +1383,8 @@ public function testUpdateContentTypeDraft() /** * Test for the updateContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft() - * - * @depends testUpdateContentTypeDraft */ + #[Depends('testUpdateContentTypeDraft')] public function testUpdateContentTypeDraftStructValues($data) { $originalType = $data['originalType']; @@ -1495,8 +1424,6 @@ public function testUpdateContentTypeDraftStructValues($data) } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -1536,11 +1463,8 @@ public function testUpdateContentTypeDraftWithNewTranslation() /** * Test for the updateContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft() - * - * @depends testUpdateContentTypeDraft */ + #[Depends('testUpdateContentTypeDraft')] public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateIdentifier() { $this->expectException(InvalidArgumentException::class); @@ -1561,11 +1485,8 @@ public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicat /** * Test for the updateContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft() - * - * @depends testUpdateContentTypeDraft */ + #[Depends('testUpdateContentTypeDraft')] public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateRemoteId() { $this->expectException(InvalidArgumentException::class); @@ -1586,11 +1507,8 @@ public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicat /** * Test for the updateContentTypeDraft() method. - * - * @depends testUpdateContentTypeDraft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft */ + #[Depends('testUpdateContentTypeDraft')] public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionNoDraftForAuthenticatedUser() { $this->expectException(InvalidArgumentException::class); @@ -1625,11 +1543,8 @@ public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionNoDraftF * Test for the addFieldDefinition() method. * * @return array - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testAddFieldDefinition() { $repository = $this->getRepository(); @@ -1680,11 +1595,8 @@ public function testAddFieldDefinition() /** * Test for the addFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionStructValues(array $data) { $loadedType = $data['loadedType']; @@ -1708,11 +1620,8 @@ public function testAddFieldDefinitionStructValues(array $data) /** * Test for the addFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFieldIdentifier() { $this->expectException(InvalidArgumentException::class); @@ -1735,11 +1644,8 @@ public function testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFie * * Testing that field definition of non-repeatable field type can not be added multiple * times to the same ContentType. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidationException() { $repository = $this->getRepository(); @@ -1795,11 +1701,8 @@ public function testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidation * * Testing that field definition of non-repeatable field type can not be added multiple * times to the same ContentType. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField() { $this->expectException(BadStateException::class); @@ -1838,8 +1741,6 @@ public function testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField( * * Testing that field definition of non-repeatable field type can not be added multiple * times to the same ContentTypeCreateStruct. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() */ public function testCreateContentThrowsContentTypeValidationException() { @@ -1891,11 +1792,8 @@ public function testCreateContentThrowsContentTypeValidationException() * * Testing adding field definition of the field type that can not be added to the ContentType that * already has Content instances. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionThrowsBadStateExceptionContentInstances() { $this->expectException(BadStateException::class); @@ -1933,11 +1831,8 @@ public function testAddFieldDefinitionThrowsBadStateExceptionContentInstances() * Test for the removeFieldDefinition() method. * * @return array - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition() - * - * @depends testCreateContentType */ + #[Depends('testCreateContentType')] public function testRemoveFieldDefinition() { $repository = $this->getRepository(); @@ -1968,11 +1863,8 @@ public function testRemoveFieldDefinition() * Test for the removeFieldDefinition() method. * * @param array $data - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition() - * - * @depends testRemoveFieldDefinition */ + #[Depends('testRemoveFieldDefinition')] public function testRemoveFieldDefinitionRemoved(array $data) { $removedFieldDefinition = $data['removedFieldDefinition']; @@ -1992,11 +1884,8 @@ public function testRemoveFieldDefinitionRemoved(array $data) /** * Test for the removeFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition() - * - * @depends testRemoveFieldDefinition */ + #[Depends('testRemoveFieldDefinition')] public function testRemoveFieldDefinitionThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2019,11 +1908,8 @@ public function testRemoveFieldDefinitionThrowsInvalidArgumentException() /** * Test removeFieldDefinition() method for field in a different draft throws an exception. - * - * @depends testRemoveFieldDefinition - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition */ + #[Depends('testRemoveFieldDefinition')] public function testRemoveFieldDefinitionThrowsInvalidArgumentExceptionOnWrongDraft() { $this->expectException(InvalidArgumentException::class); @@ -2042,11 +1928,8 @@ public function testRemoveFieldDefinitionThrowsInvalidArgumentExceptionOnWrongDr /** * Test for the removeFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition() - * - * @depends testRemoveFieldDefinition */ + #[Depends('testRemoveFieldDefinition')] public function testRemoveFieldDefinitionRemovesFieldFromContent() { $repository = $this->getRepository(); @@ -2113,11 +1996,8 @@ public function testRemoveFieldDefinitionRemovesFieldFromContent() * Test for the removeFieldDefinition() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeFieldDefinition - * - * @depends testRemoveFieldDefinitionRemovesFieldFromContent */ + #[Depends('testRemoveFieldDefinitionRemovesFieldFromContent')] public function testRemoveFieldDefinitionRemovesFieldFromContentRemoved($data) { list( @@ -2142,11 +2022,8 @@ public function testRemoveFieldDefinitionRemovesFieldFromContentRemoved($data) /** * Test for the addFieldDefinition() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinition */ + #[Depends('testAddFieldDefinition')] public function testAddFieldDefinitionAddsFieldToContent() { $repository = $this->getRepository(); @@ -2234,11 +2111,8 @@ public function testAddFieldDefinitionAddsFieldToContent() * Test for the addFieldDefinition() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::addFieldDefinition() - * - * @depends testAddFieldDefinitionAddsFieldToContent */ + #[Depends('testAddFieldDefinitionAddsFieldToContent')] public function testAddFieldDefinitionAddsFieldToContentAdded(array $data) { list( @@ -2272,8 +2146,6 @@ public function testAddFieldDefinitionAddsFieldToContentAdded(array $data) /** * Test for the newFieldDefinitionUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newFieldDefinitionUpdateStruct() */ public function testNewFieldDefinitionUpdateStruct() { @@ -2296,12 +2168,11 @@ public function testNewFieldDefinitionUpdateStruct() /** * Test for the newFieldDefinitionUpdateStruct() method. * - * @depends testNewFieldDefinitionUpdateStruct * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::newContentTypeUpdateStruct * * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionUpdateStruct $fieldDefinitionUpdateStruct */ + #[Depends('testNewFieldDefinitionUpdateStruct')] public function testNewFieldDefinitionUpdateStructValues($fieldDefinitionUpdateStruct) { foreach ($fieldDefinitionUpdateStruct as $propertyName => $propertyValue) { @@ -2316,11 +2187,8 @@ public function testNewFieldDefinitionUpdateStructValues($fieldDefinitionUpdateS * Test for the updateFieldDefinition() method. * * @return array - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition() - * - * @depends testLoadContentTypeDraft */ + #[Depends('testLoadContentTypeDraft')] public function testUpdateFieldDefinition() { $repository = $this->getRepository(); @@ -2372,9 +2240,6 @@ public function testUpdateFieldDefinition() ]; } - /** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition - */ public function testUpdateFieldDefinitionWithNewTranslation() { $repository = $this->getRepository(); @@ -2440,11 +2305,8 @@ public function testUpdateFieldDefinitionWithNewTranslation() * Test for the updateFieldDefinition() method. * * @param array $data - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition() - * - * @depends testUpdateFieldDefinition */ + #[Depends('testUpdateFieldDefinition')] public function testUpdateFieldDefinitionStructValues(array $data) { $originalField = $data['originalField']; @@ -2473,9 +2335,6 @@ public function testUpdateFieldDefinitionStructValues(array $data) /** * Test for the updateFieldDefinition() method using an empty FieldDefinitionUpdateStruct. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionUpdateStruct - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition */ public function testUpdateFieldDefinitionWithEmptyStruct() { @@ -2502,8 +2361,6 @@ public function testUpdateFieldDefinitionWithEmptyStruct() /** * Test for the updateFieldDefinition() method with already defined field identifier. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition */ public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIdentifierExists() { @@ -2533,11 +2390,8 @@ public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIden /** * Test for the updateFieldDefinition() method trying to update non-existent field. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateFieldDefinition() - * - * @depends testLoadContentTypeDraft */ + #[Depends('testLoadContentTypeDraft')] public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefinedField() { $this->expectException(InvalidArgumentException::class); @@ -2567,11 +2421,8 @@ public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefi /** * Test for the publishContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft() - * - * @depends testLoadContentTypeDraft */ + #[Depends('testLoadContentTypeDraft')] public function testPublishContentTypeDraft() { $repository = $this->getRepository(); @@ -2597,11 +2448,8 @@ public function testPublishContentTypeDraft() /** * Test for the publishContentTypeDraft() method setting proper ContentType nameSchema. - * - * @depends testPublishContentTypeDraft - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft */ + #[Depends('testPublishContentTypeDraft')] public function testPublishContentTypeDraftSetsNameSchema() { $repository = $this->getRepository(); @@ -2635,8 +2483,6 @@ public function testPublishContentTypeDraftSetsNameSchema() /** * Test that publishing content type Draft refreshes list of content types in content type groups. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft */ public function testPublishContentTypeDraftRefreshesContentTypesList() { @@ -2689,11 +2535,8 @@ static function (ContentType $contentType) { /** * Test for the publishContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft() - * - * @depends testPublishContentTypeDraft */ + #[Depends('testPublishContentTypeDraft')] public function testPublishContentTypeDraftThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -2713,11 +2556,8 @@ public function testPublishContentTypeDraftThrowsBadStateException() /** * Test for the createContentTypeGroup() method trying to create content type without any fields. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::publishContentTypeDraft() - * - * @depends testPublishContentTypeDraft */ + #[Depends('testPublishContentTypeDraft')] public function testPublishContentTypeDraftThrowsInvalidArgumentExceptionWithoutFields() { $this->expectException(InvalidArgumentException::class); @@ -2748,14 +2588,10 @@ public function testPublishContentTypeDraftThrowsInvalidArgumentExceptionWithout /** * Test for the loadContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentType() - * - * @depends testCreateContentType - * - * @group user - * @group field-type */ + #[Depends('testCreateContentType')] + #[Group('user')] + #[Group('field-type')] public function testLoadContentType() { $repository = $this->getRepository(); @@ -2779,10 +2615,10 @@ public function testLoadContentType() /** * Test that multi-language logic respects prioritized language list. * - * @dataProvider getPrioritizedLanguageList * * @param string[] $languageCodes */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadContentTypeWithPrioritizedLanguagesList(array $languageCodes) { $repository = $this->getRepository(); @@ -2818,7 +2654,7 @@ public function testLoadContentTypeWithPrioritizedLanguagesList(array $languageC /** * @return array */ - public function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList() { return [ [[]], @@ -2831,11 +2667,8 @@ public function getPrioritizedLanguageList() /** * Test for the loadContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentType() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypeStructValues($userGroupType) { $repository = $this->getRepository(); @@ -2873,11 +2706,8 @@ public function testLoadContentTypeStructValues($userGroupType) /** * Test for the loadContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentType() - * - * @depends testLoadContentTypeStructValues */ + #[Depends('testLoadContentTypeStructValues')] public function testLoadContentTypeFieldDefinitions(APIFieldDefinitionCollection $fieldDefinitions) { $expectedFieldDefinitions = [ @@ -2969,11 +2799,8 @@ static function ($fieldDefinition) { /** * Test for the loadContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentType() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypeThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -2993,13 +2820,9 @@ public function testLoadContentTypeThrowsNotFoundException() * Test for the loadContentTypeByIdentifier() method. * * @return \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByIdentifier() - * - * @depends testLoadContentType - * - * @group user */ + #[Depends('testLoadContentType')] + #[Group('user')] public function testLoadContentTypeByIdentifier() { $repository = $this->getRepository(); @@ -3022,11 +2845,8 @@ public function testLoadContentTypeByIdentifier() * Test for the loadContentTypeByIdentifier() method. * * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType $contentType - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByIdentifier() - * - * @depends testLoadContentTypeByIdentifier */ + #[Depends('testLoadContentTypeByIdentifier')] public function testLoadContentTypeByIdentifierReturnsCorrectInstance($contentType) { $repository = $this->getRepository(); @@ -3040,11 +2860,8 @@ public function testLoadContentTypeByIdentifierReturnsCorrectInstance($contentTy /** * Test for the loadContentTypeByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByIdentifier() - * - * @depends testLoadContentTypeByIdentifier */ + #[Depends('testLoadContentTypeByIdentifier')] public function testLoadContentTypeByIdentifierThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -3061,11 +2878,8 @@ public function testLoadContentTypeByIdentifierThrowsNotFoundException() /** * Test for the loadContentTypeByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByRemoteId() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypeByRemoteId() { $repository = $this->getRepository(); @@ -3089,11 +2903,8 @@ public function testLoadContentTypeByRemoteId() /** * Test for the loadContentTypeByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByRemoteId() - * - * @depends testLoadContentTypeByRemoteId */ + #[Depends('testLoadContentTypeByRemoteId')] public function testLoadContentTypeByRemoteIdReturnsCorrectInstance($contentType) { $repository = $this->getRepository(); @@ -3107,11 +2918,8 @@ public function testLoadContentTypeByRemoteIdReturnsCorrectInstance($contentType /** * Test for the loadContentTypeByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeByRemoteId() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypeByRemoteIdThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -3128,11 +2936,8 @@ public function testLoadContentTypeByRemoteIdThrowsNotFoundException() /** * Test for the loadContentTypeList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypeList() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypeList() { $repository = $this->getRepository(); @@ -3153,11 +2958,8 @@ public function testLoadContentTypeList() /** * Test for the loadContentTypes() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypes() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testLoadContentTypes() { $repository = $this->getRepository(); @@ -3180,11 +2982,8 @@ public function testLoadContentTypes() /** * Test for the loadContentTypes() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::loadContentTypes() - * - * @depends testLoadContentTypes */ + #[Depends('testLoadContentTypes')] public function testLoadContentTypesContent(array $types) { $repository = $this->getRepository(); @@ -3211,11 +3010,8 @@ static function ($a, $b): int { /** * Test for the createContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeDraft() - * - * @depends testLoadContentType */ + #[Depends('testLoadContentType')] public function testCreateContentTypeDraft() { $repository = $this->getRepository(); @@ -3241,11 +3037,8 @@ public function testCreateContentTypeDraft() /** * Test for the createContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeDraft() - * - * @depends testCreateContentTypeDraft */ + #[Depends('testCreateContentTypeDraft')] public function testCreateContentTypeDraftStructValues(array $data) { $originalType = $data['originalType']; @@ -3294,11 +3087,8 @@ public function testCreateContentTypeDraftStructValues(array $data) /** * Test for the createContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeDraft() - * - * @depends testCreateContentTypeDraftStructValues */ + #[Depends('testCreateContentTypeDraftStructValues')] public function testCreateContentTypeDraftStructLanguageDependentValues(array $data) { $originalType = $data['originalType']; @@ -3318,11 +3108,8 @@ public function testCreateContentTypeDraftStructLanguageDependentValues(array $d /** * Test for the createContentTypeDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeDraft() - * - * @depends testCreateContentTypeDraft */ + #[Depends('testCreateContentTypeDraft')] public function testCreateContentTypeDraftThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -3343,11 +3130,8 @@ public function testCreateContentTypeDraftThrowsBadStateException() /** * Test for the deleteContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentType() - * - * @depends testLoadContentTypeByIdentifier */ + #[Depends('testLoadContentTypeByIdentifier')] public function testDeleteContentType() { $this->expectException(NotFoundException::class); @@ -3368,11 +3152,8 @@ public function testDeleteContentType() /** * Test for the deleteContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentType() - * - * @depends testDeleteContentType */ + #[Depends('testDeleteContentType')] public function testDeleteContentTypeThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -3394,11 +3175,8 @@ public function testDeleteContentTypeThrowsBadStateException() * Test for the copyContentType() method. * * @return array - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType() - * - * @depends testLoadContentTypeByIdentifier */ + #[Depends('testLoadContentTypeByIdentifier')] public function testCopyContentType() { $repository = $this->getRepository(); @@ -3441,11 +3219,8 @@ public function testCopyContentType() * Test for the copyContentType() method. * * @param array $data - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType() - * - * @depends testCopyContentType */ + #[Depends('testCopyContentType')] public function testCopyContentTypeStructValues(array $data) { $originalType = $data['originalType']; @@ -3532,11 +3307,8 @@ private function assertCopyContentTypeValues($originalType, $copiedType, $exclud /** * Test for the copyContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType($contentType, $user) - * - * @depends testCopyContentType */ + #[Depends('testCopyContentType')] public function testCopyContentTypeWithSecondParameter() { $repository = $this->getRepository(); @@ -3564,13 +3336,10 @@ public function testCopyContentTypeWithSecondParameter() /** * Test for the assignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::assignContentTypeGroup() - * - * @depends testLoadContentTypeGroupByIdentifier - * @depends testLoadContentTypeByIdentifier - * @depends testLoadContentType */ + #[Depends('testLoadContentTypeGroupByIdentifier')] + #[Depends('testLoadContentTypeByIdentifier')] + #[Depends('testLoadContentType')] public function testAssignContentTypeGroup() { $repository = $this->getRepository(); @@ -3601,11 +3370,8 @@ public function testAssignContentTypeGroup() /** * Test for the assignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::assignContentTypeGroup() - * - * @depends testAssignContentTypeGroup */ + #[Depends('testAssignContentTypeGroup')] public function testAssignContentTypeGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -3627,11 +3393,8 @@ public function testAssignContentTypeGroupThrowsInvalidArgumentException() /** * Test for the unassignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::unassignContentTypeGroup() - * - * @depends testAssignContentTypeGroup */ + #[Depends('testAssignContentTypeGroup')] public function testUnassignContentTypeGroup() { $repository = $this->getRepository(); @@ -3666,11 +3429,8 @@ public function testUnassignContentTypeGroup() /** * Test for the unassignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::unassignContentTypeGroup() - * - * @depends testUnassignContentTypeGroup */ + #[Depends('testUnassignContentTypeGroup')] public function testUnassignContentTypeGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -3690,11 +3450,8 @@ public function testUnassignContentTypeGroupThrowsInvalidArgumentException() /** * Test for the unassignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::unassignContentTypeGroup() - * - * @depends testUnassignContentTypeGroup */ + #[Depends('testUnassignContentTypeGroup')] public function testUnassignContentTypeGroupThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -3716,12 +3473,9 @@ public function testUnassignContentTypeGroupThrowsBadStateException() /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends testLoadContentTypeGroup - * @depends testCreateContentTypeGroup */ + #[Depends('testLoadContentTypeGroup')] + #[Depends('testCreateContentTypeGroup')] public function testCreateContentTypeGroupInTransactionWithRollback() { $repository = $this->getRepository(); @@ -3763,12 +3517,9 @@ public function testCreateContentTypeGroupInTransactionWithRollback() /** * Test for the createContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentTypeGroup() - * - * @depends testLoadContentTypeGroup - * @depends testCreateContentTypeGroup */ + #[Depends('testLoadContentTypeGroup')] + #[Depends('testCreateContentTypeGroup')] public function testCreateContentTypeGroupInTransactionWithCommit() { $repository = $this->getRepository(); @@ -3806,12 +3557,9 @@ public function testCreateContentTypeGroupInTransactionWithCommit() /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends testUpdateContentTypeGroup - * @depends testLoadContentTypeGroupByIdentifier */ + #[Depends('testUpdateContentTypeGroup')] + #[Depends('testLoadContentTypeGroupByIdentifier')] public function testUpdateContentTypeGroupInTransactionWithRollback() { $repository = $this->getRepository(); @@ -3850,12 +3598,9 @@ public function testUpdateContentTypeGroupInTransactionWithRollback() /** * Test for the updateContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeGroup() - * - * @depends testUpdateContentTypeGroup - * @depends testLoadContentTypeGroupByIdentifier */ + #[Depends('testUpdateContentTypeGroup')] + #[Depends('testLoadContentTypeGroupByIdentifier')] public function testUpdateContentTypeGroupInTransactionWithCommit() { $repository = $this->getRepository(); @@ -3896,12 +3641,9 @@ public function testUpdateContentTypeGroupInTransactionWithCommit() /** * Test for the deleteContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentTypeGroup() - * - * @depends testDeleteContentTypeGroup - * @depends testLoadContentTypeGroupByIdentifierThrowsNotFoundException */ + #[Depends('testDeleteContentTypeGroup')] + #[Depends('testLoadContentTypeGroupByIdentifierThrowsNotFoundException')] public function testDeleteContentTypeGroupWithRollback() { $repository = $this->getRepository(); @@ -3945,12 +3687,9 @@ public function testDeleteContentTypeGroupWithRollback() /** * Test for the deleteContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentTypeGroup() - * - * @depends testDeleteContentTypeGroup - * @depends testLoadContentTypeGroupByIdentifierThrowsNotFoundException */ + #[Depends('testDeleteContentTypeGroup')] + #[Depends('testLoadContentTypeGroupByIdentifierThrowsNotFoundException')] public function testDeleteContentTypeGroupWithCommit() { $repository = $this->getRepository(); @@ -3994,12 +3733,9 @@ public function testDeleteContentTypeGroupWithCommit() /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testCreateContentType - * @depends testLoadContentTypeByIdentifierThrowsNotFoundException */ + #[Depends('testCreateContentType')] + #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] public function testCreateContentTypeInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4055,12 +3791,9 @@ public function testCreateContentTypeInTransactionWithRollback() /** * Test for the createContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::createContentType() - * - * @depends testCreateContentType - * @depends testLoadContentTypeByIdentifierThrowsNotFoundException */ + #[Depends('testCreateContentType')] + #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] public function testCreateContentTypeInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4112,13 +3845,10 @@ public function testCreateContentTypeInTransactionWithCommit() /** * Test for the copyContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType() - * - * @depends testCopyContentType - * @depends testLoadContentTypeByIdentifier - * @depends testLoadContentTypeThrowsNotFoundException */ + #[Depends('testCopyContentType')] + #[Depends('testLoadContentTypeByIdentifier')] + #[Depends('testLoadContentTypeThrowsNotFoundException')] public function testCopyContentTypeInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4157,13 +3887,10 @@ public function testCopyContentTypeInTransactionWithRollback() /** * Test for the copyContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::copyContentType() - * - * @depends testCopyContentType - * @depends testLoadContentTypeByIdentifier - * @depends testLoadContentTypeThrowsNotFoundException */ + #[Depends('testCopyContentType')] + #[Depends('testLoadContentTypeByIdentifier')] + #[Depends('testLoadContentTypeThrowsNotFoundException')] public function testCopyContentTypeInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4198,12 +3925,9 @@ public function testCopyContentTypeInTransactionWithCommit() /** * Test for the deleteContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentType() - * - * @depends testCopyContentType - * @depends testLoadContentTypeByIdentifierThrowsNotFoundException */ + #[Depends('testCopyContentType')] + #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] public function testDeleteContentTypeInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4238,12 +3962,9 @@ public function testDeleteContentTypeInTransactionWithRollback() /** * Test for the deleteContentType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteContentType() - * - * @depends testCopyContentType - * @depends testLoadContentTypeByIdentifierThrowsNotFoundException */ + #[Depends('testCopyContentType')] + #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] public function testDeleteContentTypeInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4282,11 +4003,8 @@ public function testDeleteContentTypeInTransactionWithCommit() /** * Test for the assignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::assignContentTypeGroup() - * - * @depends testAssignContentTypeGroup */ + #[Depends('testAssignContentTypeGroup')] public function testAssignContentTypeGroupInTransactionWithRollback() { $repository = $this->getRepository(); @@ -4329,11 +4047,8 @@ public function testAssignContentTypeGroupInTransactionWithRollback() /** * Test for the assignContentTypeGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::assignContentTypeGroup() - * - * @depends testAssignContentTypeGroup */ + #[Depends('testAssignContentTypeGroup')] public function testAssignContentTypeGroupInTransactionWithCommit() { $repository = $this->getRepository(); @@ -4376,8 +4091,6 @@ public function testAssignContentTypeGroupInTransactionWithCommit() /** * Test for the isContentTypeUsed() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::isContentTypeUsed() */ public function testIsContentTypeUsed() { @@ -4398,8 +4111,6 @@ public function testIsContentTypeUsed() } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeContentTypeTranslation - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -4440,8 +4151,6 @@ public function testRemoveContentTypeTranslation() } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::removeContentTypeTranslation - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -4503,8 +4212,6 @@ public function testRemoveContentTypeTranslationWithMultilingualData() } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::updateContentTypeDraft - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -4635,8 +4342,6 @@ public function testUpdateContentTypeDraftWithNewTranslationWithMultilingualData /** * Test for the deleteUserDrafts() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentTypeService::deleteUserDrafts() */ public function testDeleteUserDrafts() { diff --git a/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php b/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php index 6342258050..638e87f430 100644 --- a/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php @@ -13,13 +13,13 @@ use Ibexa\Core\FieldType\Author\AuthorCollection; use Ibexa\Core\FieldType\Author\Type; use Ibexa\Core\FieldType\Author\Value as AuthorValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class AuthorIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { /** @@ -188,7 +188,7 @@ public function assertFieldDataLoadedCorrect(Field $field) * * @return array[] */ - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ ['Sindelfingen', InvalidArgumentException::class], @@ -248,9 +248,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -307,7 +307,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -340,7 +340,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -366,7 +366,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new AuthorValue()], @@ -374,11 +374,21 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new AuthorValue( + [ + new Author( + [ + 'id' => 23, + 'name' => 'Hans Mueller', + 'email' => 'hans@example.com', + ] + ), + ] + ), ], [ new AuthorValue( @@ -396,7 +406,7 @@ public function providerForTestIsNotEmptyValue() ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { return [ new Author( @@ -409,7 +419,7 @@ protected function getValidSearchValueOne() ]; } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { return [ new Author( @@ -422,17 +432,17 @@ protected function getValidSearchValueTwo() ]; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { return 'Ferdinand'; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { return 'Greta'; } - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return [ [ @@ -453,7 +463,7 @@ protected function getAdditionallyIndexedFieldData() ]; } - protected function getValidMultivaluedSearchValuesOne() + protected static function getValidMultivaluedSearchValuesOne() { return [ new Author( @@ -473,7 +483,7 @@ protected function getValidMultivaluedSearchValuesOne() ]; } - protected function getValidMultivaluedSearchValuesTwo() + protected static function getValidMultivaluedSearchValuesTwo() { return [ new Author( @@ -500,17 +510,17 @@ protected function getValidMultivaluedSearchValuesTwo() ]; } - protected function getMultivaluedSearchTargetValuesOne() + protected static function getMultivaluedSearchTargetValuesOne() { return ['Antoinette', 'Ferdinand']; } - protected function getMultivaluedSearchTargetValuesTwo() + protected static function getMultivaluedSearchTargetValuesTwo() { return ['Greta', 'Leopold', 'Maximilian']; } - protected function getAdditionallyIndexedMultivaluedFieldData() + protected static function getAdditionallyIndexedMultivaluedFieldData() { return [ [ @@ -526,7 +536,7 @@ protected function getAdditionallyIndexedMultivaluedFieldData() ]; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['Ferdinand', 'Greta'], diff --git a/tests/integration/Core/Repository/FieldType/BaseBinaryFileIntegrationTestCaseCase.php b/tests/integration/Core/Repository/FieldType/BaseBinaryFileIntegrationTestCaseCase.php index ce0eafd88a..c89ee12e42 100644 --- a/tests/integration/Core/Repository/FieldType/BaseBinaryFileIntegrationTestCaseCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseBinaryFileIntegrationTestCaseCase.php @@ -35,30 +35,30 @@ abstract public function asserFieldValueIsCorrectInstance(Field $field): void; /** * @phpstan-return TFixtureDataHash */ - abstract protected function getFixtureData(): array; + abstract protected static function getFixtureData(): array; - abstract protected function buildBinaryFileValue(string $fileId): BinaryBaseValue; + abstract protected static function buildBinaryFileValue(string $fileId): BinaryBaseValue; /** * @phpstan-return list */ - abstract public function provideFromHashData(): array; + abstract public static function provideFromHashData(): array; /** * @phpstan-return list */ - abstract public function provideToHashData(): array; + abstract public static function provideToHashData(): array; /** * @phpstan-param TBaseBinaryFileFieldValueHash $fileFieldValueData */ - abstract protected function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue; + abstract protected static function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue; public function assertFieldDataLoadedCorrect(Field $field): void { $this->asserFieldValueIsCorrectInstance($field); - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); $this->assertCreatedUpdatedBinaryFieldDataLoadedCorrectly($fixtureData['create'], $field); } @@ -66,7 +66,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void { $this->asserFieldValueIsCorrectInstance($field); - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); $this->assertCreatedUpdatedBinaryFieldDataLoadedCorrectly($fixtureData['update'], $field); } @@ -137,7 +137,7 @@ public function getFieldName(): string /** * @return list */ - public function provideInvalidCreationFieldData(): array + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -147,7 +147,7 @@ public function provideInvalidCreationFieldData(): array InvalidArgumentValue::class, ], [ - $this->buildBinaryFileValue(self::FOO_BAR_SAMPLE_FILE_PATH), + static::buildBinaryFileValue(self::FOO_BAR_SAMPLE_FILE_PATH), InvalidArgumentValue::class, ], ]; @@ -155,26 +155,26 @@ public function provideInvalidCreationFieldData(): array public function getValidCreationFieldData(): BinaryBaseValue { - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); - return $this->buildBinaryFileValueFromFixtureData($fixtureData['create']); + return static::buildBinaryFileValueFromFixtureData($fixtureData['create']); } public function getValidUpdateFieldData(): BinaryBaseValue { - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); - return $this->buildBinaryFileValueFromFixtureData($fixtureData['update']); + return static::buildBinaryFileValueFromFixtureData($fixtureData['update']); } /** * @return list> */ - public function providerForTestIsNotEmptyValue(): array + public static function providerForTestIsNotEmptyValue(): array { return [ [ - $this->getValidCreationFieldData(), + static::buildBinaryFileValueFromFixtureData(static::getFixtureData()['create']), ], ]; } @@ -182,9 +182,9 @@ public function providerForTestIsNotEmptyValue(): array /** * @return list */ - public function provideInvalidUpdateFieldData(): array + public static function provideInvalidUpdateFieldData(): array { - return $this->provideInvalidCreationFieldData(); + return static::provideInvalidCreationFieldData(); } protected function getStoragePrefix(): string @@ -197,17 +197,17 @@ protected function getStoragePrefix(): string return $configValue; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { - $value = $this->getValidSearchValueOne(); + $value = static::getValidSearchValueOne(); // ensure case-insensitivity return strtoupper($value->fileName); } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { - $value = $this->getValidSearchValueTwo(); + $value = static::getValidSearchValueTwo(); // ensure case-insensitivity return strtoupper($value->fileName); @@ -216,13 +216,13 @@ protected function getSearchTargetValueTwo(): string /** * @return list> */ - protected function getAdditionallyIndexedFieldData(): array + protected static function getAdditionallyIndexedFieldData(): array { return [ [ 'file_size', - $this->getValidSearchValueOne()->fileSize, - $this->getValidSearchValueTwo()->fileSize, + static::getValidSearchValueOne()->fileSize, + static::getValidSearchValueTwo()->fileSize, ], [ 'mime_type', diff --git a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php index 0dc30df3ab..db3a50e84a 100644 --- a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php @@ -8,12 +8,18 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; use Ibexa\Contracts\Core\Repository; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeFieldDefinitionValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; +use Ibexa\Core\FieldType\FieldType; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for legacy storage field types. @@ -37,11 +43,13 @@ * - Test toHash * - Test fromHash * - * @group integration - * @group field-type * * @todo Finalize dependencies to other tests (including groups!) */ +#[CoversMethod(FieldType::class, 'isEmptyValue')] +#[CoversMethod(ContentService::class, 'deleteTranslation')] +#[Group('integration')] +#[Group('field-type')] abstract class BaseIntegrationTestCase extends BaseTestCase { /** @@ -151,7 +159,7 @@ abstract public function assertFieldDataLoadedCorrect(Field $field); * * @return array[] */ - abstract public function provideInvalidCreationFieldData(); + abstract public static function provideInvalidCreationFieldData(); /** * Get valid field data for updating content. @@ -191,7 +199,7 @@ abstract public function assertUpdatedFieldDataLoadedCorrect(Field $field); * * @return array[] */ - abstract public function provideInvalidUpdateFieldData(); + abstract public static function provideInvalidUpdateFieldData(); /** * Asserts the the field data was loaded correctly. @@ -223,7 +231,7 @@ abstract public function assertCopiedFieldDataLoadedCorrectly(Field $field); * * @return array */ - abstract public function provideToHashData(); + abstract public static function provideToHashData(); /** * Get hashes and their respective converted values. @@ -245,7 +253,7 @@ abstract public function provideToHashData(); * * @return array */ - abstract public function provideFromHashData(); + abstract public static function provideFromHashData(); /** * Method called after content creation. @@ -383,32 +391,33 @@ protected function getOverride($key, array $overrideValues, $default) } /** - * @covers \Ibexa\Core\FieldType\FieldType::isEmptyValue - * - * @dataProvider providerForTestIsEmptyValue + * Sentinel value a {@see self::providerForTestIsEmptyValue()} override returns when the + * field type has no "empty" representation, since PHPUnit 11 treats an empty data provider + * as a hard error rather than a skip. */ + protected const NO_EMPTY_VALUE_DATA = '__no_empty_value_data__'; + + #[DataProvider('providerForTestIsEmptyValue')] public function testIsEmptyValue($value) { + if ($value === self::NO_EMPTY_VALUE_DATA) { + self::markTestSkipped('This field type has no "empty" value representation.'); + } + self::assertTrue($this->getRepository()->getFieldTypeService()->getFieldType($this->getTypeName())->isEmptyValue($value)); } - abstract public function providerForTestIsEmptyValue(); + abstract public static function providerForTestIsEmptyValue(); - /** - * @covers \Ibexa\Core\FieldType\FieldType::isEmptyValue - * - * @dataProvider providerForTestIsNotEmptyValue - */ + #[DataProvider('providerForTestIsNotEmptyValue')] public function testIsNotEmptyValue($value) { self::assertFalse($this->getRepository()->getFieldTypeService()->getFieldType($this->getTypeName())->isEmptyValue($value)); } - abstract public function providerForTestIsNotEmptyValue(); + abstract public static function providerForTestIsNotEmptyValue(); - /** - * @depends testCreateContentType - */ + #[Depends('testCreateContentType')] public function testContentTypeField($contentType) { self::assertSame( @@ -417,9 +426,7 @@ public function testContentTypeField($contentType) ); } - /** - * @depends testCreateContentType - */ + #[Depends('testCreateContentType')] public function testLoadContentTypeField() { $contentType = $this->testCreateContentType(); @@ -430,9 +437,7 @@ public function testLoadContentTypeField() return $contentTypeService->loadContentType($contentType->id); } - /** - * @depends testLoadContentTypeField - */ + #[Depends('testLoadContentTypeField')] public function testLoadContentTypeFieldType($contentType) { self::assertSame( @@ -455,9 +460,7 @@ public function testSettingsSchema() ); } - /** - * @depends testLoadContentTypeFieldType - */ + #[Depends('testLoadContentTypeFieldType')] public function testLoadContentTypeFieldData(FieldDefinition $fieldDefinition) { self::assertEquals( @@ -477,9 +480,7 @@ public function testLoadContentTypeFieldData(FieldDefinition $fieldDefinition) ); } - /** - * @depends testCreateContentType - */ + #[Depends('testCreateContentType')] public function testCreateContentTypeFailsWithInvalidFieldSettings() { $this->expectException(ContentTypeFieldDefinitionValidationException::class); @@ -502,9 +503,7 @@ public function testValidatorSchema() ); } - /** - * @depends testCreateContentType - */ + #[Depends('testCreateContentType')] public function testCreateContentTypeFailsWithInvalidValidatorConfiguration() { $this->expectException(ContentTypeFieldDefinitionValidationException::class); @@ -515,9 +514,7 @@ public function testCreateContentTypeFailsWithInvalidValidatorConfiguration() ); } - /** - * @depends testLoadContentTypeField - */ + #[Depends('testLoadContentTypeField')] public function testCreateContent() { return $this->createContent($this->getValidCreationFieldData()); @@ -597,9 +594,7 @@ protected function createMultilingualContent(array $names, array $fieldData, arr return $contentService->createContent($createStruct, $locationCreateStructs); } - /** - * @depends testCreateContent - */ + #[Depends('testCreateContent')] public function testCreatedFieldType($content) { foreach ($content->getFields() as $field) { @@ -611,9 +606,7 @@ public function testCreatedFieldType($content) self::fail('Custom field not found.'); } - /** - * @depends testCreateContent - */ + #[Depends('testCreateContent')] public function testPublishContent() { $draft = $this->testCreateContent(); @@ -628,9 +621,7 @@ public function testPublishContent() return $contentService->publishVersion($draft->getVersionInfo()); } - /** - * @depends testPublishContent - */ + #[Depends('testPublishContent')] public function testPublishedFieldType($content) { foreach ($content->getFields() as $field) { @@ -642,9 +633,7 @@ public function testPublishedFieldType($content) self::fail('Custom field not found.'); } - /** - * @depends testPublishContent - */ + #[Depends('testPublishContent')] public function testPublishedName(Content $content) { self::assertEquals( @@ -653,9 +642,7 @@ public function testPublishedName(Content $content) ); } - /** - * @depends testCreateContent - */ + #[Depends('testCreateContent')] public function testLoadField() { $content = $this->testCreateContent(); @@ -666,9 +653,7 @@ public function testLoadField() return $contentService->loadContent($content->contentInfo->id); } - /** - * @depends testLoadField - */ + #[Depends('testLoadField')] public function testLoadFieldType() { $content = $this->testCreateContent(); @@ -682,9 +667,7 @@ public function testLoadFieldType() self::fail('Custom field not found.'); } - /** - * @depends testLoadFieldType - */ + #[Depends('testLoadFieldType')] public function testLoadExternalData() { $this->assertFieldDataLoadedCorrect($this->testLoadFieldType()); @@ -701,10 +684,10 @@ public function testCreateContentWithEmptyFieldValue() /** * Test that publishing (and thus indexing) content with an empty field value does not fail. * - * @depends testCreateContentWithEmptyFieldValue * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ + #[Depends('testCreateContentWithEmptyFieldValue')] public function testPublishContentWithEmptyFieldValue(Content $contentDraft) { $this->getRepository(false)->getContentService()->publishVersion( @@ -712,9 +695,7 @@ public function testPublishContentWithEmptyFieldValue(Content $contentDraft) ); } - /** - * @depends testCreateContentWithEmptyFieldValue - */ + #[Depends('testCreateContentWithEmptyFieldValue')] public function testCreatedEmptyFieldValue($content) { foreach ($content->getFields() as $field) { @@ -726,11 +707,8 @@ public function testCreatedEmptyFieldValue($content) self::fail('Custom field not found.'); } - /** - * @depends testCreateContentWithEmptyFieldValue - * - * @group xx - */ + #[Depends('testCreateContentWithEmptyFieldValue')] + #[Group('xx')] public function testLoadEmptyFieldValue() { $content = $this->testCreateContentWithEmptyFieldValue(); @@ -741,9 +719,7 @@ public function testLoadEmptyFieldValue() return $contentService->loadContent($content->contentInfo->id); } - /** - * @depends testLoadEmptyFieldValue - */ + #[Depends('testLoadEmptyFieldValue')] public function testLoadEmptyFieldValueType($content) { foreach ($content->getFields() as $field) { @@ -755,9 +731,7 @@ public function testLoadEmptyFieldValueType($content) self::fail('Custom field not found.'); } - /** - * @depends testLoadEmptyFieldValueType - */ + #[Depends('testLoadEmptyFieldValueType')] public function testLoadEmptyFieldValueData($field) { /** @var \Ibexa\Core\FieldType\FieldType $fieldType */ @@ -775,9 +749,7 @@ public function testLoadEmptyFieldValueData($field) ); } - /** - * @depends testLoadFieldType - */ + #[Depends('testLoadFieldType')] public function testUpdateField() { return $this->updateContent($this->getValidUpdateFieldData()); @@ -811,9 +783,7 @@ public function updateContent($fieldData, $setField = true) return $contentService->updateContent($draft->versionInfo, $updateStruct); } - /** - * @depends testUpdateField - */ + #[Depends('testUpdateField')] public function testUpdateTypeFieldStillAvailable($content) { foreach ($content->getFields() as $field) { @@ -825,9 +795,7 @@ public function testUpdateTypeFieldStillAvailable($content) self::fail('Custom field not found.'); } - /** - * @depends testUpdateTypeFieldStillAvailable - */ + #[Depends('testUpdateTypeFieldStillAvailable')] public function testUpdatedDataCorrect(Field $field) { $this->assertUpdatedFieldDataLoadedCorrect($field); @@ -841,9 +809,7 @@ public function testUpdateFieldNoNewContent() return $this->updateContent(null, false); } - /** - * @depends testUpdateFieldNoNewContent - */ + #[Depends('testUpdateFieldNoNewContent')] public function testUpdateNoNewContentTypeFieldStillAvailable($content) { foreach ($content->getFields() as $field) { @@ -855,17 +821,13 @@ public function testUpdateNoNewContentTypeFieldStillAvailable($content) self::fail('Custom field not found.'); } - /** - * @depends testUpdateNoNewContentTypeFieldStillAvailable - */ + #[Depends('testUpdateNoNewContentTypeFieldStillAvailable')] public function testUpdatedNoNewContentDataCorrect(Field $field) { $this->assertFieldDataLoadedCorrect($field); } - /** - * @depends testCreateContent - */ + #[Depends('testCreateContent')] public function testCopyField($content) { $content = $this->testCreateContent(); @@ -887,9 +849,7 @@ public function testCopyField($content) return $contentService->loadContent($copied->id); } - /** - * @depends testCopyField - */ + #[Depends('testCopyField')] public function testCopiedFieldType($content) { foreach ($content->getFields() as $field) { @@ -901,17 +861,13 @@ public function testCopiedFieldType($content) self::fail('Custom field not found.'); } - /** - * @depends testCopiedFieldType - */ + #[Depends('testCopiedFieldType')] public function testCopiedExternalData(Field $field) { $this->assertCopiedFieldDataLoadedCorrectly($field); } - /** - * @depends testCopyField - */ + #[Depends('testCopyField')] public function testDeleteContent($content) { $this->expectException(NotFoundException::class); @@ -930,9 +886,8 @@ public function testDeleteContent($content) * Tests failing content creation. * * @param mixed $failingValue - * - * @dataProvider provideInvalidCreationFieldData */ + #[DataProvider('provideInvalidCreationFieldData')] public function testCreateContentFails($failingValue, ?string $expectedException): void { $this->expectException($expectedException); @@ -944,9 +899,8 @@ public function testCreateContentFails($failingValue, ?string $expectedException * * @param mixed $failingValue * @param string $expectedException - * - * @dataProvider provideInvalidUpdateFieldData */ + #[DataProvider('provideInvalidUpdateFieldData')] public function testUpdateContentFails($failingValue, $expectedException) { $this->expectException($expectedException); @@ -1025,9 +979,7 @@ public function testAddFieldDefinition() ); } - /** - * @dataProvider provideToHashData - */ + #[DataProvider('provideToHashData')] public function testToHash($value, $expectedHash) { $repository = $this->getRepository(); @@ -1041,13 +993,11 @@ public function testToHash($value, $expectedHash) } /** - * @depends testCreateContent - * - * @dataProvider provideFromHashData - * * @todo: Requires correct registered FieldTypeService, needs to be * maintained! */ + #[Depends('testCreateContent')] + #[DataProvider('provideFromHashData')] public function testFromHash($hash, $expectedValue) { $repository = $this->getRepository(); @@ -1149,8 +1099,6 @@ public function getValidMultilingualFieldData(array $languageCodes) /** * Test that removing Translation from all Versions works for data from a Field Type. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteTranslation */ public function testDeleteTranslation() { diff --git a/tests/integration/Core/Repository/FieldType/BinaryFileIntegrationTest.php b/tests/integration/Core/Repository/FieldType/BinaryFileIntegrationTest.php index abcaf4b84f..cb24db44b7 100644 --- a/tests/integration/Core/Repository/FieldType/BinaryFileIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/BinaryFileIntegrationTest.php @@ -12,16 +12,16 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\FieldType\BinaryBase\Value as BinaryBaseValue; use Ibexa\Core\FieldType\BinaryFile\Value as BinaryFileValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] final class BinaryFileIntegrationTest extends BaseBinaryFileIntegrationTestCaseCase { - protected function getFixtureData(): array + protected static function getFixtureData(): array { return [ 'create' => [ @@ -69,7 +69,7 @@ public function getValidFieldSettings(): array return []; } - protected function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue + protected static function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue { return new BinaryFileValue($fileFieldValueData); } @@ -82,7 +82,7 @@ public function asserFieldValueIsCorrectInstance(Field $field): void ); } - protected function buildBinaryFileValue(string $fileId): BinaryBaseValue + protected static function buildBinaryFileValue(string $fileId): BinaryBaseValue { return new BinaryFileValue( [ @@ -91,15 +91,15 @@ protected function buildBinaryFileValue(string $fileId): BinaryBaseValue ); } - public function provideToHashData(): array + public static function provideToHashData(): array { - $fixture = $this->getFixtureData(); + $fixture = static::getFixtureData(); $expected = $fixture['create']; $expected['downloadCount'] = 0; $expected['uri'] = $expected['inputUri']; $expected['path'] = $expected['inputUri']; - $fieldValue = $this->getValidCreationFieldData(); + $fieldValue = static::buildBinaryFileValueFromFixtureData($fixture['create']); $fieldValue->uri = $expected['uri']; return [ @@ -110,13 +110,13 @@ public function provideToHashData(): array ]; } - public function provideFromHashData(): array + public static function provideFromHashData(): array { - $fixture = $this->getFixtureData(); + $fixture = static::getFixtureData(); $fixture['create']['downloadCount'] = 0; $fixture['create']['uri'] = $fixture['create']['inputUri']; - $fieldValue = $this->getValidCreationFieldData(); + $fieldValue = static::buildBinaryFileValueFromFixtureData($fixture['create']); $fieldValue->uri = $fixture['create']['uri']; return [ @@ -130,7 +130,7 @@ public function provideFromHashData(): array /** * @return list> */ - public function providerForTestIsEmptyValue(): array + public static function providerForTestIsEmptyValue(): array { return [ [new BinaryFileValue()], @@ -138,7 +138,7 @@ public function providerForTestIsEmptyValue(): array ]; } - protected function getValidSearchValueOne(): BinaryFileValue + protected static function getValidSearchValueOne(): BinaryFileValue { return new BinaryFileValue( [ @@ -164,7 +164,7 @@ protected function checkSearchEngineSupport(): void } } - protected function getValidSearchValueTwo(): BinaryFileValue + protected static function getValidSearchValueTwo(): BinaryFileValue { return new BinaryFileValue( [ diff --git a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php index 55929544fa..49706d34b1 100644 --- a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -16,13 +17,16 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Checkbox\Value as CheckboxValue; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[CoversMethod(SearchService::class, 'findContent')] +#[Group('integration')] +#[Group('field-type')] class CheckboxIntegrationTest extends SearchBaseIntegrationTestCase { private const IS_ACTIVE_FIELD_DEF_IDENTIFIER = 'is_active'; @@ -145,7 +149,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -188,9 +192,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -237,7 +241,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -254,7 +258,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -264,15 +268,16 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { - return []; + // Checkbox has no "empty" value: it is always either true or false. + return [[self::NO_EMPTY_VALUE_DATA]]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ - [$this->getValidCreationFieldData()], + [new CheckboxValue(true)], [new CheckboxValue(true)], [new CheckboxValue()], [new CheckboxValue(null)], @@ -280,31 +285,31 @@ public function providerForTestIsNotEmptyValue() ]; } - protected function getValidSearchValueOne(): bool + protected static function getValidSearchValueOne(): bool { return false; } - protected function getValidSearchValueTwo(): bool + protected static function getValidSearchValueTwo(): bool { return true; } - protected function getSearchTargetValueOne() + protected static function getSearchTargetValueOne() { // Handling Legacy Search Engine, which stores Checkbox value as integer - if ($this->getSetupFactory() instanceof Legacy) { - return (int)$this->getValidSearchValueOne(); + if (static::resolveSetupFactory() instanceof Legacy) { + return (int)static::getValidSearchValueOne(); } return parent::getSearchTargetValueOne(); } - protected function getSearchTargetValueTwo() + protected static function getSearchTargetValueTwo() { // Handling Legacy Search Engine, which stores Checkbox value as integer - if ($this->getSetupFactory() instanceof Legacy) { - return (int)$this->getValidSearchValueTwo(); + if (static::resolveSetupFactory() instanceof Legacy) { + return (int)static::getValidSearchValueTwo(); } return parent::getSearchTargetValueTwo(); @@ -313,7 +318,7 @@ protected function getSearchTargetValueTwo() /** * Data corresponds to Content items created by {@see createCheckboxContentItems}. */ - public function getDataForTestFindContentFieldCriterion(): iterable + public static function getDataForTestFindContentFieldCriterion(): iterable { // there are 2 Content items created, one with is_active = true, the other one with is_active = false yield 'active' => [true]; @@ -321,14 +326,11 @@ public function getDataForTestFindContentFieldCriterion(): iterable } /** - * @dataProvider getDataForTestFindContentFieldCriterion - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('getDataForTestFindContentFieldCriterion')] public function testFindContentFieldCriterion(bool $isActive): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php index d0539fea37..e1c3897807 100644 --- a/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\Country\Value as CountryValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class CountryIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { /** @@ -162,7 +162,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -242,9 +242,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -298,7 +298,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -330,7 +330,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -355,7 +355,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new CountryValue()], @@ -363,36 +363,45 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new CountryValue( + [ + 'BE' => [ + 'Name' => 'Belgium', + 'Alpha2' => 'BE', + 'Alpha3' => 'BEL', + 'IDC' => 32, + ], + ] + ), ], ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { return ['Andorra']; } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { return ['Trinidad and Tobago']; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { return 'Andorra'; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { return 'Trinidad and Tobago'; } - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return [ [ @@ -423,17 +432,17 @@ protected function getAdditionallyIndexedFieldData() ]; } - protected function getValidMultivaluedSearchValuesOne() + protected static function getValidMultivaluedSearchValuesOne() { return ['Andorra', 'Bolivia']; } - protected function getValidMultivaluedSearchValuesTwo() + protected static function getValidMultivaluedSearchValuesTwo() { return ['Syrian Arab Republic', 'Trinidad and Tobago']; } - protected function getAdditionallyIndexedMultivaluedFieldData() + protected static function getAdditionallyIndexedMultivaluedFieldData() { return [ [ @@ -459,7 +468,7 @@ protected function getAdditionallyIndexedMultivaluedFieldData() ]; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['Andorra', 'Tobago'], diff --git a/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php b/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php index 5cf50e4a63..2bf53c2fea 100644 --- a/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php @@ -12,13 +12,14 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\FieldType\DateAndTime\Value as DateAndTimeValue; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class DateAndTimeIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -166,7 +167,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -208,9 +209,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -218,9 +219,8 @@ public function provideInvalidUpdateFieldData() * * @param mixed $failingValue * @param string $expectedException - * - * @dataProvider provideInvalidUpdateFieldData */ + #[DataProvider('provideInvalidUpdateFieldData')] public function testUpdateContentFails($failingValue, $expectedException) { return [ @@ -274,7 +274,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -294,7 +294,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -307,37 +307,37 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new DateAndTimeValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + DateAndTimeValue::fromTimestamp(123456), ], ]; } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return '2012-04-15T15:43:56Z'; } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return '2015-04-15T15:43:56Z'; } - protected function getSearchTargetValueOne() + protected static function getSearchTargetValueOne() { // Handling Legacy Search Engine, which stores DateAndTime value as integer timestamp - if ($this->getSetupFactory() instanceof Legacy) { - $dateTime = new DateTime($this->getValidSearchValueOne()); + if (static::resolveSetupFactory() instanceof Legacy) { + $dateTime = new DateTime(static::getValidSearchValueOne()); return $dateTime->getTimestamp(); } @@ -345,11 +345,11 @@ protected function getSearchTargetValueOne() return parent::getSearchTargetValueOne(); } - protected function getSearchTargetValueTwo() + protected static function getSearchTargetValueTwo() { // Handling Legacy Search Engine, which stores DateAndTime value as integer timestamp - if ($this->getSetupFactory() instanceof Legacy) { - $dateTime = new DateTime($this->getValidSearchValueTwo()); + if (static::resolveSetupFactory() instanceof Legacy) { + $dateTime = new DateTime(static::getValidSearchValueTwo()); return $dateTime->getTimestamp(); } diff --git a/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php b/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php index 1e7b05d2fa..6d75ee91c3 100644 --- a/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php @@ -13,13 +13,13 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\FieldType\Date\Type; use Ibexa\Core\FieldType\Date\Value as DateValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class DateIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -200,9 +200,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -238,7 +238,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { $timestamp = 186401; $dateTime = new DateTime("@{$timestamp}"); @@ -274,7 +274,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { $timestamp = 123456; @@ -299,47 +299,47 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new DateValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + DateValue::fromTimestamp(86400), ], ]; } - protected function getValidSearchValueOne(): int + protected static function getValidSearchValueOne(): int { return 86400; } - protected function getValidSearchValueTwo(): int + protected static function getValidSearchValueTwo(): int { return 172800; } - protected function getSearchTargetValueOne() + protected static function getSearchTargetValueOne() { // Handling Legacy Search Engine, which stores Date value as timestamp - if ($this->getSetupFactory() instanceof Legacy) { - return $this->getValidSearchValueOne(); + if (static::resolveSetupFactory() instanceof Legacy) { + return static::getValidSearchValueOne(); } return '1970-01-02T00:00:00Z'; } - protected function getSearchTargetValueTwo() + protected static function getSearchTargetValueTwo() { // Handling Legacy Search Engine, which stores Date value as timestamp - if ($this->getSetupFactory() instanceof Legacy) { - return $this->getValidSearchValueTwo(); + if (static::resolveSetupFactory() instanceof Legacy) { + return static::getValidSearchValueTwo(); } return '1970-01-03T00:00:00Z'; diff --git a/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php b/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php index e9c4901fa5..1147e011ae 100644 --- a/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Core\Base\Exceptions\ContentFieldValidationException; use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\EmailAddress\Value as EmailAddressValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class EmailAddressIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -207,9 +207,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -273,7 +273,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -283,7 +283,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new EmailAddressValue()], @@ -292,38 +292,38 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new EmailAddressValue('spam@ibexa.co'), ], ]; } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return 'holmes4@ibexa.co'; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { // ensure case-insensitivity - return strtoupper($this->getValidSearchValueOne()); + return strtoupper(static::getValidSearchValueOne()); } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return 'wyoming.knott@o2.ru'; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { // ensure case-insensitivity - return strtoupper($this->getValidSearchValueTwo()); + return strtoupper(static::getValidSearchValueTwo()); } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['holmes4@ibexa.co', 'wyoming.knott@o2.ru'], diff --git a/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php index 7674cce809..497a1f07c7 100644 --- a/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php @@ -8,16 +8,16 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; use FilesystemIterator; +use PHPUnit\Framework\Attributes\Group; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use UnexpectedValueException; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] abstract class FileSearchBaseIntegrationTestCase extends SearchBaseIntegrationTestCase { /** diff --git a/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php b/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php index 2b08f704e8..df6bd630b4 100644 --- a/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\Float\Value as FloatValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class FloatIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -205,9 +205,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -254,7 +254,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -271,7 +271,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -281,30 +281,30 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new FloatValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new FloatValue(23.5), ], [new FloatValue(0)], [new FloatValue(0.0)], ]; } - protected function getValidSearchValueOne(): float + protected static function getValidSearchValueOne(): float { return 25.519; } - protected function getValidSearchValueTwo(): float + protected static function getValidSearchValueTwo(): float { return 25.59; } diff --git a/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php b/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php index a060f73fe3..6ab85e8641 100644 --- a/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\ISBN\Value as ISBNValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class ISBNIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -197,9 +197,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -245,7 +245,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -270,7 +270,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -292,7 +292,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new ISBNValue()], @@ -301,26 +301,26 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new ISBNValue('9789722514095'), ], ]; } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return '9780099067504'; } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return '9780380448340'; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['9780099067504', '9780380448340'], diff --git a/tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php b/tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php index 98b190b7e1..12b9de86da 100644 --- a/tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php @@ -18,14 +18,14 @@ use Ibexa\Core\FieldType\Image\Value as ImageValue; use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\Persistence\Legacy\Content\Gateway; +use PHPUnit\Framework\Attributes\Group; use stdClass; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class ImageIntegrationTest extends FileSearchBaseIntegrationTestCase { /** @@ -50,7 +50,7 @@ protected function getStoragePrefix() * * @return array */ - protected function getFixtureData(): array + protected static function getFixtureData(): array { return [ 'create' => [ @@ -210,7 +210,7 @@ public function getInvalidValidatorConfiguration(): array */ public function getValidCreationFieldData(): ImageValue { - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); return new ImageValue($fixtureData['create']); } @@ -238,7 +238,7 @@ public function assertFieldDataLoadedCorrect(Field $field): void $field->value ); - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); $expectedData = $fixtureData['create']; // Will be nullified by external storage @@ -260,7 +260,7 @@ public function assertFieldDataLoadedCorrect(Field $field): void self::$loadedImagePath = $field->value->id; } - public function provideInvalidCreationFieldData(): array + public static function provideInvalidCreationFieldData(): array { return [ // will fail because the provided file doesn't exist, and fileSize/fileName won't be set @@ -280,7 +280,7 @@ public function provideInvalidCreationFieldData(): array */ public function getValidUpdateFieldData(): ImageValue { - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); return new ImageValue($fixtureData['update']); } @@ -292,7 +292,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void $field->value ); - $fixtureData = $this->getFixtureData(); + $fixtureData = static::getFixtureData(); $expectedData = $fixtureData['update']; // Will change during storage @@ -314,9 +314,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void ); } - public function provideInvalidUpdateFieldData(): array + public static function provideInvalidUpdateFieldData(): array { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -355,7 +355,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field): void * * @return array */ - public function provideToHashData(): array + public static function provideToHashData(): array { return [ [ @@ -418,14 +418,14 @@ public function provideToHashData(): array * * @return array */ - public function provideFromHashData(): array + public static function provideFromHashData(): array { - $fixture = $this->getFixtureData(); + $fixture = static::getFixtureData(); return [ [ $fixture['create'], - $this->getValidCreationFieldData(), + new ImageValue($fixture['create']), ], ]; } @@ -485,7 +485,7 @@ public function testInherentCopyForNewLanguage(): void * \Ibexa\Core\FieldType\Image\Value * }> */ - public function providerForTestIsEmptyValue(): array + public static function providerForTestIsEmptyValue(): array { return [ [new ImageValue()], @@ -497,11 +497,11 @@ public function providerForTestIsEmptyValue(): array * \Ibexa\Core\FieldType\Image\Value * }> */ - public function providerForTestIsNotEmptyValue(): array + public static function providerForTestIsNotEmptyValue(): array { return [ [ - $this->getValidCreationFieldData(), + new ImageValue(static::getFixtureData()['create']), ], ]; } @@ -630,7 +630,7 @@ protected function checkSearchEngineSupport(): void } } - protected function getValidSearchValueOne(): ImageValue + protected static function getValidSearchValueOne(): ImageValue { return new ImageValue( [ @@ -642,7 +642,7 @@ protected function getValidSearchValueOne(): ImageValue ); } - protected function getValidSearchValueTwo(): ImageValue + protected static function getValidSearchValueTwo(): ImageValue { return new ImageValue( [ @@ -654,9 +654,9 @@ protected function getValidSearchValueTwo(): ImageValue ); } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { - $value = $this->getValidSearchValueOne(); + $value = static::getValidSearchValueOne(); /** * ensure case-insensitivity. @@ -666,9 +666,9 @@ protected function getSearchTargetValueOne(): string return strtoupper($value->fileName); } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { - $value = $this->getValidSearchValueTwo(); + $value = static::getValidSearchValueTwo(); /** * ensure case-insensitivity. @@ -678,18 +678,18 @@ protected function getSearchTargetValueTwo(): string return strtoupper($value->fileName); } - protected function getAdditionallyIndexedFieldData(): array + protected static function getAdditionallyIndexedFieldData(): array { return [ [ 'alternative_text', - $this->getValidSearchValueOne()->alternativeText, - $this->getValidSearchValueTwo()->alternativeText, + static::getValidSearchValueOne()->alternativeText, + static::getValidSearchValueTwo()->alternativeText, ], [ 'file_size', - $this->getValidSearchValueOne()->fileSize, - $this->getValidSearchValueTwo()->fileSize, + static::getValidSearchValueOne()->fileSize, + static::getValidSearchValueTwo()->fileSize, ], [ 'mime_type', diff --git a/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php b/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php index 238d6bcfe9..c5a3e1fc38 100644 --- a/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Integer\Value as IntegerValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class IntegerIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -207,9 +207,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -273,7 +273,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -283,35 +283,35 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new IntegerValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new IntegerValue(23), ], [new IntegerValue(0)], [new IntegerValue(0.0)], ]; } - protected function getValidSearchValueOne(): int + protected static function getValidSearchValueOne(): int { return 25; } - protected function getValidSearchValueTwo(): int + protected static function getValidSearchValueTwo(): int { return 26; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['25', '26'], diff --git a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php index dae412664d..9973aaf07e 100644 --- a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php @@ -7,19 +7,23 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Keyword\Value as KeywordValue; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[CoversMethod(SearchService::class, 'findContent()')] +#[Group('integration')] +#[Group('field-type')] class KeywordIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { /** @@ -156,7 +160,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -200,9 +204,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -246,7 +250,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -263,7 +267,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -273,7 +277,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new KeywordValue()], @@ -282,11 +286,11 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new KeywordValue(['foo', 'bar', 'sindelfingen']), ], [ new KeywordValue(['0']), @@ -441,22 +445,22 @@ protected function createAndPublishContent($fieldData, ContentType $contentType, return $contentService->publishVersion($contentDraft->versionInfo); } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return 'add'; } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return 'branch'; } - protected function getValidMultivaluedSearchValuesOne() + protected static function getValidMultivaluedSearchValuesOne() { return ['add', 'branch']; } - protected function getValidMultivaluedSearchValuesTwo() + protected static function getValidMultivaluedSearchValuesTwo() { return ['commit', 'delete']; } @@ -466,14 +470,14 @@ public function checkFullTextSupport() // Does nothing } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['add', 'branch'], ]; } - public function providerForTestTruncateField() + public static function providerForTestTruncateField() { return [ [new KeywordValue()], @@ -487,12 +491,12 @@ public function providerForTestTruncateField() /** * Test that setting an empty value truncates field data. * - * @dataProvider providerForTestTruncateField * * @param mixed $emptyValue data representing an empty value * * @todo Move this method to BaseIntegrationTest when fixed for all field types. */ + #[DataProvider('providerForTestTruncateField')] public function testTruncateField($emptyValue) { $repository = $this->getRepository(); @@ -575,8 +579,6 @@ protected function createKeywordContent() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFindContentFieldCriterion() { diff --git a/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php index 3d7c2dc6d3..2801c6a5e8 100644 --- a/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php @@ -10,13 +10,13 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\MapLocation\Value as MapLocationValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class MapLocationIntegrationTest extends BaseIntegrationTestCase { /** @@ -135,7 +135,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -208,9 +208,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -249,7 +249,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -276,7 +276,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -296,7 +296,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new MapLocationValue()], @@ -311,11 +311,17 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new MapLocationValue( + [ + 'latitude' => 51.559997, + 'longitude' => 6.767921, + 'address' => 'Bielefeld', + ] + ), ], [ new MapLocationValue( diff --git a/tests/integration/Core/Repository/FieldType/MediaIntegrationTest.php b/tests/integration/Core/Repository/FieldType/MediaIntegrationTest.php index d278005d20..8190b299ec 100644 --- a/tests/integration/Core/Repository/FieldType/MediaIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/MediaIntegrationTest.php @@ -12,16 +12,16 @@ use Ibexa\Core\FieldType\BinaryBase\Value as BinaryBaseValue; use Ibexa\Core\FieldType\Media\Type as MediaType; use Ibexa\Core\FieldType\Media\Value as MediaValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] final class MediaIntegrationTest extends BaseBinaryFileIntegrationTestCaseCase { - protected function getFixtureData(): array + protected static function getFixtureData(): array { return [ 'create' => [ @@ -81,7 +81,7 @@ public function getValidFieldSettings(): array ]; } - protected function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue + protected static function buildBinaryFileValueFromFixtureData(array $fileFieldValueData): BinaryBaseValue { return new MediaValue($fileFieldValueData); } @@ -94,7 +94,7 @@ public function asserFieldValueIsCorrectInstance(Field $field): void ); } - protected function buildBinaryFileValue(string $fileId): BinaryBaseValue + protected static function buildBinaryFileValue(string $fileId): BinaryBaseValue { return new MediaValue( [ @@ -103,9 +103,9 @@ protected function buildBinaryFileValue(string $fileId): BinaryBaseValue ); } - public function provideToHashData(): array + public static function provideToHashData(): array { - $fixture = $this->getFixtureData(); + $fixture = static::getFixtureData(); $expected = $fixture['create']; $expected['uri'] = $expected['inputUri']; @@ -118,7 +118,7 @@ public function provideToHashData(): array $expected['width'] = 0; $expected['height'] = 0; - $fieldValue = $this->getValidCreationFieldData(); + $fieldValue = static::buildBinaryFileValueFromFixtureData($fixture['create']); $fieldValue->uri = $expected['uri']; return [ @@ -129,12 +129,12 @@ public function provideToHashData(): array ]; } - public function provideFromHashData(): array + public static function provideFromHashData(): array { - $fixture = $this->getFixtureData(); + $fixture = static::getFixtureData(); $fixture['create']['uri'] = $fixture['create']['id']; - $fieldValue = $this->getValidCreationFieldData(); + $fieldValue = static::buildBinaryFileValueFromFixtureData($fixture['create']); $fieldValue->uri = $fixture['create']['uri']; return [ @@ -148,14 +148,14 @@ public function provideFromHashData(): array /** * @return list> */ - public function providerForTestIsEmptyValue(): array + public static function providerForTestIsEmptyValue(): array { return [ [new MediaValue()], ]; } - protected function getValidSearchValueOne(): MediaValue + protected static function getValidSearchValueOne(): MediaValue { return new MediaValue( [ @@ -166,7 +166,7 @@ protected function getValidSearchValueOne(): MediaValue ); } - protected function getValidSearchValueTwo(): MediaValue + protected static function getValidSearchValueTwo(): MediaValue { return new MediaValue( [ diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index fcb3d6206f..db6e4b2551 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -15,13 +15,15 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Relation\Value as RelationValue; use Ibexa\Core\Repository\Values\Content\Relation; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[CoversMethod(BaseIntegrationTestCase::class, 'getValidatorSchema()')] +#[Group('integration')] +#[Group('field-type')] class RelationIntegrationTest extends SearchBaseIntegrationTestCase { use RelationSearchBaseIntegrationTestTrait; @@ -98,9 +100,6 @@ public function getSettingsSchema() ]; } - /** - * @covers \Ibexa\Tests\Integration\Core\Repository\FieldType\BaseIntegrationTestCase::getValidatorSchema() - */ public function getValidatorSchema() { return []; @@ -208,7 +207,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -244,9 +243,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -294,7 +293,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field): void * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -313,7 +312,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -323,40 +322,40 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new RelationValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new RelationValue(4), ], ]; } - protected function getValidSearchValueOne(): int + protected static function getValidSearchValueOne(): int { // Using different values for Legacy Search Engine, in order to demonstrate that sort will // depend on how search engine stores field type's value. Legacy stores it as integer, while // other engines store it as string. - if ($this->getSetupFactory() instanceof Legacy) { + if (static::resolveSetupFactory() instanceof Legacy) { return 4; } return 10; } - protected function getValidSearchValueTwo(): int + protected static function getValidSearchValueTwo(): int { // Using different values for Legacy Search Engine, in order to demonstrate that sort will // depend on how search engine stores field type's value. Legacy stores it as integer, while // other engines store it as string. - if ($this->getSetupFactory() instanceof Legacy) { + if (static::resolveSetupFactory() instanceof Legacy) { return 49; } diff --git a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php index 126876cc97..f825b3c79a 100644 --- a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php @@ -15,13 +15,13 @@ use Ibexa\Core\FieldType\RelationList\Type as RelationListType; use Ibexa\Core\FieldType\RelationList\Value as RelationListValue; use Ibexa\Core\Repository\Values\Content\Relation; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class RelationListIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { use RelationSearchBaseIntegrationTestTrait; @@ -235,7 +235,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -271,9 +271,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -320,7 +320,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field): void * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -339,7 +339,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -349,7 +349,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new RelationListValue()], @@ -357,41 +357,41 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new RelationListValue([4, 49]), ], ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { return [11]; } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { return [12]; } - protected function getSearchTargetValueOne(): int + protected static function getSearchTargetValueOne(): int { return 11; } - protected function getSearchTargetValueTwo(): int + protected static function getSearchTargetValueTwo(): int { return 12; } - protected function getValidMultivaluedSearchValuesOne() + protected static function getValidMultivaluedSearchValuesOne() { return [11, 12]; } - protected function getValidMultivaluedSearchValuesTwo() + protected static function getValidMultivaluedSearchValuesTwo() { return [13, 14]; } diff --git a/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php index 36d8898a79..67fade97e9 100644 --- a/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php @@ -23,6 +23,8 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\Search\Common\FieldNameResolver; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Integration test for searching and sorting with Field criterion and Field sort clause. @@ -117,7 +119,7 @@ abstract class SearchBaseIntegrationTestCase extends BaseIntegrationTestCase * * @return mixed */ - abstract protected function getValidSearchValueOne(); + abstract protected static function getValidSearchValueOne(); /** * Get search target field value One. @@ -127,9 +129,9 @@ abstract protected function getValidSearchValueOne(); * * @return mixed */ - protected function getSearchTargetValueOne() + protected static function getSearchTargetValueOne() { - return $this->getValidSearchValueOne(); + return static::getValidSearchValueOne(); } /** @@ -145,7 +147,7 @@ protected function getSearchTargetValueOne() * * @return mixed */ - abstract protected function getValidSearchValueTwo(); + abstract protected static function getValidSearchValueTwo(); /** * Get search target field value Two. @@ -155,9 +157,9 @@ abstract protected function getValidSearchValueTwo(); * * @return mixed */ - protected function getSearchTargetValueTwo() + protected static function getSearchTargetValueTwo() { - return $this->getValidSearchValueTwo(); + return static::getValidSearchValueTwo(); } /** @@ -182,7 +184,7 @@ protected function getSearchTargetValueTwo() * * @return array */ - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return []; } @@ -209,11 +211,11 @@ protected function getAdditionallyIndexedFieldData() * * @return array */ - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { - self::markTestSkipped( - 'Skipped by default, override in the concrete test case as required by the field type.' - ); + // Empty by default; fullTextFindProvider() falls back to a skip-sentinel row for this + // case, since markTestSkipped() cannot be called from a static data provider (PHPUnit 11). + return []; } public function checkFullTextSupport() @@ -331,13 +333,13 @@ public function testCreateTestContent(): array * * @return array */ - public function findProvider() + public static function findProvider() { - $additionalFields = $this->getAdditionallyIndexedFieldData(); + $additionalFields = static::getAdditionallyIndexedFieldData(); $additionalFields[] = [ null, - $this->getSearchTargetValueOne(), - $this->getSearchTargetValueTwo(), + static::getSearchTargetValueOne(), + static::getSearchTargetValueTwo(), ]; $templates = [ [true, true], @@ -369,11 +371,9 @@ public function findProvider() * value EQ One * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::EQ, $valueOne); @@ -389,11 +389,9 @@ public function testFindEqualsOne($valueOne, $valueTwo, $filter, $content, $modi * NOT( value EQ One ) * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::EQ, $valueOne)); @@ -409,11 +407,9 @@ public function testFindNotEqualsOne($valueOne, $valueTwo, $filter, $content, $m * value EQ Two * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::EQ, $valueTwo); @@ -429,11 +425,9 @@ public function testFindEqualsTwo($valueOne, $valueTwo, $filter, $content, $modi * NOT( value EQ Two ) * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::EQ, $valueTwo)); @@ -449,11 +443,9 @@ public function testFindNotEqualsTwo($valueOne, $valueTwo, $filter, $content, $m * value IN [One] * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::IN, [$valueOne]); @@ -469,11 +461,9 @@ public function testFindInOne($valueOne, $valueTwo, $filter, $content, $modifyFi * NOT( value IN [One] ) * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -491,11 +481,9 @@ public function testFindNotInOne($valueOne, $valueTwo, $filter, $content, $modif * value IN [Two] * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::IN, [$valueTwo]); @@ -511,11 +499,9 @@ public function testFindInTwo($valueOne, $valueTwo, $filter, $content, $modifyFi * NOT( value IN [Two] ) * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -533,11 +519,9 @@ public function testFindNotInTwo($valueOne, $valueTwo, $filter, $content, $modif * value IN [One,Two] * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field( @@ -560,11 +544,9 @@ public function testFindInOneTwo($valueOne, $valueTwo, $filter, $content, $modif * NOT( value IN [One,Two] ) * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -589,11 +571,9 @@ public function testFindNotInOneTwo($valueOne, $valueTwo, $filter, $content, $mo * value GT One * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::GT, $valueOne); @@ -609,11 +589,9 @@ public function testFindGreaterThanOne($valueOne, $valueTwo, $filter, $content, * NOT( value GT One ) * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::GT, $valueOne)); @@ -629,11 +607,9 @@ public function testFindNotGreaterThanOne($valueOne, $valueTwo, $filter, $conten * value GT Two * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::GT, $valueTwo); @@ -649,11 +625,9 @@ public function testFindGreaterThanTwo($valueOne, $valueTwo, $filter, $content, * NOT( value GT Two ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::GT, $valueTwo)); @@ -669,11 +643,9 @@ public function testFindNotGreaterThanTwo($valueOne, $valueTwo, $filter, $conten * value GTE One * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindGreaterThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::GTE, $valueOne); @@ -689,11 +661,9 @@ public function testFindGreaterThanOrEqualOne($valueOne, $valueTwo, $filter, $co * NOT( value GTE One ) * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotGreaterThanOrEqual($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::GTE, $valueOne)); @@ -709,11 +679,9 @@ public function testFindNotGreaterThanOrEqual($valueOne, $valueTwo, $filter, $co * value GTE Two * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::GTE, $valueTwo); @@ -729,11 +697,9 @@ public function testFindGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $co * NOT( value GTE Two ) * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::GTE, $valueTwo)); @@ -749,11 +715,9 @@ public function testFindNotGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, * value LT One * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::LT, $valueOne); @@ -769,11 +733,9 @@ public function testFindLowerThanOne($valueOne, $valueTwo, $filter, $content, $m * NOT( value LT One ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::LT, $valueOne)); @@ -789,11 +751,9 @@ public function testFindNotLowerThanOne($valueOne, $valueTwo, $filter, $content, * value LT Two * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::LT, $valueTwo); @@ -809,11 +769,9 @@ public function testFindLowerThanTwo($valueOne, $valueTwo, $filter, $content, $m * NOT( value LT Two ) * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::LT, $valueTwo)); @@ -829,11 +787,9 @@ public function testFindNotLowerThanTwo($valueOne, $valueTwo, $filter, $content, * value LTE One * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::LTE, $valueOne); @@ -849,11 +805,9 @@ public function testFindLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $cont * NOT( value LTE One ) * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::LTE, $valueOne)); @@ -869,11 +823,9 @@ public function testFindNotLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $c * value LTE Two * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::LTE, $valueTwo); @@ -889,11 +841,9 @@ public function testFindLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $cont * NOT( value LTE Two ) * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::LTE, $valueTwo)); @@ -909,11 +859,9 @@ public function testFindNotLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $c * value BETWEEN [One,Two] * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field( @@ -936,11 +884,9 @@ public function testFindBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $ * NOT( value BETWEEN [One,Two] ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -965,11 +911,9 @@ public function testFindNotBetweenOneTwo($valueOne, $valueTwo, $filter, $content * value BETWEEN [Two,One] * * The result should be empty. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field( @@ -992,11 +936,9 @@ public function testFindBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $ * NOT( value BETWEEN [Two,One] ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -1021,11 +963,9 @@ public function testFindNotBetweenTwoOne($valueOne, $valueTwo, $filter, $content * value CONTAINS One * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::CONTAINS, $valueOne); @@ -1041,11 +981,9 @@ public function testFindContainsOne($valueOne, $valueTwo, $filter, $content, $mo * NOT( value CONTAINS One ) * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot(new Field('data', Operator::CONTAINS, $valueOne)); @@ -1061,11 +999,9 @@ public function testFindNotContainsOne($valueOne, $valueTwo, $filter, $content, * value CONTAINS Two * * The result should contain Content Two. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new Field('data', Operator::CONTAINS, $valueTwo); @@ -1081,11 +1017,9 @@ public function testFindContainsTwo($valueOne, $valueTwo, $filter, $content, $mo * NOT( value CONTAINS Two ) * * The result should contain Content One. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { $criteria = new LogicalNot( @@ -1097,11 +1031,9 @@ public function testFindNotContainsTwo($valueOne, $valueTwo, $filter, $content, /** * Tests search with LIKE operator, with NO wildcard. - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { // (in case test is skipped for current search engine) @@ -1114,11 +1046,9 @@ public function testFindLikeOne($valueOne, $valueTwo, $filter, $content, $modify /** * Tests search with LIKE operator, with wildcard at the end (on strings). - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { if ($this->supportsLikeWildcard($valueOne)) { @@ -1134,11 +1064,9 @@ public function testFindNotLikeOne($valueOne, $valueTwo, $filter, $content, $mod /** * Tests search with LIKE operator, with wildcard at the start (on strings). - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { if ($this->supportsLikeWildcard($valueTwo)) { @@ -1152,11 +1080,9 @@ public function testFindLikeTwo($valueOne, $valueTwo, $filter, $content, $modify /** * Tests search with LIKE operator, with wildcard in the middle (on strings). - * - * @dataProvider findProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('findProvider')] public function testFindNotLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) { if ($this->supportsLikeWildcard($valueTwo)) { @@ -1248,9 +1174,9 @@ protected function doModifyField(array $criteriaOrSortClauses, string $fieldName } } - public function sortProvider() + public static function sortProvider() { - $additionalFields = $this->getAdditionallyIndexedFieldData(); + $additionalFields = static::getAdditionallyIndexedFieldData(); $additionalFields[] = null; $templates = [ [true, true], @@ -1273,11 +1199,9 @@ public function sortProvider() /** * Tests Content Search sort with Field sort clause on a field of specific field type. - * - * @dataProvider sortProvider - * - * @depends testCreateTestContent */ + #[Depends('testCreateTestContent')] + #[DataProvider('sortProvider')] public function testSort($ascending, $content, $modifyField, array $context) { [$repository, $contentOneId, $contentTwoId] = $context; @@ -1301,8 +1225,23 @@ public function testSort($ascending, $content, $modifyField, array $context) $this->assertSortResult($searchResult, $ascending, $contentOneId, $contentTwoId); } - public function fullTextFindProvider() + /** + * Sentinel value yielded by {@see self::fullTextFindProvider()} when + * {@see self::getFullTextIndexedFieldData()} is empty (default), since PHPUnit 11 treats an + * empty data provider as a hard error rather than a skip. testFullTextFind* skip on it. + */ + protected const NO_FULLTEXT_DATA = '__no_fulltext_data__'; + + public static function fullTextFindProvider() { + $indexedFieldData = static::getFullTextIndexedFieldData(); + + if ($indexedFieldData === []) { + return [ + [self::NO_FULLTEXT_DATA, self::NO_FULLTEXT_DATA, false, false], + ]; + } + $templates = [ [true, true], [true, false], @@ -1312,7 +1251,7 @@ public function fullTextFindProvider() $fixture = []; - foreach ($this->getFullTextIndexedFieldData() as $valueSet) { + foreach ($indexedFieldData as $valueSet) { foreach ($templates as $template) { array_unshift($template, $valueSet[1]); array_unshift($template, $valueSet[0]); @@ -1324,13 +1263,16 @@ public function fullTextFindProvider() return $fixture; } - /** - * @dataProvider fullTextFindProvider - * - * @depends testCreateTestContent - */ + #[Depends('testCreateTestContent')] + #[DataProvider('fullTextFindProvider')] public function testFullTextFindOne($valueOne, $valueTwo, $filter, $content, array $context) { + if ($valueOne === self::NO_FULLTEXT_DATA) { + self::markTestSkipped( + 'Skipped by default, override getFullTextIndexedFieldData() in the concrete test case as required by the field type.' + ); + } + $this->checkFullTextSupport(); $criteria = new Criterion\FullText($valueOne); @@ -1338,13 +1280,16 @@ public function testFullTextFindOne($valueOne, $valueTwo, $filter, $content, arr $this->assertFindResult($context, $criteria, true, false, $filter, $content, null); } - /** - * @dataProvider fullTextFindProvider - * - * @depends testCreateTestContent - */ + #[Depends('testCreateTestContent')] + #[DataProvider('fullTextFindProvider')] public function testFullTextFindTwo($valueOne, $valueTwo, $filter, $content, array $context) { + if ($valueOne === self::NO_FULLTEXT_DATA) { + self::markTestSkipped( + 'Skipped by default, override getFullTextIndexedFieldData() in the concrete test case as required by the field type.' + ); + } + $this->checkFullTextSupport(); $criteria = new Criterion\FullText($valueTwo); diff --git a/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php index d7516cc2e4..95a195f529 100644 --- a/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php @@ -11,6 +11,8 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LogicalNot; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Operator; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Integration test for searching and sorting with Field criterion and Field sort clause. @@ -50,7 +52,7 @@ abstract class SearchMultivaluedBaseIntegrationTestCase extends SearchBaseIntegr * * @return mixed */ - abstract protected function getValidMultivaluedSearchValuesOne(); + abstract protected static function getValidMultivaluedSearchValuesOne(); /** * Get search target field value One. @@ -60,9 +62,9 @@ abstract protected function getValidMultivaluedSearchValuesOne(); * * @return mixed */ - protected function getMultivaluedSearchTargetValuesOne() + protected static function getMultivaluedSearchTargetValuesOne() { - return $this->getValidMultivaluedSearchValuesOne(); + return static::getValidMultivaluedSearchValuesOne(); } /** @@ -76,7 +78,7 @@ protected function getMultivaluedSearchTargetValuesOne() * * @return mixed */ - abstract protected function getValidMultivaluedSearchValuesTwo(); + abstract protected static function getValidMultivaluedSearchValuesTwo(); /** * Get search target field value Two. @@ -86,12 +88,12 @@ abstract protected function getValidMultivaluedSearchValuesTwo(); * * @return mixed */ - protected function getMultivaluedSearchTargetValuesTwo() + protected static function getMultivaluedSearchTargetValuesTwo() { - return $this->getValidMultivaluedSearchValuesTwo(); + return static::getValidMultivaluedSearchValuesTwo(); } - protected function getAdditionallyIndexedMultivaluedFieldData() + protected static function getAdditionallyIndexedMultivaluedFieldData() { return []; } @@ -181,13 +183,13 @@ public function testCreateMultivaluedTestContent(): array * * @return array */ - public function findMultivaluedProvider() + public static function findMultivaluedProvider() { - $additionalFields = $this->getAdditionallyIndexedMultivaluedFieldData(); + $additionalFields = static::getAdditionallyIndexedMultivaluedFieldData(); $additionalFields[] = [ null, - $this->getMultivaluedSearchTargetValuesOne(), - $this->getMultivaluedSearchTargetValuesTwo(), + static::getMultivaluedSearchTargetValuesOne(), + static::getMultivaluedSearchTargetValuesTwo(), ]; $templates = [ [true, true], @@ -219,11 +221,9 @@ public function findMultivaluedProvider() * value EQ One * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::EQ); @@ -243,11 +243,9 @@ public function testFindMultivaluedEqualsOne($valuesOne, $valuesTwo, $filter, $c * NOT( value EQ One ) * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::EQ); @@ -267,11 +265,9 @@ public function testFindMultivaluedNotEqualsOne($valuesOne, $valuesTwo, $filter, * value IN [One] * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::IN); @@ -289,11 +285,9 @@ public function testFindMultivaluedInOne($valuesOne, $valuesTwo, $filter, $conte * NOT( value IN [One] ) * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::IN); @@ -313,11 +307,9 @@ public function testFindMultivaluedNotInOne($valuesOne, $valuesTwo, $filter, $co * value IN [One,Two] * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::IN); @@ -335,11 +327,9 @@ public function testFindMultivaluedInOneTwo($valuesOne, $valuesTwo, $filter, $co * NOT( value IN [One,Two] ) * * The result should be empty. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::IN); @@ -359,11 +349,9 @@ public function testFindMultivaluedNotInOneTwo($valuesOne, $valuesTwo, $filter, * value CONTAINS One * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::CONTAINS); @@ -383,11 +371,9 @@ public function testFindMultivaluedContainsOne($valuesOne, $valuesTwo, $filter, * NOT( value CONTAINS One ) * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::CONTAINS); @@ -407,11 +393,9 @@ public function testFindMultivaluedNotContainsOne($valuesOne, $valuesTwo, $filte * value GT One[0] * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GT); @@ -429,11 +413,9 @@ public function testFindMultivaluedGreaterThanOneFindsOneTwo($valuesOne, $values * value GT One[1] * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GT); @@ -451,11 +433,9 @@ public function testFindMultivaluedGreaterThanOneFindsTwo($valuesOne, $valuesTwo * NOT( value GT One[0] ) * * The result should be empty. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GT); @@ -473,11 +453,9 @@ public function testFindMultivaluedNotGreaterThanOneFindsOneTwo($valuesOne, $val * NOT( value GT One[1] ) * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GT); @@ -495,11 +473,9 @@ public function testFindMultivaluedNotGreaterThanOneFindsTwo($valuesOne, $values * value GTE One * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedGreaterThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GTE); @@ -519,11 +495,9 @@ public function testFindMultivaluedGreaterThanOrEqualOne($valuesOne, $valuesTwo, * NOT( value GTE One ) * * The result should be empty. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotGreaterThanOrEqual($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::GTE); @@ -543,11 +517,9 @@ public function testFindMultivaluedNotGreaterThanOrEqual($valuesOne, $valuesTwo, * value LT One[0] * * The result should be empty. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LT); @@ -565,11 +537,9 @@ public function testFindMultivaluedLowerThanOneEmpty($valuesOne, $valuesTwo, $fi * value LT One[1] * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LT); @@ -587,11 +557,9 @@ public function testFindMultivaluedLowerThanOneFindsOne($valuesOne, $valuesTwo, * NOT( value LT One[0] ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LT); @@ -609,11 +577,9 @@ public function testFindMultivaluedNotLowerThanOneEmpty($valuesOne, $valuesTwo, * NOT( value LT One[1] ) * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LT); @@ -631,11 +597,9 @@ public function testFindMultivaluedNotLowerThanOneFindsOne($valuesOne, $valuesTw * value LTE One * * The result should contain Content One. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LTE); @@ -655,11 +619,9 @@ public function testFindMultivaluedLowerThanOrEqualOne($valuesOne, $valuesTwo, $ * NOT( value LTE One ) * * The result should contain Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::LTE); @@ -679,11 +641,9 @@ public function testFindMultivaluedNotLowerThanOrEqualOne($valuesOne, $valuesTwo * value BETWEEN [One,Two] * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::BETWEEN); @@ -712,11 +672,9 @@ public function testFindMultivaluedBetweenOneTwo($valuesOne, $valuesTwo, $filter * NOT( value BETWEEN [One,Two] ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::BETWEEN); @@ -747,11 +705,9 @@ public function testFindMultivaluedNotBetweenOneTwo($valuesOne, $valuesTwo, $fil * value BETWEEN [Two,One] * * The result should be empty. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::BETWEEN); @@ -780,11 +736,9 @@ public function testFindMultivaluedBetweenTwoOne($valuesOne, $valuesTwo, $filter * NOT( value BETWEEN [Two,One] ) * * The result should contain both Content One and Content Two. - * - * @dataProvider findMultivaluedProvider - * - * @depends testCreateMultivaluedTestContent */ + #[Depends('testCreateMultivaluedTestContent')] + #[DataProvider('findMultivaluedProvider')] public function testFindMultivaluedNotBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) { $this->checkOperatorSupport(Operator::BETWEEN); diff --git a/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php b/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php index 2b81e3ae53..059f4ee353 100644 --- a/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Selection\Value as SelectionValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class SelectionIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { /** @@ -181,7 +181,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -228,9 +228,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -277,7 +277,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -294,7 +294,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -304,7 +304,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new SelectionValue()], @@ -312,11 +312,11 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new SelectionValue([0, 2]), ], [ new SelectionValue([0]), @@ -324,27 +324,27 @@ public function providerForTestIsNotEmptyValue() ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { return [1]; } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { return [2]; } - protected function getSearchTargetValueOne() + protected static function getSearchTargetValueOne() { return 1; } - protected function getSearchTargetValueTwo() + protected static function getSearchTargetValueTwo() { return 2; } - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return [ [ @@ -360,17 +360,17 @@ protected function getAdditionallyIndexedFieldData() ]; } - protected function getValidMultivaluedSearchValuesOne() + protected static function getValidMultivaluedSearchValuesOne() { return [0, 1]; } - protected function getValidMultivaluedSearchValuesTwo() + protected static function getValidMultivaluedSearchValuesTwo() { return [2, 3, 4]; } - protected function getAdditionallyIndexedMultivaluedFieldData() + protected static function getAdditionallyIndexedMultivaluedFieldData() { return [ [ @@ -381,7 +381,7 @@ protected function getAdditionallyIndexedMultivaluedFieldData() ]; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['Bielefeld', 'Sindelfingen'], diff --git a/tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php b/tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php index 0cdb894853..f4c567883c 100644 --- a/tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php @@ -7,12 +7,13 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; +use PHPUnit\Framework\Attributes\Group; + /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class SelectionMultilingualIntegrationTest extends SelectionIntegrationTest { /** @@ -90,7 +91,7 @@ public function getFieldName(): string return 'Arkansas' . ' ' . 'Mississippi'; } - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return [ [ @@ -106,7 +107,7 @@ protected function getAdditionallyIndexedFieldData() ]; } - protected function getAdditionallyIndexedMultivaluedFieldData() + protected static function getAdditionallyIndexedMultivaluedFieldData() { return [ [ @@ -117,7 +118,7 @@ protected function getAdditionallyIndexedMultivaluedFieldData() ]; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['Hudson', 'Mississippi'], diff --git a/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php index 57bd917726..248eaf884e 100644 --- a/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php @@ -10,13 +10,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\TextBlock\Value as TextBlockValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class TextBlockIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -187,9 +187,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -236,7 +236,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -253,7 +253,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -263,7 +263,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new TextBlockValue()], @@ -275,39 +275,39 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new TextBlockValue('Example'), ], [new TextBlockValue('0')], ]; } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return 'caution is the " path to mediocrity something completely different'; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { // ensure case-insensitivity return strtoupper('caution is the " path to mediocrity something completely different'); } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return "truth suffers from ' too much analysis hello and goodbye"; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { // ensure case-insensitivity return strtoupper("truth suffers from ' too much analysis hello and goodbye"); } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['path', 'analysis'], diff --git a/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php index 464a6423f4..edf7afea10 100644 --- a/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php @@ -11,13 +11,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class TextLineIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -207,9 +207,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -273,7 +273,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -283,7 +283,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new TextLineValue()], @@ -293,39 +293,39 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new TextLineValue('Example'), ], [new TextLineValue('0')], ]; } - protected function getValidSearchValueOne(): string + protected static function getValidSearchValueOne(): string { return 'aaa'; } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { // ensure case-insensitivity - return strtoupper($this->getValidSearchValueOne()); + return strtoupper(static::getValidSearchValueOne()); } - protected function getValidSearchValueTwo(): string + protected static function getValidSearchValueTwo(): string { return 'bbb'; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { // ensure case-insensitivity - return strtoupper($this->getValidSearchValueTwo()); + return strtoupper(static::getValidSearchValueTwo()); } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['aaa', 'bbb'], diff --git a/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php index 18346147b0..1a21d08ec8 100644 --- a/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php @@ -11,13 +11,14 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\Time\Value as TimeValue; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class TimeIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -160,7 +161,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -203,9 +204,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -213,9 +214,8 @@ public function provideInvalidUpdateFieldData() * * @param mixed $failingValue * @param string $expectedException - * - * @dataProvider provideInvalidUpdateFieldData */ + #[DataProvider('provideInvalidUpdateFieldData')] public function testUpdateContentFails($failingValue, $expectedException) { return [ @@ -269,7 +269,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { $timestamp = 123456; $dateTime = new DateTime("@{$timestamp}"); @@ -289,7 +289,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -299,38 +299,38 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new TimeValue()], ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new TimeValue(3661), ], ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { - return new TimeValue($this->getSearchTargetValueOne()); + return new TimeValue(static::getSearchTargetValueOne()); } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { - return new TimeValue($this->getSearchTargetValueTwo()); + return new TimeValue(static::getSearchTargetValueTwo()); } - protected function getSearchTargetValueOne(): int + protected static function getSearchTargetValueOne(): int { return 9600; } - protected function getSearchTargetValueTwo(): int + protected static function getSearchTargetValueTwo(): int { return 14400; } diff --git a/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php b/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php index 7eed11de62..acb3988336 100644 --- a/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php @@ -10,13 +10,13 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Url\Value as UrlValue; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class UrlIntegrationTest extends SearchBaseIntegrationTestCase { /** @@ -138,7 +138,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return [ [ @@ -186,9 +186,9 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { - return $this->provideInvalidCreationFieldData(); + return self::provideInvalidCreationFieldData(); } /** @@ -236,7 +236,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -263,7 +263,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -277,7 +277,7 @@ public function provideFromHashData() ]; } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new UrlValue()], @@ -287,11 +287,11 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new UrlValue('http://example.com', 'Example'), ], [ new UrlValue('http://example.com'), @@ -299,27 +299,27 @@ public function providerForTestIsNotEmptyValue() ]; } - protected function getValidSearchValueOne() + protected static function getValidSearchValueOne() { return new UrlValue('http://ample.com', 'Ample'); } - protected function getValidSearchValueTwo() + protected static function getValidSearchValueTwo() { return new UrlValue('http://example.com', 'Example'); } - protected function getSearchTargetValueOne(): string + protected static function getSearchTargetValueOne(): string { return 'http://ample.com'; } - protected function getSearchTargetValueTwo(): string + protected static function getSearchTargetValueTwo(): string { return 'http://example.com'; } - protected function getAdditionallyIndexedFieldData() + protected static function getAdditionallyIndexedFieldData() { return [ [ @@ -331,7 +331,7 @@ protected function getAdditionallyIndexedFieldData() ]; } - protected function getFullTextIndexedFieldData() + protected static function getFullTextIndexedFieldData() { return [ ['ample', 'example'], diff --git a/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php b/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php index 42149e7089..3ca66ee610 100644 --- a/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php @@ -17,13 +17,14 @@ use Ibexa\Core\FieldType\User\Value as UserValue; use Ibexa\Core\Repository\Values\User\User; use Ibexa\Tests\Core\FieldType\DataProvider\UserValidatorConfigurationSchemaProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. - * - * @group integration - * @group field-type */ +#[Group('integration')] +#[Group('field-type')] class UserIntegrationTest extends BaseIntegrationTestCase { private const TEST_LOGIN = 'hans'; @@ -191,7 +192,7 @@ public function assertFieldDataLoadedCorrect(Field $field) self::assertNotNull($field->value->contentId); } - public function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData() { return []; } @@ -252,7 +253,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) self::assertNotNull($field->value->contentId); } - public function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData() { return [ [ @@ -315,7 +316,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public function provideToHashData() + public static function provideToHashData() { return [ [ @@ -356,7 +357,7 @@ public function provideToHashData() * * @return array */ - public function provideFromHashData() + public static function provideFromHashData() { return [ [ @@ -410,7 +411,7 @@ public function testCreateContentWithEmptyFieldValue() self::markTestSkipped('User field will never be created empty'); } - public function providerForTestIsEmptyValue() + public static function providerForTestIsEmptyValue() { return [ [new UserValue()], @@ -418,11 +419,16 @@ public function providerForTestIsEmptyValue() ]; } - public function providerForTestIsNotEmptyValue() + public static function providerForTestIsNotEmptyValue() { return [ [ - $this->getValidCreationFieldData(), + new UserValue([ + 'login' => self::TEST_LOGIN, + 'email' => sprintf('%s@example.com', self::TEST_LOGIN), + 'enabled' => true, + 'plainPassword' => 'PassWord42', + ]), ], ]; } @@ -457,9 +463,7 @@ public function testAddFieldDefinition() return parent::testAddFieldDefinition(); } - /** - * @depends testCreateContent - */ + #[Depends('testCreateContent')] public function testCopyField($content) { // Users cannot be copied. @@ -469,17 +473,13 @@ public function testCopyField($content) return parent::testCopyField($content); } - /** - * @depends testCopyField - */ + #[Depends('testCopyField')] public function testCopiedFieldType($content) { self::markTestSkipped('Users cannot be copied, content is not passed to test.'); } - /** - * @depends testCopiedFieldType - */ + #[Depends('testCopiedFieldType')] public function testCopiedExternalData(Field $field) { self::markTestSkipped('Users cannot be copied, field is not passed to test.'); diff --git a/tests/integration/Core/Repository/FieldTypeServiceTest.php b/tests/integration/Core/Repository/FieldTypeServiceTest.php index d3e64a880d..135b32601d 100644 --- a/tests/integration/Core/Repository/FieldTypeServiceTest.php +++ b/tests/integration/Core/Repository/FieldTypeServiceTest.php @@ -8,20 +8,23 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\FieldType; +use Ibexa\Contracts\Core\Repository\FieldTypeService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the FieldTypeService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService - * - * @group field-type */ +#[CoversClass(FieldTypeService::class)] +#[CoversMethod(FieldTypeService::class, 'getFieldTypes()')] +#[CoversMethod(FieldTypeService::class, 'getFieldType()')] +#[CoversMethod(FieldTypeService::class, 'hasFieldType()')] +#[Group('field-type')] class FieldTypeServiceTest extends BaseTestCase { /** * Test for the getFieldTypes() method. - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService::getFieldTypes() */ public function testGetFieldTypes() { @@ -49,8 +52,6 @@ public function testGetFieldTypes() * Test for the getFieldType() method. * * Expects FieldType "ibexa_url" to be available! - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService::getFieldType() */ public function testGetFieldType() { @@ -75,8 +76,6 @@ public function testGetFieldType() /** * Test for the getFieldType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService::getFieldType() */ public function testGetFieldTypeThrowsNotFoundException() { @@ -94,8 +93,6 @@ public function testGetFieldTypeThrowsNotFoundException() /** * Test for the hasFieldType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService::hasFieldType() */ public function testHasFieldTypeReturnsTrue() { @@ -113,8 +110,6 @@ public function testHasFieldTypeReturnsTrue() /** * Test for the hasFieldType() method. - * - * @covers \Ibexa\Contracts\Core\Repository\FieldTypeService::hasFieldType() */ public function testHasFieldTypeReturnsFalse() { diff --git a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php index b0f0c448ee..57b8f84c93 100644 --- a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php +++ b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php @@ -9,6 +9,8 @@ namespace Ibexa\Tests\Integration\Core\Repository\Filtering; use Ibexa\Contracts\Core\Repository\Collections\TotalCountAwareInterface; +use Ibexa\Contracts\Core\Repository\ContentService; +use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -21,10 +23,14 @@ use Ibexa\Tests\Core\Repository\Filtering\TestContentProvider; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use IteratorAggregate; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; /** * @internal for internal use by Ibexa Kernel test cases */ +#[CoversMethod(ContentService::class, 'find')] +#[CoversMethod(LocationService::class, 'find')] abstract class BaseRepositoryFilteringTestCase extends BaseTestCase { private const PAGINATION_EXPECTED_TOTAL_COUNT = 5; @@ -46,15 +52,11 @@ abstract protected function compareWithSearchResults(Filter $filter, IteratorAgg abstract protected function getDefaultSortClause(): FilteringSortClause; /** - * @dataProvider getFilterFactories - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::find - * @covers \Ibexa\Contracts\Core\Repository\LocationService::find - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('getFilterFactories')] public function testFind(callable $filterFactory): void { $filter = $this->buildFilter( @@ -130,10 +132,6 @@ public function testFindPaginated(): void } /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::find - * - * @dataProvider getUserLimitationData - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation[] $limitations * @param string[] $expectedContentRemoteIds * @@ -141,6 +139,7 @@ public function testFindPaginated(): void * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('getUserLimitationData')] public function testFindByUserWithLimitations( array $limitations, array $expectedContentRemoteIds @@ -168,7 +167,7 @@ public function testFindByUserWithLimitations( /** * Data provider consumed by children implementations. */ - public function getFilterFactories(): iterable + public static function getFilterFactories(): iterable { // Note: Filter relying on database data cannot be instantiated here // because database data is not available yet @@ -206,7 +205,7 @@ static function (Content $parentFolder): Filter { 5, ]; - foreach ($this->getCriteriaForInitialData() as $dataSetName => $filter) { + foreach (static::getCriteriaForInitialData() as $dataSetName => $filter) { yield $dataSetName => [ static function (Content $parentFolder) use ($filter): Filter { return new Filter($filter); @@ -227,7 +226,7 @@ static function (Content $parentFolder) use ($filter): Filter { * * @see getFilterFactories */ - public function getCriteriaForInitialData(): iterable + public static function getCriteriaForInitialData(): iterable { yield 'Ancestor=/1/5/44/45/' => new Criterion\Ancestor('/1/5/44/45/'); yield 'ContentId=57' => new Criterion\ContentId(57); @@ -315,9 +314,9 @@ protected function assertTotalCount(FilteringCriterion $criterion, int $searchTo * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function getUserLimitationData(): iterable + public static function getUserLimitationData(): iterable { - $repository = $this->getRepository(false); + $repository = static::resolveRepository(false); // Content type Limitations $contentTypeService = $repository->getContentTypeService(); diff --git a/tests/integration/Core/Repository/Filtering/ContentFilteringTest.php b/tests/integration/Core/Repository/Filtering/ContentFilteringTest.php index d3fe38391c..eb5098d509 100644 --- a/tests/integration/Core/Repository/Filtering/ContentFilteringTest.php +++ b/tests/integration/Core/Repository/Filtering/ContentFilteringTest.php @@ -26,6 +26,7 @@ use Ibexa\Tests\Core\Repository\Filtering\TestContentProvider; use function iterator_to_array; use IteratorAggregate; +use PHPUnit\Framework\Attributes\DataProvider; use function sprintf; /** @@ -38,16 +39,14 @@ final class ContentFilteringTest extends BaseRepositoryFilteringTestCase /** * @return iterable */ - public function isBookmarkedProvider(): iterable + public static function isBookmarkedProvider(): iterable { // [isBookmarkedCriterion, initialCount, afterCreateCount, afterDeleteCount] yield 'bookmarked=true' => [true, 0, 1, 0]; yield 'bookmarked=false' => [false, 1, 0, 1]; } - /** - * @dataProvider isBookmarkedProvider - */ + #[DataProvider('isBookmarkedProvider')] public function testIsBookmarkedTrueAndFalse( bool $isBookmarked, int $initialCount, @@ -337,7 +336,7 @@ protected function getDefaultSortClause(): FilteringSortClause return new SortClause\ContentId(); } - public function getFilterFactories(): iterable + public static function getFilterFactories(): iterable { yield from parent::getFilterFactories(); @@ -444,14 +443,13 @@ public function testFindContentWithExternalStorageFields(): void } /** - * @dataProvider getDataForTestFindContentWithLocationCriterion - * * @param string[] $expectedContentRemoteIds * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('getDataForTestFindContentWithLocationCriterion')] public function testFindContentUsingLocationCriterion( callable $filterFactory, array $expectedContentRemoteIds @@ -464,7 +462,7 @@ public function testFindContentUsingLocationCriterion( ); } - public function getDataForTestFindContentWithLocationCriterion(): iterable + public static function getDataForTestFindContentWithLocationCriterion(): iterable { yield 'Content items with secondary Location ignored in content filtering, sorted by Content ID' => [ static function (Content $parentFolder): Filter { @@ -522,10 +520,9 @@ protected function assertFoundContentItemsByRemoteIds( } /** - * @dataProvider getListOfSupportedSortClauses - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException */ + #[DataProvider('getListOfSupportedSortClauses')] public function testFindWithSortClauses(string $sortClauseFQCN): void { $this->performAndAssertSimpleSortClauseQuery(new $sortClauseFQCN(Query::SORT_ASC)); @@ -618,7 +615,7 @@ public function testObjectStateIdCriterionOnMultipleObjectStates(): void } } - public function getListOfSupportedSortClauses(): iterable + public static function getListOfSupportedSortClauses(): iterable { yield 'Content\\Id' => [SortClause\ContentId::class]; yield 'ContentName' => [SortClause\ContentName::class]; diff --git a/tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php b/tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php index 5f278b1cdf..c0d5170aad 100644 --- a/tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php +++ b/tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php @@ -16,12 +16,12 @@ use Ibexa\Tests\Integration\Core\Repository\Filtering\Fixtures\LegacyLocationSortClause; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use function iterator_to_array; +use PHPUnit\Framework\Attributes\Group; /** * Integration BC check for legacy location sort clauses wired through the container. - * - * @group repository */ +#[Group('repository')] final class LegacyContentFilteringTest extends RepositoryTestCase { public function testLegacyLocationSortClause(): void diff --git a/tests/integration/Core/Repository/Filtering/LocationFilteringTest.php b/tests/integration/Core/Repository/Filtering/LocationFilteringTest.php index 460ecd524b..04d58ba247 100644 --- a/tests/integration/Core/Repository/Filtering/LocationFilteringTest.php +++ b/tests/integration/Core/Repository/Filtering/LocationFilteringTest.php @@ -16,6 +16,7 @@ use Ibexa\Contracts\Core\Repository\Values\Filter\Filter; use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringSortClause; use IteratorAggregate; +use PHPUnit\Framework\Attributes\DataProvider; /** * @internal @@ -54,16 +55,14 @@ public function testBookmarkedAndNotBookmarkedCountsMatchTotal(): void /** * @return iterable */ - public function isBookmarkedProvider(): iterable + public static function isBookmarkedProvider(): iterable { // [isBookmarkedCriterion, initialCount, afterCreateCount, afterDeleteCount] yield 'bookmarked=true' => [true, 0, 1, 0]; yield 'bookmarked=false' => [false, 1, 0, 1]; } - /** - * @dataProvider isBookmarkedProvider - */ + #[DataProvider('isBookmarkedProvider')] public function testIsBookmarkedTrueAndFalse( bool $isBookmarked, int $initialCount, @@ -189,7 +188,7 @@ protected function getDefaultSortClause(): FilteringSortClause return new Query\SortClause\Location\Id(); } - public function getCriteriaForInitialData(): iterable + public static function getCriteriaForInitialData(): iterable { yield 'Location\\Depth=2' => new Criterion\Location\Depth(Criterion\Operator::EQ, 2); yield 'Location\\IsMainLocation' => new Criterion\Location\IsMainLocation( diff --git a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php index e5e35eb203..e6fbd98999 100644 --- a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php @@ -8,23 +8,26 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\LanguageService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the LanguageService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser - * - * @group integration - * @group authorization */ +#[CoversClass(LanguageService::class)] +#[CoversMethod(LanguageService::class, 'createLanguage()')] +#[CoversMethod(LanguageService::class, 'updateLanguageName()')] +#[CoversMethod(LanguageService::class, 'enableLanguage()')] +#[CoversMethod(LanguageService::class, 'disableLanguage()')] +#[CoversMethod(LanguageService::class, 'deleteLanguage()')] +#[Group('integration')] +#[Group('authorization')] class LanguageServiceAuthorizationTest extends BaseTestCase { /** * Test for the createLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage() */ public function testCreateLanguageThrowsUnauthorizedException() { @@ -55,8 +58,6 @@ public function testCreateLanguageThrowsUnauthorizedException() /** * Test for the updateLanguageName() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::updateLanguageName() */ public function testUpdateLanguageNameThrowsUnauthorizedException() { @@ -91,8 +92,6 @@ public function testUpdateLanguageNameThrowsUnauthorizedException() /** * Test for the enableLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::enableLanguage() */ public function testEnableLanguageThrowsUnauthorizedException() { @@ -125,8 +124,6 @@ public function testEnableLanguageThrowsUnauthorizedException() /** * Test for the disableLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::disableLanguage() */ public function testDisableLanguageThrowsUnauthorizedException() { @@ -159,8 +156,6 @@ public function testDisableLanguageThrowsUnauthorizedException() /** * Test for the deleteLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::deleteLanguage() */ public function testDeleteLanguageThrowsUnauthorizedException() { diff --git a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php index d4fd5ad626..1e97e130dc 100644 --- a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php +++ b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php @@ -7,16 +7,20 @@ namespace Ibexa\Tests\Integration\Core\Repository; +use Ibexa\Contracts\Core\Repository\LanguageService; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy as LegacySetupFactory; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for maximum number of languages supported in the LanguageService. * * @see \Ibexa\Contracts\Core\Repository\LanguageService - * - * @group integration - * @group language */ +#[CoversMethod(LanguageService::class, 'createLanguage()')] +#[Group('integration')] +#[Group('language')] class LanguageServiceMaximumSupportedLanguagesTest extends BaseTestCase { /** @var \Ibexa\Contracts\Core\Repository\LanguageService */ @@ -73,11 +77,8 @@ protected function tearDown(): void /** * Test for the number of maximum language that can be created. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LanguageServiceTest::testNewLanguageCreateStruct */ + #[DependsExternal(LanguageServiceTest::class, 'testNewLanguageCreateStruct')] public function testCreateMaximumLanguageLimit() { $this->expectException(\RuntimeException::class); diff --git a/tests/integration/Core/Repository/LanguageServiceTest.php b/tests/integration/Core/Repository/LanguageServiceTest.php index 3226bce22e..c73b1c881a 100644 --- a/tests/integration/Core/Repository/LanguageServiceTest.php +++ b/tests/integration/Core/Repository/LanguageServiceTest.php @@ -10,23 +10,36 @@ use Exception; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\LanguageService; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\LanguageCreateStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the LanguageService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService - * - * @group integration - * @group language */ +#[CoversClass(LanguageService::class)] +#[CoversMethod(LanguageService::class, 'newLanguageCreateStruct')] +#[CoversMethod(LanguageService::class, 'createLanguage')] +#[CoversMethod(LanguageService::class, 'loadLanguageById')] +#[CoversMethod(LanguageService::class, 'loadLanguageListById')] +#[CoversMethod(LanguageService::class, 'updateLanguageName')] +#[CoversMethod(LanguageService::class, 'enableLanguage')] +#[CoversMethod(LanguageService::class, 'disableLanguage')] +#[CoversMethod(LanguageService::class, 'loadLanguage')] +#[CoversMethod(LanguageService::class, 'loadLanguageListByCode')] +#[CoversMethod(LanguageService::class, 'loadLanguages')] +#[CoversMethod(LanguageService::class, 'deleteLanguage')] +#[CoversMethod(LanguageService::class, 'getDefaultLanguageCode')] +#[Group('integration')] +#[Group('language')] class LanguageServiceTest extends BaseTestCase { /** * Test for the newLanguageCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::newLanguageCreateStruct */ public function testNewLanguageCreateStruct() { @@ -57,11 +70,8 @@ public function testNewLanguageCreateStruct() * Test for the createLanguage() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Language - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testNewLanguageCreateStruct */ + #[Depends('testNewLanguageCreateStruct')] public function testCreateLanguage() { $repository = $this->getRepository(); @@ -89,11 +99,8 @@ public function testCreateLanguage() * Test for the createLanguage() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Language $language - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testCreateLanguageSetsIdPropertyOnReturnedLanguage($language) { self::assertNotNull($language->id); @@ -103,11 +110,8 @@ public function testCreateLanguageSetsIdPropertyOnReturnedLanguage($language) * Test for the createLanguage() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Language $language - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testCreateLanguageSetsExpectedProperties($language) { self::assertEquals( @@ -126,11 +130,8 @@ public function testCreateLanguageSetsExpectedProperties($language) /** * Test for the createLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testCreateLanguageThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -156,12 +157,8 @@ public function testCreateLanguageThrowsInvalidArgumentException() /** * Test for the loadLanguageById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageById - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageListById - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testLoadLanguageById() { $repository = $this->getRepository(); @@ -191,12 +188,8 @@ public function testLoadLanguageById() /** * Test for the loadLanguageById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageById - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageListById - * - * @depends testLoadLanguageById */ + #[Depends('testLoadLanguageById')] public function testLoadLanguageByIdThrowsNotFoundException() { $repository = $this->getRepository(); @@ -218,11 +211,8 @@ public function testLoadLanguageByIdThrowsNotFoundException() /** * Test for the updateLanguageName() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::updateLanguageName - * - * @depends testLoadLanguageById */ + #[Depends('testLoadLanguageById')] public function testUpdateLanguageName() { $repository = $this->getRepository(); @@ -266,8 +256,6 @@ public function testUpdateLanguageName() /** * Test service method for updating language name throwing InvalidArgumentException. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::updateLanguageName */ public function testUpdateLanguageNameThrowsInvalidArgumentException() { @@ -283,11 +271,8 @@ public function testUpdateLanguageNameThrowsInvalidArgumentException() /** * Test for the enableLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::enableLanguage - * - * @depends testLoadLanguageById */ + #[Depends('testLoadLanguageById')] public function testEnableLanguage() { $repository = $this->getRepository(); @@ -313,11 +298,8 @@ public function testEnableLanguage() /** * Test for the disableLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::disableLanguage - * - * @depends testLoadLanguageById */ + #[Depends('testLoadLanguageById')] public function testDisableLanguage() { $repository = $this->getRepository(); @@ -343,12 +325,8 @@ public function testDisableLanguage() /** * Test for the loadLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguage - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageListByCode - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testLoadLanguage() { $repository = $this->getRepository(); @@ -395,12 +373,8 @@ public function testLoadLanguage() /** * Test for the loadLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguage - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguageListByCode - * - * @depends testLoadLanguage */ + #[Depends('testLoadLanguage')] public function testLoadLanguageThrowsNotFoundException() { $repository = $this->getRepository(); @@ -419,8 +393,6 @@ public function testLoadLanguageThrowsNotFoundException() /** * Test service method for loading language throwing InvalidArgumentException. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguage */ public function testLoadLanguageThrowsInvalidArgumentException() { @@ -434,12 +406,9 @@ public function testLoadLanguageThrowsInvalidArgumentException() /** * Test for the loadLanguages() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguages - * - * @depends testCreateLanguage - * @depends testLoadLanguage */ + #[Depends('testCreateLanguage')] + #[Depends('testLoadLanguage')] public function testLoadLanguages() { $repository = $this->getRepository(); @@ -480,11 +449,8 @@ public function testLoadLanguages() /** * Test for the loadLanguages() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::loadLanguages - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function loadLanguagesReturnsAnEmptyArrayByDefault() { $repository = $this->getRepository(); @@ -496,11 +462,8 @@ public function loadLanguagesReturnsAnEmptyArrayByDefault() /** * Test for the deleteLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::deleteLanguage - * - * @depends testLoadLanguages */ + #[Depends('testLoadLanguages')] public function testDeleteLanguage() { $repository = $this->getRepository(); @@ -539,11 +502,8 @@ public function testDeleteLanguage() * NOTE: This test has a dependency against several methods in the content * service, but because there is no topological sort for test dependencies * we cannot declare them here. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::deleteLanguage - * - * @depends testDeleteLanguage */ + #[Depends('testDeleteLanguage')] public function testDeleteLanguageThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -585,15 +545,13 @@ public function testDeleteLanguageThrowsInvalidArgumentException() /** * Test for the getDefaultLanguageCode() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::getDefaultLanguageCode */ public function testGetDefaultLanguageCode() { $repository = $this->getRepository(); $languageService = $repository->getContentLanguageService(); - self::assertRegExp( + self::assertMatchesRegularExpression( '(^[a-z]{3}\-[A-Z]{2}$)', $languageService->getDefaultLanguageCode() ); @@ -601,11 +559,8 @@ public function testGetDefaultLanguageCode() /** * Test for the createLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testCreateLanguageInTransactionWithRollback() { $repository = $this->getRepository(); @@ -647,11 +602,8 @@ public function testCreateLanguageInTransactionWithRollback() /** * Test for the createLanguage() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::createLanguage - * - * @depends testCreateLanguage */ + #[Depends('testCreateLanguage')] public function testCreateLanguageInTransactionWithCommit() { $repository = $this->getRepository(); @@ -689,11 +641,8 @@ public function testCreateLanguageInTransactionWithCommit() /** * Test for the updateLanguageName() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::updateLanguageName - * - * @depends testUpdateLanguageName */ + #[Depends('testUpdateLanguageName')] public function testUpdateLanguageNameInTransactionWithRollback() { $repository = $this->getRepository(); @@ -728,11 +677,8 @@ public function testUpdateLanguageNameInTransactionWithRollback() /** * Test for the updateLanguageName() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LanguageService::updateLanguageName - * - * @depends testUpdateLanguageName */ + #[Depends('testUpdateLanguageName')] public function testUpdateLanguageNameInTransactionWithCommit() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php b/tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php index 7e0fdf8cc7..a1d6b87adf 100644 --- a/tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php +++ b/tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; +use PHPUnit\Framework\Attributes\DataProvider; /** * Test mix of chosen core Content Limitations. @@ -25,9 +26,9 @@ class ContentLimitationsMixIntegrationTest extends BaseLimitationIntegrationTest * * This provider also checks if all registered Limitations are used. */ - public function providerForCanUser(): array + public static function providerForCanUser(): array { - $commonLimitations = $this->getCommonLimitations(); + $commonLimitations = self::getCommonLimitations(); $contentCreateLimitations = array_merge( $commonLimitations, [ @@ -65,8 +66,6 @@ public function providerForCanUser(): array } /** - * @dataProvider providerForCanUser - * * @param string $module * @param string $function * @param array $limitations @@ -78,6 +77,7 @@ public function providerForCanUser(): array * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUser')] public function testCanUser( string $module, string $function, @@ -107,7 +107,7 @@ public function testCanUser( * * @return \Ibexa\Contracts\Core\Repository\Values\User\Limitation[] */ - private function getCommonLimitations(): array + private static function getCommonLimitations(): array { return [ new Limitation\ContentTypeLimitation([self::LIMITATION_VALUES => [1]]), diff --git a/tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php b/tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php index 95b7b7f799..5a24209361 100644 --- a/tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php +++ b/tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php @@ -11,12 +11,13 @@ use Ibexa\Contracts\Core\Limitation\Target\Version; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation; +use PHPUnit\Framework\Attributes\DataProvider; class LocationLimitationIntegrationTest extends BaseLimitationIntegrationTestCase { private const LOCATION_ID = 2; - public function providerForCanUserEditOrPublishContent(): array + public static function providerForCanUserEditOrPublishContent(): array { $limitationRoot = new LocationLimitation(); $limitationRoot->limitationValues = [self::LOCATION_ID]; @@ -27,8 +28,6 @@ public function providerForCanUserEditOrPublishContent(): array } /** - * @dataProvider providerForCanUserEditOrPublishContent - * * @param array $limitations * @param bool $expectedResult * @@ -36,6 +35,7 @@ public function providerForCanUserEditOrPublishContent(): array * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserEditOrPublishContent')] public function testCanUserEditContent(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); @@ -65,12 +65,11 @@ public function testCanUserEditContent(array $limitations, bool $expectedResult) } /** - * @dataProvider providerForCanUserEditOrPublishContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserEditOrPublishContent')] public function testCanUserReadTrashedContent(array $limitations, bool $expectedResult): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php index 1268b52fd0..621ae9e310 100644 --- a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php @@ -8,30 +8,40 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\OwnerLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the LocationService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser - * - * @group integration - * @group authorization */ +#[CoversClass(LocationService::class)] +#[CoversMethod(LocationService::class, 'createLocation()')] +#[CoversMethod(LocationService::class, 'loadLocation()')] +#[CoversMethod(LocationService::class, 'loadLocationList')] +#[CoversMethod(LocationService::class, 'loadLocationByRemoteId()')] +#[CoversMethod(LocationService::class, 'loadLocations()')] +#[CoversMethod(LocationService::class, 'updateLocation()')] +#[CoversMethod(LocationService::class, 'swapLocation()')] +#[CoversMethod(LocationService::class, 'hideLocation()')] +#[CoversMethod(LocationService::class, 'unhideLocation()')] +#[CoversMethod(LocationService::class, 'deleteLocation()')] +#[CoversMethod(LocationService::class, 'copySubtree()')] +#[CoversMethod(LocationService::class, 'moveSubtree()')] +#[Group('integration')] +#[Group('authorization')] class LocationServiceAuthorizationTest extends BaseTestCase { /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testCreateLocation */ + #[DependsExternal(LocationServiceTest::class, 'testCreateLocation')] public function testCreateLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -70,11 +80,8 @@ public function testCreateLocationThrowsUnauthorizedException() /** * Test for the createLocation() method. Tests a case when user doesn't have content/manage_locations policy for the new location ID. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testCreateLocation */ + #[DependsExternal(LocationServiceTest::class, 'testCreateLocation')] public function testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentManageLocationsPolicy() { $this->expectException(UnauthorizedException::class); @@ -131,11 +138,8 @@ public function testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentM /** * Test for the loadLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testLoadLocation */ + #[DependsExternal(LocationServiceTest::class, 'testLoadLocation')] public function testLoadLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -160,8 +164,6 @@ public function testLoadLocationThrowsUnauthorizedException() /** * Test for the loadLocationList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList */ public function testLoadLocationListFiltersUnauthorizedLocations(): void { @@ -181,11 +183,8 @@ public function testLoadLocationListFiltersUnauthorizedLocations(): void /** * Test for the loadLocationByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationByRemoteId() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testLoadLocationByRemoteId */ + #[DependsExternal(LocationServiceTest::class, 'testLoadLocationByRemoteId')] public function testLoadLocationByRemoteIdThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -211,11 +210,8 @@ public function testLoadLocationByRemoteIdThrowsUnauthorizedException() /** * Test for the loadLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testLoadLocations */ + #[DependsExternal(LocationServiceTest::class, 'testLoadLocations')] public function testLoadLocationsNoAccess() { $repository = $this->getRepository(); @@ -241,11 +237,8 @@ public function testLoadLocationsNoAccess() /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testUpdateLocation */ + #[DependsExternal(LocationServiceTest::class, 'testUpdateLocation')] public function testUpdateLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -281,11 +274,8 @@ public function testUpdateLocationThrowsUnauthorizedException() /** * Test for the swapLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testSwapLocation */ + #[DependsExternal(LocationServiceTest::class, 'testSwapLocation')] public function testSwapLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -323,11 +313,8 @@ public function testSwapLocationThrowsUnauthorizedException() /** * Test for the hideLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::hideLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testHideLocation */ + #[DependsExternal(LocationServiceTest::class, 'testHideLocation')] public function testHideLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -354,11 +341,8 @@ public function testHideLocationThrowsUnauthorizedException() /** * Test for the unhideLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::unhideLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testUnhideLocation */ + #[DependsExternal(LocationServiceTest::class, 'testUnhideLocation')] public function testUnhideLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -388,11 +372,8 @@ public function testUnhideLocationThrowsUnauthorizedException() /** * Test for the deleteLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testDeleteLocation */ + #[DependsExternal(LocationServiceTest::class, 'testDeleteLocation')] public function testDeleteLocationThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -417,9 +398,6 @@ public function testDeleteLocationThrowsUnauthorizedException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() - */ public function testDeleteLocationThrowsUnauthorizedExceptionWithLanguageLimitation(): void { $repository = $this->getRepository(); @@ -452,11 +430,8 @@ public function testDeleteLocationThrowsUnauthorizedExceptionWithLanguageLimitat /** * Test for the deleteLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testDeleteLocation */ + #[DependsExternal(LocationServiceTest::class, 'testDeleteLocation')] public function testDeleteLocationWithSubtreeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -551,11 +526,8 @@ public function testDeleteLocationWithSubtreeThrowsUnauthorizedException() /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testCopySubtree */ + #[DependsExternal(LocationServiceTest::class, 'testCopySubtree')] public function testCopySubtreeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -596,11 +568,8 @@ public function testCopySubtreeThrowsUnauthorizedException() /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree() - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testMoveSubtree */ + #[DependsExternal(LocationServiceTest::class, 'testMoveSubtree')] public function testMoveSubtreeThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/LocationServiceTest.php b/tests/integration/Core/Repository/LocationServiceTest.php index a87338e808..c9f8b8e0be 100644 --- a/tests/integration/Core/Repository/LocationServiceTest.php +++ b/tests/integration/Core/Repository/LocationServiceTest.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\URLAliasService as URLAliasServiceInterface; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct; @@ -27,22 +28,49 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the LocationService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService - * - * @group location */ +#[CoversClass(LocationService::class)] +#[CoversMethod(LocationService::class, 'newLocationCreateStruct()')] +#[CoversMethod(LocationService::class, 'createLocation()')] +#[CoversMethod(LocationService::class, 'createLocation')] +#[CoversMethod(LocationService::class, 'loadLocation')] +#[CoversMethod(LocationService::class, 'loadLocation()')] +#[CoversMethod(LocationService::class, 'loadLocationList')] +#[CoversMethod(LocationService::class, 'loadLocationByRemoteId()')] +#[CoversMethod(LocationService::class, 'loadLocations()')] +#[CoversMethod(LocationService::class, 'loadLocations($contentInfo, $rootLocation)')] +#[CoversMethod(LocationService::class, 'loadLocationChildren')] +#[CoversMethod(LocationService::class, 'loadParentLocationsForDraftContent')] +#[CoversMethod(LocationService::class, 'getLocationChildCount()')] +#[CoversMethod(LocationService::class, 'loadLocationChildren()')] +#[CoversMethod(LocationService::class, 'newLocationUpdateStruct')] +#[CoversMethod(LocationService::class, 'updateLocation()')] +#[CoversMethod(LocationService::class, 'swapLocation()')] +#[CoversMethod(LocationService::class, 'swapLocation')] +#[CoversMethod(LocationService::class, 'hideLocation()')] +#[CoversMethod(LocationService::class, 'unhideLocation()')] +#[CoversMethod(LocationService::class, 'deleteLocation()')] +#[CoversMethod(LocationService::class, 'deleteLocation')] +#[CoversMethod(LocationService::class, 'copySubtree()')] +#[CoversMethod(LocationService::class, 'copySubtree')] +#[CoversMethod(LocationService::class, 'moveSubtree')] +#[CoversMethod(LocationService::class, 'moveSubtree()')] +#[Group('location')] class LocationServiceTest extends BaseTestCase { /** * Test for the newLocationCreateStruct() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::newLocationCreateStruct() */ public function testNewLocationCreateStruct() { @@ -70,11 +98,8 @@ public function testNewLocationCreateStruct() * Test for the newLocationCreateStruct() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct $locationCreate - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::newLocationCreateStruct() - * - * @depends testNewLocationCreateStruct */ + #[Depends('testNewLocationCreateStruct')] public function testNewLocationCreateStructValues(LocationCreateStruct $locationCreate) { $this->assertPropertiesCorrect( @@ -93,11 +118,8 @@ public function testNewLocationCreateStructValues(LocationCreateStruct $location /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testNewLocationCreateStruct */ + #[Depends('testNewLocationCreateStruct')] public function testCreateLocation() { $repository = $this->getRepository(); @@ -141,12 +163,9 @@ public function testCreateLocation() /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation - * - * @depends testCreateLocation - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testHideContent */ + #[Depends('testCreateLocation')] + #[DependsExternal(ContentServiceTest::class, 'testHideContent')] public function testCreateLocationChecksContentVisibility(): void { $repository = $this->getRepository(); @@ -183,8 +202,6 @@ public function testCreateLocationChecksContentVisibility(): void /** * Test for the createLocation() method with utilizing default ContentType sorting options. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation */ public function testCreateLocationWithContentTypeSortingOptions(): void { @@ -220,11 +237,8 @@ public function testCreateLocationWithContentTypeSortingOptions(): void /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testCreateLocation */ + #[Depends('testCreateLocation')] public function testCreateLocationStructValues(array $data) { $locationCreate = $data['locationCreate']; @@ -252,11 +266,8 @@ public function testCreateLocationStructValues(array $data) /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testNewLocationCreateStruct */ + #[Depends('testNewLocationCreateStruct')] public function testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBelowParent() { $this->expectException(InvalidArgumentException::class); @@ -287,11 +298,8 @@ public function testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBe /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testNewLocationCreateStruct */ + #[Depends('testNewLocationCreateStruct')] public function testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocationOfContent() { $this->expectException(InvalidArgumentException::class); @@ -322,11 +330,8 @@ public function testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocat /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testNewLocationCreateStruct */ + #[Depends('testNewLocationCreateStruct')] public function testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists() { $this->expectException(InvalidArgumentException::class); @@ -357,13 +362,9 @@ public function testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists() /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testNewLocationCreateStruct - * - * @dataProvider dataProviderForOutOfRangeLocationPriority */ + #[Depends('testNewLocationCreateStruct')] + #[DataProvider('dataProviderForOutOfRangeLocationPriority')] public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority) { $this->expectException(InvalidArgumentException::class); @@ -396,18 +397,15 @@ public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfR /* END: Use Case */ } - public function dataProviderForOutOfRangeLocationPriority() + public static function dataProviderForOutOfRangeLocationPriority() { return [[-2147483649], [2147483648]]; } /** * Test for the createLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::createLocation() - * - * @depends testCreateLocation */ + #[Depends('testCreateLocation')] public function testCreateLocationInTransactionWithRollback() { $repository = $this->getRepository(); @@ -456,11 +454,8 @@ public function testCreateLocationInTransactionWithRollback() * Test for the loadLocation() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Location - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocation - * - * @depends testCreateLocation */ + #[Depends('testCreateLocation')] public function testLoadLocation() { $repository = $this->getRepository(); @@ -484,11 +479,8 @@ public function testLoadLocation() /** * Test for the loadLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testLoadLocationRootStructValues() { $repository = $this->getRepository(); @@ -563,11 +555,8 @@ private function assertRootLocationStructValues(Location $location): void * Test for the loadLocation() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testLoadLocationStructValues(Location $location) { $this->assertPropertiesCorrect( @@ -656,11 +645,8 @@ public function testLoadLocationThrowsNotFoundExceptionForNotAvailableContent(): /** * Test for the loadLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocation() - * - * @depends testCreateLocation */ + #[Depends('testCreateLocation')] public function testLoadLocationThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -679,8 +665,6 @@ public function testLoadLocationThrowsNotFoundException() /** * Test for the loadLocationList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList */ public function testLoadLocationList(): void { @@ -699,11 +683,8 @@ public function testLoadLocationList(): void /** * Test for the loadLocationList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList - * - * @depends testLoadLocationList */ + #[Depends('testLoadLocationList')] public function testLoadLocationListPrioritizedLanguagesFallback(): void { $repository = $this->getRepository(); @@ -720,11 +701,8 @@ public function testLoadLocationListPrioritizedLanguagesFallback(): void /** * Test for the loadLocationList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList - * - * @depends testLoadLocationListPrioritizedLanguagesFallback */ + #[Depends('testLoadLocationListPrioritizedLanguagesFallback')] public function testLoadLocationListPrioritizedLanguagesFallbackAndAlwaysAvailable(): void { $repository = $this->getRepository(); @@ -744,8 +722,6 @@ public function testLoadLocationListPrioritizedLanguagesFallbackAndAlwaysAvailab /** * Test for the loadLocationList() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList */ public function testLoadLocationListWithRootLocationId() { @@ -766,8 +742,6 @@ public function testLoadLocationListWithRootLocationId() * Test for the loadLocationList() method. * * Ensures the list is returned in the same order as passed IDs array. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationList */ public function testLoadLocationListInCorrectOrder() { @@ -788,11 +762,8 @@ public function testLoadLocationListInCorrectOrder() /** * Test for the loadLocationByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationByRemoteId() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testLoadLocationByRemoteId() { $repository = $this->getRepository(); @@ -813,11 +784,8 @@ public function testLoadLocationByRemoteId() /** * Test for the loadLocationByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationByRemoteId() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testLoadLocationByRemoteIdThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -836,11 +804,8 @@ public function testLoadLocationByRemoteIdThrowsNotFoundException() /** * Test for the loadLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations() - * - * @depends testCreateLocation */ + #[Depends('testCreateLocation')] public function testLoadLocations() { $repository = $this->getRepository(); @@ -869,11 +834,8 @@ public function testLoadLocations() /** * Test for the loadLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations() - * - * @depends testLoadLocations */ + #[Depends('testLoadLocations')] public function testLoadLocationsContent(array $locations) { self::assertCount(1, $locations); @@ -903,11 +865,8 @@ static function (Location $location) { * Test for the loadLocations() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Location[] - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations($contentInfo, $rootLocation) - * - * @depends testLoadLocations */ + #[Depends('testLoadLocations')] public function testLoadLocationsLimitedSubtree() { $repository = $this->getRepository(); @@ -951,11 +910,8 @@ public function testLoadLocationsLimitedSubtree() * Test for the loadLocations() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location[] $locations - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations() - * - * @depends testLoadLocationsLimitedSubtree */ + #[Depends('testLoadLocationsLimitedSubtree')] public function testLoadLocationsLimitedSubtreeContent(array $locations) { self::assertCount(1, $locations); @@ -968,11 +924,8 @@ public function testLoadLocationsLimitedSubtreeContent(array $locations) /** * Test for the loadLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations() - * - * @depends testLoadLocations */ + #[Depends('testLoadLocations')] public function testLoadLocationsThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -999,11 +952,8 @@ public function testLoadLocationsThrowsBadStateException() /** * Test for the loadLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocations($contentInfo, $rootLocation) - * - * @depends testLoadLocations */ + #[Depends('testLoadLocations')] public function testLoadLocationsThrowsBadStateExceptionLimitedSubtree() { $this->expectException(BadStateException::class); @@ -1035,11 +985,8 @@ public function testLoadLocationsThrowsBadStateExceptionLimitedSubtree() /** * Test for the loadLocationChildren() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testLoadLocationChildren() { $repository = $this->getRepository(); @@ -1069,8 +1016,6 @@ public function testLoadLocationChildren() /** * Test loading parent Locations for draft Content. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadParentLocationsForDraftContent */ public function testLoadParentLocationsForDraftContent() { @@ -1106,10 +1051,10 @@ public function testLoadParentLocationsForDraftContent() /** * Test that trying to load parent Locations throws Exception if Content is not a draft. * - * @depends testLoadParentLocationsForDraftContent * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ + #[Depends('testLoadParentLocationsForDraftContent')] public function testLoadParentLocationsForDraftContentThrowsBadStateException(Content $contentDraft) { $this->expectException(BadStateException::class); @@ -1126,8 +1071,6 @@ public function testLoadParentLocationsForDraftContentThrowsBadStateException(Co /** * Test for the getLocationChildCount() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::getLocationChildCount() */ public function testGetLocationChildCount() { @@ -1144,8 +1087,6 @@ public function testGetLocationChildCount() /** * Test for the getLocationChildCount() method with a limitation on the number of children. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::getLocationChildCount() */ public function testGetLocationChildCountWithLimitation(): void { @@ -1163,11 +1104,8 @@ public function testGetLocationChildCountWithLimitation(): void /** * Test for the loadLocationChildren() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren() - * - * @depends testLoadLocationChildren */ + #[Depends('testLoadLocationChildren')] public function testLoadLocationChildrenData(LocationList $locations) { self::assertCount(5, $locations->locations); @@ -1197,9 +1135,6 @@ static function (Location $location) { ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - */ public function testLoadLocationChildrenWithOffset(): LocationList { $repository = $this->getRepository(); @@ -1222,11 +1157,8 @@ public function testLoadLocationChildrenWithOffset(): LocationList * Test for the loadLocationChildren() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\LocationList $locations - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - * - * @depends testLoadLocationChildrenWithOffset */ + #[Depends('testLoadLocationChildrenWithOffset')] public function testLoadLocationChildrenDataWithOffset(LocationList $locations): void { self::assertCount(3, $locations->locations); @@ -1248,11 +1180,7 @@ public function testLoadLocationChildrenDataWithOffset(LocationList $locations): ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - * - * @depends testLoadLocationChildren - */ + #[Depends('testLoadLocationChildren')] public function testLoadLocationChildrenWithOffsetAndLimit(): LocationList { $repository = $this->getRepository(); @@ -1271,11 +1199,7 @@ public function testLoadLocationChildrenWithOffsetAndLimit(): LocationList return $childLocations; } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - * - * @depends testLoadLocationChildrenWithOffsetAndLimit - */ + #[Depends('testLoadLocationChildrenWithOffsetAndLimit')] public function testLoadLocationChildrenDataWithOffsetAndLimit(LocationList $locations): void { self::assertCount(2, $locations->locations); @@ -1296,7 +1220,7 @@ public function testLoadLocationChildrenDataWithOffsetAndLimit(LocationList $loc ); } - public function providerForLoadLocationChildrenRespectsParentSortingClauses(): iterable + public static function providerForLoadLocationChildrenRespectsParentSortingClauses(): iterable { yield 'Name_ASC' => [ Location::SORT_FIELD_NAME, @@ -1391,12 +1315,9 @@ private function createStructureForTestLoadLocationChildrenRespectsParentSorting } /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::loadLocationChildren - * - * @dataProvider providerForLoadLocationChildrenRespectsParentSortingClauses - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception */ + #[DataProvider('providerForLoadLocationChildrenRespectsParentSortingClauses')] public function testLoadLocationChildrenRespectsParentSortingClauses( int $sortField, int $sortOrder, @@ -1428,8 +1349,6 @@ static function (Location $location) { /** * Test for the newLocationUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::newLocationUpdateStruct */ public function testNewLocationUpdateStruct() { @@ -1459,11 +1378,8 @@ public function testNewLocationUpdateStruct() /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testUpdateLocation() { $repository = $this->getRepository(); @@ -1498,11 +1414,8 @@ public function testUpdateLocation() /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testUpdateLocation */ + #[Depends('testUpdateLocation')] public function testUpdateLocationStructValues(array $data) { $originalLocation = $data['originalLocation']; @@ -1529,11 +1442,8 @@ public function testUpdateLocationStructValues(array $data) /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testUpdateLocationWithSameRemoteId() { $repository = $this->getRepository(); @@ -1565,11 +1475,8 @@ public function testUpdateLocationWithSameRemoteId() /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testUpdateLocationThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -1595,13 +1502,9 @@ public function testUpdateLocationThrowsInvalidArgumentException() /** * Test for the updateLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testLoadLocation - * - * @dataProvider dataProviderForOutOfRangeLocationPriority */ + #[Depends('testLoadLocation')] + #[DataProvider('dataProviderForOutOfRangeLocationPriority')] public function testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority) { $this->expectException(InvalidArgumentException::class); @@ -1628,11 +1531,8 @@ public function testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfR /** * Test for the updateLocation() method. * Ref EZP-23302: Update Location fails if no change is performed with the update. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::updateLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testUpdateLocationTwice() { $repository = $this->getRepository(); @@ -1660,11 +1560,8 @@ public function testUpdateLocationTwice() /** * Test for the swapLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testSwapLocation() { $repository = $this->getRepository(); @@ -1721,7 +1618,6 @@ public function testSwapLocation() /** * Test for the swapLocation() method with custom aliases. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -1764,7 +1660,6 @@ public function testSwapLocationForContentWithCustomUrlAliases(): void /** * Test swapping secondary Location with main Location. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation * * @see https://issues.ibexa.co/browse/EZP-28663 * @@ -1871,12 +1766,11 @@ static function (Location $location) { } /** - * @depends testSwapLocationForMainAndSecondaryLocation - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $contentItems Content items created by testSwapLocationForSecondaryLocation * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[Depends('testSwapLocationForMainAndSecondaryLocation')] public function testSwapLocationDoesNotCorruptSearchResults(array $contentItems) { $repository = $this->getRepository(false); @@ -1920,7 +1814,6 @@ static function (SearchHit $searchHit) { /** * Test swapping two secondary (non-main) Locations. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException @@ -1977,8 +1870,6 @@ public function testSwapLocationForSecondaryLocations(): void /** * Test swapping Main Location of a Content with another one updates Content item Main Location. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation */ public function testSwapLocationUpdatesMainLocation() { @@ -2015,8 +1906,6 @@ public function testSwapLocationUpdatesMainLocation() /** * Test if location swap affects related bookmarks. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::swapLocation */ public function testBookmarksAreSwappedAfterSwapLocation() { @@ -2052,11 +1941,8 @@ public function testBookmarksAreSwappedAfterSwapLocation() /** * Test for the hideLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::hideLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testHideLocation() { $repository = $this->getRepository(); @@ -2123,11 +2009,8 @@ protected function assertSubtreeProperties(array $expectedValues, Location $loca /** * Test for the unhideLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::unhideLocation() - * - * @depends testHideLocation */ + #[Depends('testHideLocation')] public function testUnhideLocation() { $repository = $this->getRepository(); @@ -2168,11 +2051,8 @@ public function testUnhideLocation() /** * Test for the unhideLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::unhideLocation() - * - * @depends testUnhideLocation */ + #[Depends('testUnhideLocation')] public function testUnhideLocationNotUnhidesHiddenSubtree() { $repository = $this->getRepository(); @@ -2234,11 +2114,8 @@ public function testUnhideLocationNotUnhidesHiddenSubtree() /** * Test for the deleteLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testDeleteLocation() { $repository = $this->getRepository(); @@ -2284,11 +2161,8 @@ public function testDeleteLocation() /** * Test for the deleteLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() - * - * @depends testDeleteLocation */ + #[Depends('testDeleteLocation')] public function testDeleteLocationDecrementsChildCountOnParent() { $repository = $this->getRepository(); @@ -2332,8 +2206,6 @@ public function testDeleteLocationDecrementsChildCountOnParent() * Test for the deleteLocation() method. * * Related issue: EZP-21904 - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation() */ public function testDeleteContentObjectLastLocation() { @@ -2376,11 +2248,8 @@ public function testDeleteContentObjectLastLocation() /** * Test for the deleteLocation() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation - * - * @depends testDeleteLocation */ + #[Depends('testDeleteLocation')] public function testDeleteLocationDeletesRelatedBookmarks() { $repository = $this->getRepository(); @@ -2428,9 +2297,6 @@ public function testDeleteLocationDeletesRelatedBookmarks() ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::deleteLocation - */ public function testDeleteUnusedLocationWhichPreviousHadContentWithRelativeAlias(): void { $repository = $this->getRepository(false); @@ -2498,11 +2364,8 @@ public function testDeleteUnusedLocationWhichPreviousHadContentWithRelativeAlias /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testCopySubtree() { $repository = $this->getRepository(); @@ -2551,11 +2414,8 @@ public function testCopySubtree() /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testCopySubtreeWithAliases() { $repository = $this->getRepository(); @@ -2590,9 +2450,6 @@ public function testCopySubtreeWithAliases() $this->assertGeneratedAliases($urlAliasService, $expectedSubItemAliases); } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree - */ public function testCopySubtreeWithTranslatedContent(): void { $repository = $this->getRepository(); @@ -2673,11 +2530,8 @@ private function assertDefaultContentStates(ContentInfo $contentInfo) /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends testCopySubtree */ + #[Depends('testCopySubtree')] public function testCopySubtreeUpdatesSubtreeProperties() { $repository = $this->getRepository(); @@ -2740,11 +2594,8 @@ public function testCopySubtreeUpdatesSubtreeProperties() /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends testCopySubtree */ + #[Depends('testCopySubtree')] public function testCopySubtreeIncrementsChildCountOfNewParent() { $repository = $this->getRepository(); @@ -2784,9 +2635,6 @@ public function testCopySubtreeIncrementsChildCountOfNewParent() self::assertEquals($childCountBefore + 1, $childCountAfter); } - /** - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - */ public function testCopySubtreeWithInvisibleChild(): void { $repository = $this->getRepository(); @@ -2829,11 +2677,8 @@ public function testCopySubtreeWithInvisibleChild(): void /** * Test for the copySubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::copySubtree() - * - * @depends testCopySubtree */ + #[Depends('testCopySubtree')] public function testCopySubtreeThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2866,11 +2711,8 @@ public function testCopySubtreeThrowsInvalidArgumentException() /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testMoveSubtree(): void { $repository = $this->getRepository(); @@ -2917,11 +2759,8 @@ public function testMoveSubtree(): void /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testMoveSubtreeToLocationWithoutContent(): void { $repository = $this->getRepository(); @@ -2953,11 +2792,8 @@ public function testMoveSubtreeToLocationWithoutContent(): void /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testMoveSubtreeThrowsExceptionOnMoveNotIntoContainer(): void { $repository = $this->getRepository(); @@ -2987,11 +2823,8 @@ public function testMoveSubtreeThrowsExceptionOnMoveNotIntoContainer(): void /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree - * - * @depends testLoadLocation */ + #[Depends('testLoadLocation')] public function testMoveSubtreeThrowsExceptionOnMoveToSame(): void { $repository = $this->getRepository(); @@ -3017,11 +2850,8 @@ public function testMoveSubtreeThrowsExceptionOnMoveToSame(): void /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree - * - * @depends testMoveSubtree */ + #[Depends('testMoveSubtree')] public function testMoveSubtreeHidden(): void { $repository = $this->getRepository(); @@ -3071,11 +2901,8 @@ public function testMoveSubtreeHidden(): void /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree() - * - * @depends testMoveSubtree */ + #[Depends('testMoveSubtree')] public function testMoveSubtreeUpdatesSubtreeProperties() { $repository = $this->getRepository(); @@ -3133,11 +2960,8 @@ public function testMoveSubtreeUpdatesSubtreeProperties() /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree() - * - * @depends testMoveSubtreeUpdatesSubtreeProperties */ + #[Depends('testMoveSubtreeUpdatesSubtreeProperties')] public function testMoveSubtreeUpdatesSubtreePropertiesHidden() { $repository = $this->getRepository(); @@ -3199,11 +3023,8 @@ public function testMoveSubtreeUpdatesSubtreePropertiesHidden() /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree() - * - * @depends testMoveSubtree */ + #[Depends('testMoveSubtree')] public function testMoveSubtreeIncrementsChildCountOfNewParent() { $repository = $this->getRepository(); @@ -3258,11 +3079,8 @@ public function testMoveSubtreeIncrementsChildCountOfNewParent() /** * Test for the moveSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree() - * - * @depends testMoveSubtree */ + #[Depends('testMoveSubtree')] public function testMoveSubtreeDecrementsChildCountOfOldParent() { $repository = $this->getRepository(); @@ -3318,7 +3136,6 @@ public function testMoveSubtreeDecrementsChildCountOfOldParent() /** * Test moving invisible (hidden by parent) subtree. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -3358,9 +3175,8 @@ public function testMoveInvisibleSubtree() /** * Test for the moveSubtree() method. - * - * @depends testMoveSubtree */ + #[Depends('testMoveSubtree')] public function testMoveSubtreeThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -3398,7 +3214,6 @@ public function testMoveSubtreeThrowsInvalidArgumentException(): void * Test that Legacy ibexa_content_tree.path_identification_string field is correctly updated * after moving subtree. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree * * @throws \ErrorException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException @@ -3446,8 +3261,6 @@ public function testMoveSubtreeUpdatesPathIdentificationString(): void /** * Test that is_visible is set correct for children when moving a location where a child is hidden by content (not by location). - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree */ public function testMoveSubtreeKeepsContentHiddenOnChildrenAndParent(): void { @@ -3509,8 +3322,6 @@ public function testMoveSubtreeKeepsContentHiddenOnChildrenAndParent(): void /** * Test that is_visible is set correct for children when moving a content which is hidden (location is not hidden). - * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree */ public function testMoveSubtreeKeepsContentHiddenOnChildren(): void { @@ -3577,7 +3388,6 @@ public function testMoveSubtreeKeepsContentHiddenOnChildren(): void * Test validating whether content that is being moved is still allowed to be moved when one of its locations * is inaccessible by a current user, however, when moved location is accessible. * - * @covers \Ibexa\Contracts\Core\Repository\LocationService::moveSubtree * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception */ diff --git a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php index 868a91d9e0..a1872d5b5d 100644 --- a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php +++ b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php @@ -7,19 +7,26 @@ namespace Ibexa\Tests\Integration\Core\Repository; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for create and update Content operations in the ContentService with regard to * non-redundant set of fields being passed to the storage. * * These tests depends on TextLine field type being functional. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService - * - * @group content */ +#[CoversClass(ContentService::class)] +#[CoversMethod(ContentService::class, 'createContent()')] +#[CoversMethod(ContentService::class, 'createContentDraft()')] +#[CoversMethod(ContentService::class, 'updateContent()')] +#[Group('content')] class NonRedundantFieldSetTest extends BaseNonRedundantFieldSetTestCase { /** @@ -27,13 +34,12 @@ class NonRedundantFieldSetTest extends BaseNonRedundantFieldSetTestCase * * Default values are stored. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentDefaultValues() { $mainLanguageCode = 'eng-US'; @@ -52,12 +58,11 @@ public function testCreateContentDefaultValues() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentDefaultValues * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentDefaultValues')] public function testCreateContentDefaultValuesFields(Content $content) { self::assertCount(1, $content->versionInfo->languageCodes); @@ -76,13 +81,12 @@ public function testCreateContentDefaultValuesFields(Content $content) * * Creating fields with empty values, no values being passed to storage. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentEmptyValues() { $mainLanguageCode = 'eng-US'; @@ -101,12 +105,11 @@ public function testCreateContentEmptyValues() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentEmptyValues * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentEmptyValues')] public function testCreateContentEmptyValuesFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -129,13 +132,12 @@ public function testCreateContentEmptyValuesFields(Content $content) * Creating fields with empty values, no values being passed to storage. * Case where additional language is not stored. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentEmptyValuesTranslationNotStored() { $mainLanguageCode = 'eng-US'; @@ -154,12 +156,11 @@ public function testCreateContentEmptyValuesTranslationNotStored() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentEmptyValuesTranslationNotStored * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentEmptyValuesTranslationNotStored')] public function testCreateContentEmptyValuesTranslationNotStoredFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -184,13 +185,12 @@ public function testCreateContentEmptyValuesTranslationNotStoredFields(Content $ * * Creating with two languages, main language is always stored (even with all values being empty). * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentTwoLanguagesMainTranslationStored() { $mainLanguageCode = 'eng-US'; @@ -209,12 +209,11 @@ public function testCreateContentTwoLanguagesMainTranslationStored() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentTwoLanguagesMainTranslationStored * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentTwoLanguagesMainTranslationStored')] public function testCreateContentTwoLanguagesMainTranslationStoredFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -244,13 +243,12 @@ public function testCreateContentTwoLanguagesMainTranslationStoredFields(Content * Creating with two languages, second (not main one) language with empty values, causing no fields * for it being passed to the storage. Second language will not be stored. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentTwoLanguagesSecondTranslationNotStored() { $mainLanguageCode = 'eng-US'; @@ -268,12 +266,11 @@ public function testCreateContentTwoLanguagesSecondTranslationNotStored() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentTwoLanguagesSecondTranslationNotStored * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentTwoLanguagesSecondTranslationNotStored')] public function testCreateContentTwoLanguagesSecondTranslationNotStoredFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -297,13 +294,12 @@ public function testCreateContentTwoLanguagesSecondTranslationNotStoredFields(Co * * Creating with no fields in struct, using only default values. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentDefaultValuesNoStructFields() { $mainLanguageCode = 'eng-US'; @@ -319,12 +315,11 @@ public function testCreateContentDefaultValuesNoStructFields() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentDefaultValuesNoStructFields * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentDefaultValuesNoStructFields')] public function testCreateContentDefaultValuesNoStructFieldsFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -345,13 +340,12 @@ public function testCreateContentDefaultValuesNoStructFieldsFields(Content $cont * * Creating in two languages with no given field values for main language. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testCreateContentTwoLanguagesNoValuesForMainLanguage() { $mainLanguageCode = 'eng-US'; @@ -369,12 +363,11 @@ public function testCreateContentTwoLanguagesNoValuesForMainLanguage() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends testCreateContentTwoLanguagesNoValuesForMainLanguage * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testCreateContentTwoLanguagesNoValuesForMainLanguage')] public function testCreateContentTwoLanguagesNoValuesForMainLanguageFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -400,12 +393,11 @@ public function testCreateContentTwoLanguagesNoValuesForMainLanguageFields(Conte /** * Test for the createContentDraft() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft() * - * @depends testCreateContentTwoLanguagesMainTranslationStoredFields * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content[] */ + #[Depends('testCreateContentTwoLanguagesMainTranslationStoredFields')] public function testCreateContentDraft() { $repository = $this->getRepository(); @@ -423,10 +415,10 @@ public function testCreateContentDraft() /** * Test for the createContentDraft() method. * - * @depends testCreateContentDraft * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data */ + #[Depends('testCreateContentDraft')] public function testCreateContentDraftFields(array $data) { $content = $data[1]; @@ -454,11 +446,11 @@ public function testCreateContentDraftFields(array $data) /** * Test for the createContentDraft() method. * - * @depends testCreateContentDraft - * @depends testCreateContentDraftFields * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data */ + #[Depends('testCreateContentDraft')] + #[Depends('testCreateContentDraftFields')] public function testCreateContentDraftFieldsRetainsIds(array $data) { $this->assertFieldIds($data[0], $data[1]); @@ -472,13 +464,12 @@ public function testCreateContentDraftFieldsRetainsIds(array $data) * - value for new language is empty * - value for new language is not empty * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testUpdateContentWithNewLanguage() { $initialLanguageCode = 'ger-DE'; @@ -495,12 +486,11 @@ public function testUpdateContentWithNewLanguage() /** * Test for the updateContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() * - * @depends testUpdateContentWithNewLanguage * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testUpdateContentWithNewLanguage')] public function testUpdateContentWithNewLanguageFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -540,13 +530,12 @@ public function testUpdateContentWithNewLanguageFields(Content $content) * - existing language value updated with empty value * - existing language value not changed * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testUpdateContentWithNewLanguageVariant() { $initialLanguageCode = 'ger-DE'; @@ -564,12 +553,11 @@ public function testUpdateContentWithNewLanguageVariant() /** * Test for the updateContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() * - * @depends testUpdateContentWithNewLanguageVariant * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testUpdateContentWithNewLanguageVariant')] public function testUpdateContentWithNewLanguageVariantFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -604,13 +592,12 @@ public function testUpdateContentWithNewLanguageVariantFields(Content $content) * * Updating with with new language and no field values given in the update struct. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testUpdateContentWithNewLanguageNoValues() { $initialLanguageCode = 'ger-DE'; @@ -625,12 +612,11 @@ public function testUpdateContentWithNewLanguageNoValues() /** * Test for the updateContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() * - * @depends testUpdateContentWithNewLanguageNoValues * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testUpdateContentWithNewLanguageNoValues')] public function testUpdateContentWithNewLanguageNoValuesFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -666,13 +652,12 @@ public function testUpdateContentWithNewLanguageNoValuesFields(Content $content) * When updating Content with two languages, updating non-translatable field will also update it's value * for non-main language. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy() { $initialLanguageCode = 'eng-US'; @@ -690,12 +675,11 @@ public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy() /** * Test for the updateContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() * - * @depends testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy')] public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopyFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -723,13 +707,12 @@ public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopyFie * * Updating with two languages, initial language is always stored (even with all values being empty). * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent() * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testCreateContent - * @depends Ibexa\Tests\Integration\Core\Repository\ContentTypeServiceTest::testCreateContentType * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content */ + #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] + #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreated() { $initialLanguageCode = 'ger-DE'; @@ -748,12 +731,11 @@ public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCr /** * Test for the updateContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent() * - * @depends testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreated * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ + #[Depends('testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreated')] public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreatedFields(Content $content) { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); diff --git a/tests/integration/Core/Repository/NotificationServiceTest.php b/tests/integration/Core/Repository/NotificationServiceTest.php index 6ca767193f..c5dde70fd0 100644 --- a/tests/integration/Core/Repository/NotificationServiceTest.php +++ b/tests/integration/Core/Repository/NotificationServiceTest.php @@ -10,15 +10,17 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\NotificationService; use Ibexa\Contracts\Core\Repository\Values\Notification\CreateStruct; use Ibexa\Contracts\Core\Repository\Values\Notification\Query\Criterion\Type; use Ibexa\Contracts\Core\Repository\Values\Notification\Query\NotificationQuery; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; /** * Test case for the NotificationService. - * - * @covers \Ibexa\Contracts\Core\Repository\NotificationService */ +#[CoversClass(NotificationService::class)] class NotificationServiceTest extends BaseTestCase { public function testLoadNotifications(): void @@ -207,9 +209,7 @@ public function testCreateNotification(): void self::assertGreaterThan(0, $notification->id); } - /** - * @depends testCreateNotification - */ + #[Depends('testCreateNotification')] public function testCreateNotificationThrowsInvalidArgumentExceptionOnMissingOwner(): void { $this->expectException(InvalidArgumentException::class); @@ -228,9 +228,7 @@ public function testCreateNotificationThrowsInvalidArgumentExceptionOnMissingOwn /* END: Use Case */ } - /** - * @depends testCreateNotification - */ + #[Depends('testCreateNotification')] public function testCreateNotificationThrowsInvalidArgumentExceptionOnMissingType(): void { $this->expectException(InvalidArgumentException::class); diff --git a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php index e92a5a5465..9307db65f9 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php @@ -8,24 +8,32 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\ObjectStateService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the ObjectStateService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService - * - * @group integration - * @group authorization */ +#[CoversClass(ObjectStateService::class)] +#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'createObjectState()')] +#[CoversMethod(ObjectStateService::class, 'updateObjectState()')] +#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState()')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectState()')] +#[CoversMethod(ObjectStateService::class, 'setContentState()')] +#[Group('integration')] +#[Group('authorization')] class ObjectStateServiceAuthorizationTest extends BaseTestCase { /** * Test for the createObjectStateGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectStateGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testCreateObjectStateGroup */ + #[DependsExternal(ObjectStateServiceTest::class, 'testCreateObjectStateGroup')] public function testCreateObjectStateGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -66,11 +74,8 @@ public function testCreateObjectStateGroupThrowsUnauthorizedException() /** * Test for the updateObjectStateGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectStateGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testUpdateObjectStateGroup */ + #[DependsExternal(ObjectStateServiceTest::class, 'testUpdateObjectStateGroup')] public function testUpdateObjectStateGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -116,11 +121,8 @@ public function testUpdateObjectStateGroupThrowsUnauthorizedException() /** * Test for the deleteObjectStateGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::deleteObjectStateGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testDeleteObjectStateGroup */ + #[DependsExternal(ObjectStateServiceTest::class, 'testDeleteObjectStateGroup')] public function testDeleteObjectStateGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -153,11 +155,8 @@ public function testDeleteObjectStateGroupThrowsUnauthorizedException() /** * Test for the createObjectState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testCreateObjectState */ + #[DependsExternal(ObjectStateServiceTest::class, 'testCreateObjectState')] public function testCreateObjectStateThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -205,11 +204,8 @@ public function testCreateObjectStateThrowsUnauthorizedException() /** * Test for the updateObjectState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testUpdateObjectState */ + #[DependsExternal(ObjectStateServiceTest::class, 'testUpdateObjectState')] public function testUpdateObjectStateThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -256,11 +252,8 @@ public function testUpdateObjectStateThrowsUnauthorizedException() /** * Test for the setPriorityOfObjectState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::setPriorityOfObjectState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testSetPriorityOfObjectState */ + #[DependsExternal(ObjectStateServiceTest::class, 'testSetPriorityOfObjectState')] public function testSetPriorityOfObjectStateThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -295,11 +288,8 @@ public function testSetPriorityOfObjectStateThrowsUnauthorizedException() /** * Test for the deleteObjectState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::deleteObjectState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testDeleteObjectState */ + #[DependsExternal(ObjectStateServiceTest::class, 'testDeleteObjectState')] public function testDeleteObjectStateThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -330,11 +320,8 @@ public function testDeleteObjectStateThrowsUnauthorizedException() /** * Test for the setContentState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::setContentState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ObjectStateServiceTest::testSetContentState */ + #[DependsExternal(ObjectStateServiceTest::class, 'testSetContentState')] public function testSetContentStateThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/ObjectStateServiceTest.php b/tests/integration/Core/Repository/ObjectStateServiceTest.php index 86c8c96835..5800a00aa9 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceTest.php @@ -9,6 +9,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\ObjectStateService; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectState; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateCreateStruct; @@ -16,14 +17,45 @@ use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupCreateStruct; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateUpdateStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the ObjectStateService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService - * - * @group object-state */ +#[CoversClass(ObjectStateService::class)] +#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupCreateStruct()')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupUpdateStruct()')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateCreateStruct()')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateUpdateStruct()')] +#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'loadGroupByIdentifier')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups()')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups($offset)')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups($offset, $limit)')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStates()')] +#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] +#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'createObjectState()')] +#[CoversMethod(ObjectStateService::class, 'createObjectState')] +#[CoversMethod(ObjectStateService::class, 'loadObjectState()')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateByIdentifier')] +#[CoversMethod(ObjectStateService::class, 'updateObjectState')] +#[CoversMethod(ObjectStateService::class, 'updateObjectState()')] +#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState')] +#[CoversMethod(ObjectStateService::class, 'getContentState()')] +#[CoversMethod(ObjectStateService::class, 'setContentState()')] +#[CoversMethod(ObjectStateService::class, 'setContentState')] +#[CoversMethod(ObjectStateService::class, 'getContentCount()')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectState()')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup()')] +#[Group('object-state')] class ObjectStateServiceTest extends BaseTestCase { private const EXISTING_OBJECT_STATE_GROUP_IDENTIFIER = 'ibexa_lock'; @@ -34,9 +66,6 @@ class ObjectStateServiceTest extends BaseTestCase /** * Test for the newObjectStateGroupCreateStruct() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::newObjectStateGroupCreateStruct() */ public function testNewObjectStateGroupCreateStruct() { @@ -62,9 +91,8 @@ public function testNewObjectStateGroupCreateStruct() * testNewObjectStateGroupCreateStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupCreateStruct $objectStateGroupCreate - * - * @depends testNewObjectStateGroupCreateStruct */ + #[Depends('testNewObjectStateGroupCreateStruct')] public function testNewObjectStateGroupCreateStructValues(ObjectStateGroupCreateStruct $objectStateGroupCreate) { $this->assertPropertiesCorrect( @@ -80,9 +108,6 @@ public function testNewObjectStateGroupCreateStructValues(ObjectStateGroupCreate /** * Test for the newObjectStateGroupUpdateStruct() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::newObjectStateGroupUpdateStruct() */ public function testNewObjectStateGroupUpdateStruct() { @@ -106,9 +131,8 @@ public function testNewObjectStateGroupUpdateStruct() * testNewObjectStateGroupUpdateStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupUpdateStruct $objectStateGroupUpdate - * - * @depends testNewObjectStateGroupUpdateStruct */ + #[Depends('testNewObjectStateGroupUpdateStruct')] public function testNewObjectStateGroupUpdateStructValues(ObjectStateGroupUpdateStruct $objectStateGroupUpdate) { $this->assertPropertiesCorrect( @@ -124,9 +148,6 @@ public function testNewObjectStateGroupUpdateStructValues(ObjectStateGroupUpdate /** * Test for the newObjectStateCreateStruct() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::newObjectStateCreateStruct() */ public function testNewObjectStateCreateStruct() { @@ -152,9 +173,8 @@ public function testNewObjectStateCreateStruct() * testNewObjectStateCreateStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateCreateStruct $objectStateCreate - * - * @depends testNewObjectStateCreateStruct */ + #[Depends('testNewObjectStateCreateStruct')] public function testNewObjectStateCreateStructValues(ObjectStateCreateStruct $objectStateCreate) { $this->assertPropertiesCorrect( @@ -171,9 +191,6 @@ public function testNewObjectStateCreateStructValues(ObjectStateCreateStruct $ob /** * Test for the newObjectStateUpdateStruct() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::newObjectStateUpdateStruct() */ public function testNewObjectStateUpdateStruct() { @@ -197,9 +214,8 @@ public function testNewObjectStateUpdateStruct() * testNewObjectStateUpdateStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateUpdateStruct $objectStateUpdate - * - * @depends testNewObjectStateUpdateStruct */ + #[Depends('testNewObjectStateUpdateStruct')] public function testNewObjectStateUpdateStructValues(ObjectStateUpdateStruct $objectStateUpdate) { $this->assertPropertiesCorrect( @@ -215,12 +231,8 @@ public function testNewObjectStateUpdateStructValues(ObjectStateUpdateStruct $ob /** * Test for the createObjectStateGroup() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectStateGroup() - * - * @depends testNewObjectStateGroupCreateStructValues */ + #[Depends('testNewObjectStateGroupCreateStructValues')] public function testCreateObjectStateGroup() { $repository = $this->getRepository(); @@ -258,9 +270,8 @@ public function testCreateObjectStateGroup() * testCreateObjectStateGroupStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup $createdObjectStateGroup - * - * @depends testCreateObjectStateGroup */ + #[Depends('testCreateObjectStateGroup')] public function testCreateObjectStateGroupStructValues(ObjectStateGroup $createdObjectStateGroup) { $this->assertPropertiesCorrect( @@ -284,12 +295,8 @@ public function testCreateObjectStateGroupStructValues(ObjectStateGroup $created /** * Test for the createObjectStateGroup() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectStateGroup() - * - * @depends testCreateObjectStateGroup */ + #[Depends('testCreateObjectStateGroup')] public function testCreateObjectStateGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -320,8 +327,6 @@ public function testCreateObjectStateGroupThrowsInvalidArgumentException() /** * Test for the loadObjectStateGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateGroup */ public function testLoadObjectStateGroup() { @@ -358,12 +363,8 @@ public function testLoadObjectStateGroup() /** * Test for the loadObjectStateGroup() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateGroup() - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testLoadObjectStateGroupThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -383,9 +384,6 @@ public function testLoadObjectStateGroupThrowsNotFoundException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadGroupByIdentifier - */ public function testLoadObjectStateGroupByIdentifier(): void { $repository = $this->getRepository(); @@ -414,9 +412,6 @@ public function testLoadObjectStateGroupByIdentifier(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadGroupByIdentifier - */ public function testLoadObjectStateGroupByIdentifierThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -436,12 +431,8 @@ public function testLoadObjectStateGroupByIdentifierThrowsNotFoundException(): v /** * Test for the loadObjectStateGroups() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateGroups() - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testLoadObjectStateGroups() { $repository = $this->getRepository(); @@ -538,12 +529,8 @@ protected function assertObjectsLoadedByIdentifiers(array $expectedIdentifiers, /** * Test for the loadObjectStateGroups() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateGroups($offset) - * - * @depends testLoadObjectStateGroups */ + #[Depends('testLoadObjectStateGroups')] public function testLoadObjectStateGroupsWithOffset() { $repository = $this->getRepository(); @@ -591,12 +578,8 @@ static function ($group) { /** * Test for the loadObjectStateGroups() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateGroups($offset, $limit) - * - * @depends testLoadObjectStateGroupsWithOffset */ + #[Depends('testLoadObjectStateGroupsWithOffset')] public function testLoadObjectStateGroupsWithOffsetAndLimit() { $repository = $this->getRepository(); @@ -623,12 +606,8 @@ public function testLoadObjectStateGroupsWithOffsetAndLimit() /** * Test for the loadObjectStates() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStates() - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testLoadObjectStates() { $repository = $this->getRepository(); @@ -659,11 +638,8 @@ public function testLoadObjectStates() /** * Test for the updateObjectStateGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectStateGroup - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testUpdateObjectStateGroup() { $repository = $this->getRepository(); @@ -716,11 +692,8 @@ public function testUpdateObjectStateGroup() /** * Test service method for partially updating object state group. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectStateGroup - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testUpdateObjectStateGroupChosenFieldsOnly() { $repository = $this->getRepository(); @@ -757,12 +730,8 @@ public function testUpdateObjectStateGroupChosenFieldsOnly() /** * Test for the updateObjectStateGroup() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectStateGroup() - * - * @depends testUpdateObjectStateGroup */ + #[Depends('testUpdateObjectStateGroup')] public function testUpdateObjectStateGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -811,9 +780,8 @@ public function testUpdateObjectStateGroupThrowsInvalidArgumentException() * testUpdateObjectStateGroupStructValues. * * @param array $testData - * - * @depends testUpdateObjectStateGroup */ + #[Depends('testUpdateObjectStateGroup')] public function testUpdateObjectStateGroupStructValues(array $testData) { list( @@ -834,13 +802,9 @@ public function testUpdateObjectStateGroupStructValues(array $testData) /** * Test for the createObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectState() - * - * @depends testLoadObjectStateGroup - * @depends testNewObjectStateCreateStruct */ + #[Depends('testLoadObjectStateGroup')] + #[Depends('testNewObjectStateCreateStruct')] public function testCreateObjectState() { $repository = $this->getRepository(); @@ -891,8 +855,6 @@ public function testCreateObjectState() /** * Test service method for creating object state in empty group. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectState */ public function testCreateObjectStateInEmptyGroup() { @@ -947,13 +909,9 @@ public function testCreateObjectStateInEmptyGroup() /** * Test for the createObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::createObjectState() - * - * @depends testLoadObjectStateGroup - * @depends testCreateObjectState */ + #[Depends('testLoadObjectStateGroup')] + #[Depends('testCreateObjectState')] public function testCreateObjectStateThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -994,9 +952,8 @@ public function testCreateObjectStateThrowsInvalidArgumentException() * testCreateObjectStateStructValues. * * @param array $testData - * - * @depends testCreateObjectState */ + #[Depends('testCreateObjectState')] public function testCreateObjectStateStructValues(array $testData) { list( @@ -1020,12 +977,8 @@ public function testCreateObjectStateStructValues(array $testData) /** * Test for the loadObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectState() - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testLoadObjectState() { $repository = $this->getRepository(); @@ -1048,9 +1001,6 @@ public function testLoadObjectState() return $loadedObjectState; } - /** - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateByIdentifier - */ public function testLoadObjectStateByIdentifier(): void { $repository = $this->getRepository(); @@ -1082,9 +1032,6 @@ public function testLoadObjectStateByIdentifier(): void ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectStateByIdentifier - */ public function testLoadObjectStateByIdentifierThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -1114,9 +1061,8 @@ public function testLoadObjectStateByIdentifierThrowsNotFoundException(): void * testLoadObjectStateStructValues. * * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectState $loadedObjectState - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testLoadObjectStateStructValues(ObjectState $loadedObjectState) { $this->assertPropertiesCorrect( @@ -1145,12 +1091,8 @@ public function testLoadObjectStateStructValues(ObjectState $loadedObjectState) /** * Test for the loadObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::loadObjectState() - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testLoadObjectStateThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -1174,7 +1116,7 @@ public function testLoadObjectStateThrowsNotFoundException() * * @return array */ - public function getPrioritizedLanguagesList() + public static function getPrioritizedLanguagesList() { return [ [[], null], @@ -1190,11 +1132,11 @@ public function getPrioritizedLanguagesList() /** * Test that multi-language logic for loadObjectStateGroups respects prioritized language list. * - * @dataProvider getPrioritizedLanguagesList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode */ + #[DataProvider('getPrioritizedLanguagesList')] public function testLoadObjectStateGroupsWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -1231,11 +1173,11 @@ public function testLoadObjectStateGroupsWithPrioritizedLanguagesList( /** * Test that multi-language logic for loadObjectStateGroup respects prioritized language list. * - * @dataProvider getPrioritizedLanguagesList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode */ + #[DataProvider('getPrioritizedLanguagesList')] public function testLoadObjectStateGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -1267,11 +1209,11 @@ public function testLoadObjectStateGroupWithPrioritizedLanguagesList( /** * Test that multi-language logic for loadObjectState respects prioritized language list. * - * @dataProvider getPrioritizedLanguagesList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode */ + #[DataProvider('getPrioritizedLanguagesList')] public function testLoadObjectStateWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -1303,11 +1245,11 @@ public function testLoadObjectStateWithPrioritizedLanguagesList( /** * Test that multi-language logic for loadObjectStates respects prioritized language list. * - * @dataProvider getPrioritizedLanguagesList * * @param string[] $languageCodes * @param string|null $expectedLanguageCode */ + #[DataProvider('getPrioritizedLanguagesList')] public function testLoadObjectStatesWithPrioritizedLanguagesList($languageCodes, $expectedLanguageCode) { $repository = $this->getRepository(); @@ -1357,11 +1299,8 @@ public function testLoadObjectStatesWithPrioritizedLanguagesList($languageCodes, /** * Test for the updateObjectState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectState - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testUpdateObjectState() { $repository = $this->getRepository(); @@ -1413,11 +1352,8 @@ public function testUpdateObjectState() /** * Test service method for partially updating object state. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectState - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testUpdateObjectStateChosenFieldsOnly() { $repository = $this->getRepository(); @@ -1460,12 +1396,8 @@ public function testUpdateObjectStateChosenFieldsOnly() /** * Test for the updateObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::updateObjectState() - * - * @depends testUpdateObjectState */ + #[Depends('testUpdateObjectState')] public function testUpdateObjectStateThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -1505,9 +1437,8 @@ public function testUpdateObjectStateThrowsInvalidArgumentException() * testUpdateObjectStateStructValues. * * @param array $testData - * - * @depends testUpdateObjectState */ + #[Depends('testUpdateObjectState')] public function testUpdateObjectStateStructValues(array $testData) { list( @@ -1541,12 +1472,8 @@ public function testUpdateObjectStateStructValues(array $testData) /** * Test for the setPriorityOfObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::setPriorityOfObjectState - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testSetPriorityOfObjectState() { $repository = $this->getRepository(); @@ -1581,13 +1508,9 @@ public function testSetPriorityOfObjectState() /** * Test for the getContentState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::getContentState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfo - * @depends testLoadObjectState */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] + #[Depends('testLoadObjectState')] public function testGetContentState() { $repository = $this->getRepository(); @@ -1621,11 +1544,9 @@ public function testGetContentState() /** * testGetInitialObjectState. - * - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfo - * @depends testLoadObjectState */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] + #[Depends('testLoadObjectState')] public function testGetInitialObjectState() { $repository = $this->getRepository(); @@ -1687,13 +1608,9 @@ public function testGetInitialObjectState() /** * Test for the setContentState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::setContentState() - * - * @depends Ibexa\Tests\Integration\Core\Repository\ContentServiceTest::testLoadContentInfo - * @depends testLoadObjectState */ + #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] + #[Depends('testLoadObjectState')] public function testSetContentState() { $repository = $this->getRepository(); @@ -1734,11 +1651,8 @@ public function testSetContentState() /** * Test for the setContentState() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::setContentState - * - * @depends testSetContentState */ + #[Depends('testSetContentState')] public function testSetContentStateThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -1778,12 +1692,8 @@ public function testSetContentStateThrowsInvalidArgumentException() /** * Test for the getContentCount() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::getContentCount() - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testGetContentCount() { $repository = $this->getRepository(); @@ -1803,12 +1713,8 @@ public function testGetContentCount() /** * Test for the deleteObjectState() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::deleteObjectState() - * - * @depends testLoadObjectState */ + #[Depends('testLoadObjectState')] public function testDeleteObjectState() { $repository = $this->getRepository(); @@ -1837,12 +1743,8 @@ public function testDeleteObjectState() /** * Test for the deleteObjectStateGroup() method. - * - * - * @covers \Ibexa\Contracts\Core\Repository\ObjectStateService::deleteObjectStateGroup() - * - * @depends testLoadObjectStateGroup */ + #[Depends('testLoadObjectStateGroup')] public function testDeleteObjectStateGroup() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/PermissionResolverTest.php b/tests/integration/Core/Repository/PermissionResolverTest.php index fd9bcb5d75..5abf483e95 100644 --- a/tests/integration/Core/Repository/PermissionResolverTest.php +++ b/tests/integration/Core/Repository/PermissionResolverTest.php @@ -13,6 +13,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\PermissionResolver; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; @@ -20,21 +21,29 @@ use Ibexa\Contracts\Core\Repository\Values\User\LookupPolicyLimitations; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Repository\Values\User\UserReference; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the PermissionResolver. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver - * - * @group integration - * @group permission */ +#[CoversClass(PermissionResolver::class)] +#[CoversMethod(PermissionResolver::class, 'getCurrentUserReference()')] +#[CoversMethod(PermissionResolver::class, 'setCurrentUserReference()')] +#[CoversMethod(PermissionResolver::class, 'hasAccess()')] +#[CoversMethod(PermissionResolver::class, 'canUser()')] +#[CoversMethod(PermissionResolver::class, 'canUser')] +#[CoversMethod(PermissionResolver::class, 'lookupLimitations()')] +#[Group('integration')] +#[Group('permission')] class PermissionResolverTest extends BaseTestCase { /** * Test for the getCurrentUserReference() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::getCurrentUserReference() */ public function testGetCurrentUserReferenceReturnsAnonymousUserReference() { @@ -61,11 +70,8 @@ public function testGetCurrentUserReferenceReturnsAnonymousUserReference() /** * Test for the setCurrentUserReference() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::setCurrentUserReference() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] public function testSetCurrentUserReference() { $repository = $this->getRepository(); @@ -104,11 +110,8 @@ public function testSetCurrentUserReference() /** * Test for the hasAccess() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::hasAccess() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] public function testHasAccessWithAnonymousUserNo() { $repository = $this->getRepository(); @@ -135,12 +138,9 @@ public function testHasAccessWithAnonymousUserNo() /** * Test for the hasAccess() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::hasAccess() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends testHasAccessWithAnonymousUserNo */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[Depends('testHasAccessWithAnonymousUserNo')] public function testHasAccessForCurrentUserNo() { $repository = $this->getRepository(); @@ -170,11 +170,8 @@ public function testHasAccessForCurrentUserNo() /** * Test for the hasAccess() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::hasAccess() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] public function testHasAccessWithAdministratorUser() { $repository = $this->getRepository(); @@ -199,13 +196,10 @@ public function testHasAccessWithAdministratorUser() /** * Test for the hasAccess() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::hasAccess() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends testSetCurrentUserReference - * @depends testHasAccessWithAdministratorUser */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[Depends('testSetCurrentUserReference')] + #[Depends('testHasAccessWithAdministratorUser')] public function testHasAccessForCurrentUserYes() { $repository = $this->getRepository(); @@ -233,12 +227,9 @@ public function testHasAccessForCurrentUserYes() /** * Test for the hasAccess() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::hasAccess() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends testSetCurrentUserReference */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[Depends('testSetCurrentUserReference')] public function testHasAccessLimited() { $repository = $this->getRepository(); @@ -264,13 +255,10 @@ public function testHasAccessLimited() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends testHasAccessForCurrentUserNo */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[Depends('testHasAccessForCurrentUserNo')] public function testCanUserForAnonymousUserNo() { $this->expectException(UnauthorizedException::class); @@ -311,13 +299,10 @@ public function testCanUserForAnonymousUserNo() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends testHasAccessForCurrentUserYes */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[Depends('testHasAccessForCurrentUserYes')] public function testCanUserForAdministratorUser() { $this->expectException(NotFoundException::class); @@ -357,13 +342,10 @@ public function testCanUserForAdministratorUser() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithLimitationYes() { $repository = $this->getRepository(); @@ -394,13 +376,10 @@ public function testCanUserWithLimitationYes() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithLimitationNo() { $this->expectException(UnauthorizedException::class); @@ -439,14 +418,11 @@ public function testCanUserWithLimitationNo() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends testSetCurrentUserReference - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[Depends('testSetCurrentUserReference')] + #[Depends('testHasAccessLimited')] public function testCanUserThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -479,14 +455,11 @@ public function testCanUserThrowsInvalidArgumentException() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithTargetYes() { $repository = $this->getRepository(); @@ -541,14 +514,11 @@ public function testCanUserWithTargetYes() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithTargetNo() { $this->expectException(UnauthorizedException::class); @@ -602,14 +572,11 @@ public function testCanUserWithTargetNo() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithMultipleTargetsYes() { $repository = $this->getRepository(); @@ -665,14 +632,11 @@ public function testCanUserWithMultipleTargetsYes() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[Depends('testHasAccessLimited')] public function testCanUserWithMultipleTargetsNo() { $this->expectException(UnauthorizedException::class); @@ -727,16 +691,13 @@ public function testCanUserWithMultipleTargetsNo() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentTypeService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetURLAliasService - * @depends testSetCurrentUserReference - * @depends testHasAccessLimited */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] + #[DependsExternal(RepositoryTest::class, 'testGetURLAliasService')] + #[Depends('testSetCurrentUserReference')] + #[Depends('testHasAccessLimited')] public function testCanUserWithTargetThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -777,8 +738,6 @@ public function testCanUserWithTargetThrowsInvalidArgumentException() /** * Test for the canUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser() */ public function testCanUserThrowsBadStateException() { @@ -792,9 +751,7 @@ public function testCanUserThrowsBadStateException() /** * Test PermissionResolver::canUser for Users with different Limitations. * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser * - * @dataProvider getDataForTestCanUserWithLimitations * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param string $module @@ -806,6 +763,7 @@ public function testCanUserThrowsBadStateException() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('getDataForTestCanUserWithLimitations')] public function testCanUserWithLimitations( Limitation $limitation, $module, @@ -847,9 +805,9 @@ public function testCanUserWithLimitations( * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ - public function getDataForTestCanUserWithLimitations() + public static function getDataForTestCanUserWithLimitations() { - $repository = $this->getRepository(); + $repository = static::resolveRepository(); $contentService = $repository->getContentService(); $contentTypeService = $repository->getContentTypeService(); @@ -897,13 +855,10 @@ public function getDataForTestCanUserWithLimitations() /** * Test for the lookupLimitations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::lookupLimitations() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\PermissionResolverTest::testHasAccessForCurrentUserNo */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(self::class, 'testHasAccessForCurrentUserNo')] public function testLookupLimitationsForAnonymousUserHasNoAccess(): void { $repository = $this->getRepository(); @@ -942,13 +897,10 @@ public function testLookupLimitationsForAnonymousUserHasNoAccess(): void /** * Test for the lookupLimitations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::lookupLimitations() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\PermissionResolverTest::testHasAccessForCurrentUserYes */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(self::class, 'testHasAccessForCurrentUserYes')] public function testLookupLimitationsForAdministratorUser(): void { $repository = $this->getRepository(); @@ -985,11 +937,7 @@ public function testLookupLimitationsForAdministratorUser(): void /** * When one of policy pass then all limitation should be returned. * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::lookupLimitations() * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\PermissionResolverTest::testHasAccessForCurrentUserYes * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException @@ -997,6 +945,9 @@ public function testLookupLimitationsForAdministratorUser(): void * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(self::class, 'testHasAccessForCurrentUserYes')] public function testLookupLimitationsWithLimitations(): void { $repository = $this->getRepository(); @@ -1047,11 +998,7 @@ public function testLookupLimitationsWithLimitations(): void /** * When one of policy pass then only filtered limitation should be returned. * - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::lookupLimitations() * - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetUserService - * @depends Ibexa\Tests\Integration\Core\Repository\RepositoryTest::testGetContentService - * @depends Ibexa\Tests\Integration\Core\Repository\PermissionResolverTest::testHasAccessForCurrentUserYes * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException @@ -1059,6 +1006,9 @@ public function testLookupLimitationsWithLimitations(): void * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DependsExternal(RepositoryTest::class, 'testGetUserService')] + #[DependsExternal(RepositoryTest::class, 'testGetContentService')] + #[DependsExternal(self::class, 'testHasAccessForCurrentUserYes')] public function testLookupLimitationsWithFilteredLimitations(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php b/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php index ba2e71dcbb..6deebabd2e 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php @@ -12,12 +12,14 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LanguageCode; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory; +use PHPUnit\Framework\Attributes\CoversClass; /** * Test case for language issues in EZP-20018. * * Issue EZP-20018 */ +#[CoversClass(LanguageCode::class)] class EZP20018LanguageTest extends BaseTestCase { protected function setUp(): void @@ -58,9 +60,6 @@ protected function setUp(): void $this->refreshSearch($repository); } - /** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LanguageCode - */ public function testSearchOnNotExistingLanguageGivesException() { $this->expectException(NotFoundException::class); @@ -75,9 +74,6 @@ public function testSearchOnNotExistingLanguageGivesException() $this->getRepository()->getSearchService()->findContent($query); } - /** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LanguageCode - */ public function testSearchOnUsedLanguageGivesOneResult() { $query = new Query(); @@ -88,9 +84,6 @@ public function testSearchOnUsedLanguageGivesOneResult() self::assertCount(1, $results->searchHits); } - /** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LanguageCode - */ public function testSearchOnStandardLanguageGivesManyResult() { $query = new Query(); @@ -102,9 +95,6 @@ public function testSearchOnStandardLanguageGivesManyResult() self::assertEquals($results->totalCount, count($results->searchHits)); } - /** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LanguageCode - */ public function testSearchOnNotUsedInstalledLanguageGivesNoResult() { $query = new Query(); diff --git a/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php b/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php index 64ca334f09..8a62b84427 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php @@ -10,14 +10,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ObjectStateId; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversClass; /** * Test case for ObjectState issues in EZP-20018. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ObjectStateId - * - * Issue EZP-20018 */ +#[CoversClass(ObjectStateId::class)] class EZP20018ObjectStateTest extends BaseTestCase { public function testSearchForNonUsedObjectState() diff --git a/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php b/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php index 6e50414d79..cf15775754 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php @@ -10,14 +10,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Visibility; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversClass; /** * Test case for Visibility issues in EZP-20018. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Visibility - * - * Issue EZP-20018 */ +#[CoversClass(Visibility::class)] class EZP20018VisibilityTest extends BaseTestCase { public function testSearchForHiddenContent() diff --git a/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php b/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php index a2b0e82697..bc4693ac49 100644 --- a/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php +++ b/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php @@ -10,6 +10,7 @@ use Ibexa\Core\FieldType\Integer\Value; use Ibexa\Core\Persistence\Legacy\Exception\TypeNotFound as TypeNotFoundException; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * Regression tests for the issue EZP-21109. @@ -44,9 +45,8 @@ protected function tearDown(): void /** * Assert that it is possible to store any integer value in an integer field with default settings. - * - * @dataProvider validIntegerValues */ + #[DataProvider('validIntegerValues')] public function testIbexaIntegerWithDefaultValues(int $integerValue): void { $repository = $this->getRepository(); @@ -74,7 +74,7 @@ public function testIbexaIntegerWithDefaultValues(int $integerValue): void $contentService->deleteContent($content->versionInfo->contentInfo); } - public function validIntegerValues() + public static function validIntegerValues() { return [ [0], diff --git a/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php b/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php index 804dd43113..9136376059 100644 --- a/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php +++ b/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * Issue EZP-21906. @@ -61,9 +62,7 @@ protected function setUp(): void $this->refreshSearch($repository); } - /** - * @dataProvider searchContentQueryProvider - */ + #[DataProvider('searchContentQueryProvider')] public function testSearchContentMultipleLocations(Query $query, $expectedResultCount) { $result = $this->getRepository()->getSearchService()->findContent($query); @@ -71,7 +70,7 @@ public function testSearchContentMultipleLocations(Query $query, $expectedResult self::assertSame($expectedResultCount, count($result->searchHits)); } - public function searchContentQueryProvider() + public static function searchContentQueryProvider() { return [ [ diff --git a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php index c374ed5a98..5474adf1f8 100644 --- a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php +++ b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php @@ -12,6 +12,11 @@ class EZP22612URLAliasTranslations extends BaseTestCase { + public function __construct() + { + parent::__construct(static::class); + } + protected function setUp(): void { $contentService = $this->getRepository()->getContentService(); diff --git a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php index 34f21aab63..1e6a7cef6c 100644 --- a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php +++ b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php @@ -17,6 +17,11 @@ */ class EZP22840RoleLimitations extends BaseTestCase { + public function __construct() + { + parent::__construct(static::class); + } + /** * Test Subtree Role Assignment Limitation against state/assign. */ diff --git a/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php b/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php index 7b30d7f514..7d13f704cb 100644 --- a/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * Issue EZP-21906. @@ -23,9 +24,8 @@ protected function setUp(): void /** * Tests that invalid path string provided for subtree criterion result in exception. - * - * @dataProvider searchContentQueryWithInvalidDataProvider */ + #[DataProvider('searchContentQueryWithInvalidDataProvider')] public function testSearchContentSubtreeShouldThrowException($pathString) { $this->expectException(\InvalidArgumentException::class); @@ -41,9 +41,8 @@ public function testSearchContentSubtreeShouldThrowException($pathString) /** * Tests that path string provided for subtree criterion is valid. - * - * @dataProvider searchContentQueryProvider */ + #[DataProvider('searchContentQueryProvider')] public function testSearchContentSubtree($pathString) { $query = new Query( @@ -55,7 +54,7 @@ public function testSearchContentSubtree($pathString) $result = $this->getRepository()->getSearchService()->findContent($query); } - public function searchContentQueryProvider() + public static function searchContentQueryProvider() { return [ [ @@ -70,7 +69,7 @@ public function searchContentQueryProvider() ]; } - public function searchContentQueryWithInvalidDataProvider() + public static function searchContentQueryWithInvalidDataProvider() { return [ [ diff --git a/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php b/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php index 2de3bacaa5..fe9a2f3b96 100644 --- a/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Integration\Core\Repository\Regression; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\Group; /** * Issue https://issues.ibexa.co/browse/EZP-26327. - * - * @group ezp26327 */ +#[Group('ezp26327')] class EZP26327UrlAliasHistorizationTest extends BaseTestCase { public function testHistorization() diff --git a/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php b/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php index 20383b56f8..8ea51b7d02 100644 --- a/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php @@ -8,16 +8,16 @@ namespace Ibexa\Tests\Integration\Core\Repository\Regression; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\Group; /** * Issue https://issues.ibexa.co/browse/EZP-26367. - * - * @group regression - * @group ezp26367 - * @group cache - * @group cache-invalidation - * @group cache-spi */ +#[Group('regression')] +#[Group('ezp26367')] +#[Group('cache')] +#[Group('cache-invalidation')] +#[Group('cache-spi')] class EZP26367UrlAliasHistoryRedirectLoopTest extends BaseTestCase { public function testReverseLookupReturnsHistoryAlias() diff --git a/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php b/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php index d9598609b5..8627766604 100644 --- a/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php @@ -9,13 +9,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\Group; /** * @issue https://issues.ibexa.co/browse/EZP-26551 - * - * @group regression - * @group ezp26551 */ +#[Group('regression')] +#[Group('ezp26551')] class EZP26551DeleteContentTypeDraftTest extends BaseTestCase { public function testDeleteContentTypeGroup() diff --git a/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php b/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php index 7ba7021cbf..9a6086b52c 100644 --- a/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php +++ b/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php @@ -11,19 +11,20 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * This test will try to execute search queries that might be interpreted as "pure negative" * by the search backend and hence produce incorrect results. - * - * @group regression */ +#[Group('regression')] class PureNegativeQueryTest extends BaseTestCase { - public function providerForTestMatchAll() + public static function providerForTestMatchAll() { $query = new Query(['filter' => new Criterion\MatchAll()]); - $result = $this->getRepository()->getSearchService()->findContent($query); + $result = static::resolveRepository()->getSearchService()->findContent($query); // Sanity check self::assertGreaterThan(0, $result->totalCount); $totalCount = $result->totalCount; @@ -214,11 +215,10 @@ public function providerForTestMatchAll() } /** - * @dataProvider providerForTestMatchAll - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param int $totalCount */ + #[DataProvider('providerForTestMatchAll')] public function testMatchAllContentInfoQuery($criterion, $totalCount) { $query = new Query( @@ -233,11 +233,10 @@ public function testMatchAllContentInfoQuery($criterion, $totalCount) } /** - * @dataProvider providerForTestMatchAll - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param int $totalCount */ + #[DataProvider('providerForTestMatchAll')] public function testMatchAllContentInfoFilter($criterion, $totalCount) { $query = new Query( @@ -252,11 +251,10 @@ public function testMatchAllContentInfoFilter($criterion, $totalCount) } /** - * @dataProvider providerForTestMatchAll - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param int $totalCount */ + #[DataProvider('providerForTestMatchAll')] public function testMatchAllLocationQuery($criterion, $totalCount) { $query = new LocationQuery( @@ -271,11 +269,10 @@ public function testMatchAllLocationQuery($criterion, $totalCount) } /** - * @dataProvider providerForTestMatchAll - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param int $totalCount */ + #[DataProvider('providerForTestMatchAll')] public function testMatchAllLocationFilter($criterion, $totalCount) { $query = new LocationQuery( diff --git a/tests/integration/Core/Repository/RepositoryTest.php b/tests/integration/Core/Repository/RepositoryTest.php index 066186872a..903c90b31c 100644 --- a/tests/integration/Core/Repository/RepositoryTest.php +++ b/tests/integration/Core/Repository/RepositoryTest.php @@ -24,22 +24,23 @@ use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\UserService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the Repository using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository - * - * @group integration */ +#[CoversClass(Repository::class)] +#[CoversMethod(Repository::class, 'getContentLanguageService()')] +#[Group('integration')] class RepositoryTest extends BaseTestCase { /** * Test for the getContentService() method. - * - * @group content - * @group user */ + #[Group('content')] + #[Group('user')] public function testGetContentService() { $repository = $this->getRepository(); @@ -51,11 +52,8 @@ public function testGetContentService() /** * Test for the getContentLanguageService() method. - * - * @group language - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::getContentLanguageService() */ + #[Group('language')] public function testGetContentLanguageService() { $repository = $this->getRepository(); @@ -67,11 +65,10 @@ public function testGetContentLanguageService() /** * Test for the getContentTypeService() method. - * - * @group content-type - * @group field-type - * @group user */ + #[Group('content-type')] + #[Group('field-type')] + #[Group('user')] public function testGetContentTypeService() { $repository = $this->getRepository(); @@ -83,9 +80,8 @@ public function testGetContentTypeService() /** * Test for the getLocationService() method. - * - * @group location */ + #[Group('location')] public function testGetLocationService() { $repository = $this->getRepository(); @@ -97,9 +93,8 @@ public function testGetLocationService() /** * Test for the getSectionService() method. - * - * @group section */ + #[Group('section')] public function testGetSectionService() { $repository = $this->getRepository(); @@ -111,9 +106,8 @@ public function testGetSectionService() /** * Test for the getUserService() method. - * - * @group user */ + #[Group('user')] public function testGetUserService() { $repository = $this->getRepository(); @@ -125,9 +119,8 @@ public function testGetUserService() /** * Test for the getNotificationService() method. - * - * @group user */ + #[Group('user')] public function testGetNotificationService() { $repository = $this->getRepository(); @@ -139,9 +132,8 @@ public function testGetNotificationService() /** * Test for the getTrashService() method. - * - * @group trash */ + #[Group('trash')] public function testGetTrashService() { $repository = $this->getRepository(); @@ -153,9 +145,8 @@ public function testGetTrashService() /** * Test for the getRoleService() method. - * - * @group role */ + #[Group('role')] public function testGetRoleService() { $repository = $this->getRepository(); @@ -167,9 +158,8 @@ public function testGetRoleService() /** * Test for the getURLAliasService() method. - * - * @group url-alias */ + #[Group('url-alias')] public function testGetURLAliasService() { $repository = $this->getRepository(); @@ -181,9 +171,8 @@ public function testGetURLAliasService() /** * Test for the getUrlWildcardService() method. - * - * @group url-wildcard */ + #[Group('url-wildcard')] public function testGetURLWildcardService() { $repository = $this->getRepository(); @@ -195,9 +184,8 @@ public function testGetURLWildcardService() /** * Test for the getObjectStateService(). - * - * @group object-state */ + #[Group('object-state')] public function testGetObjectStateService() { $repository = $this->getRepository(); @@ -209,9 +197,8 @@ public function testGetObjectStateService() /** * Test for the getFieldTypeService(). - * - * @group object-state */ + #[Group('object-state')] public function testGetFieldTypeService() { $repository = $this->getRepository(); @@ -223,9 +210,8 @@ public function testGetFieldTypeService() /** * Test for the getSearchService() method. - * - * @group search */ + #[Group('search')] public function testGetSearchService() { $repository = $this->getRepository(); @@ -238,9 +224,8 @@ public function testGetSearchService() /** * Test for the getSearchService() method. - * - * @group permission */ + #[Group('permission')] public function testGetPermissionResolver() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php index 99c484216b..fe219f8e61 100644 --- a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php @@ -8,28 +8,44 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\RoleService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\PolicyDraft; use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the RoleService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService - * - * @group integration - * @group authorization */ +#[CoversClass(RoleService::class)] +#[CoversMethod(RoleService::class, 'createRole()')] +#[CoversMethod(RoleService::class, 'loadRole()')] +#[CoversMethod(RoleService::class, 'loadRoleByIdentifier()')] +#[CoversMethod(RoleService::class, 'loadRoles()')] +#[CoversMethod(RoleService::class, 'deleteRole()')] +#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'removePolicy()')] +#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup()')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup($role, $userGroup, $roleLimitation)')] +#[CoversMethod(RoleService::class, 'removeRoleAssignment()')] +#[CoversMethod(RoleService::class, 'assignRoleToUser()')] +#[CoversMethod(RoleService::class, 'assignRoleToUser($role, $user, $roleLimitation)')] +#[CoversMethod(RoleService::class, 'getRoleAssignments()')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser()')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup()')] +#[Group('integration')] +#[Group('authorization')] class RoleServiceAuthorizationTest extends BaseTestCase { /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testCreateRole - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testCreateRole')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testCreateRoleThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -56,12 +72,9 @@ public function testCreateRoleThrowsUnauthorizedException() /** * Test for the loadRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRole() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testLoadRole - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testLoadRole')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testLoadRoleThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -85,12 +98,9 @@ public function testLoadRoleThrowsUnauthorizedException() /** * Test for the loadRoleByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleByIdentifier() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testLoadRoleByIdentifier - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testLoadRoleByIdentifier')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testLoadRoleByIdentifierThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -114,8 +124,6 @@ public function testLoadRoleByIdentifierThrowsUnauthorizedException() /** * Test for the loadRoles() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoles() */ public function testLoadRolesLoadsEmptyListForAnonymousUser() { @@ -137,8 +145,6 @@ public function testLoadRolesLoadsEmptyListForAnonymousUser() /** * Test for the loadRoles() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoles() */ public function testLoadRolesForUserWithSubtreeLimitation() { @@ -167,12 +173,9 @@ public function testLoadRolesForUserWithSubtreeLimitation() /** * Test for the deleteRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::deleteRole() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testDeleteRole - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testDeleteRole')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testDeleteRoleThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -196,12 +199,9 @@ public function testDeleteRoleThrowsUnauthorizedException() /** * Test for the updatePolicy() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updatePolicyByRoleDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testUpdatePolicyByRoleDraft - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testUpdatePolicyByRoleDraft')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testUpdatePolicyByRoleDraftThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -244,12 +244,9 @@ public function testUpdatePolicyByRoleDraftThrowsUnauthorizedException() /** * Test for the removePolicy() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removePolicy() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testRemovePolicyByRoleDraft - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testRemovePolicyByRoleDraft')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testRemovePolicyThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -289,12 +286,9 @@ public function testRemovePolicyThrowsUnauthorizedException() /** * Test for the removePolicyByRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removePolicyByRoleDraft() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testRemovePolicyByRoleDraft - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testRemovePolicyByRoleDraft')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testDeletePolicyThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -323,12 +317,9 @@ public function testDeletePolicyThrowsUnauthorizedException() /** * Test for the assignRoleToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testAssignRoleToUserGroup - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUserGroup')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testAssignRoleToUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -358,12 +349,9 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedException() /** * Test for the assignRoleToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup($role, $userGroup, $roleLimitation) - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testAssignRoleToUserGroup - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUserGroup')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimitationParameter() { $this->expectException(UnauthorizedException::class); @@ -400,12 +388,9 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimi /** * Test for the removeRoleAssignment() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testRemoveRoleAssignmentFromUserGroup - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testRemoveRoleAssignmentFromUserGroup')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -444,12 +429,9 @@ public function testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException /** * Test for the assignRoleToUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testAssignRoleToUser - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUser')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testAssignRoleToUserThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -473,12 +455,9 @@ public function testAssignRoleToUserThrowsUnauthorizedException() /** * Test for the assignRoleToUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser($role, $user, $roleLimitation) - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testAssignRoleToUser - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUser')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitationParameter() { $this->expectException(UnauthorizedException::class); @@ -509,12 +488,9 @@ public function testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitatio /** * Test for the removeRoleAssignment() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testRemoveRoleAssignment - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testRemoveRoleAssignment')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testRemoveRoleAssignmentThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -546,12 +522,9 @@ public function testRemoveRoleAssignmentThrowsUnauthorizedException() /** * Test for the getRoleAssignments() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignments() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testGetRoleAssignments - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testGetRoleAssignments')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testGetRoleAssignmentsThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -575,8 +548,6 @@ public function testGetRoleAssignmentsThrowsUnauthorizedException() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() */ public function testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser() { @@ -597,8 +568,6 @@ public function testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() */ public function testGetRoleAssignmentsForUserWithSubtreeLimitation() { @@ -627,12 +596,9 @@ public function testGetRoleAssignmentsForUserWithSubtreeLimitation() /** * Test for the getRoleAssignmentsForUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\RoleServiceTest::testGetRoleAssignmentsForUserGroup - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(RoleServiceTest::class, 'testGetRoleAssignmentsForUserGroup')] + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testGetRoleAssignmentsForUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/RoleServiceTest.php b/tests/integration/Core/Repository/RoleServiceTest.php index edea9ec51f..1592acf6ca 100644 --- a/tests/integration/Core/Repository/RoleServiceTest.php +++ b/tests/integration/Core/Repository/RoleServiceTest.php @@ -30,6 +30,11 @@ use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Contracts\Core\Repository\Values\User\UserGroupRoleAssignment; use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the RoleService using in memory storage. @@ -47,17 +52,47 @@ * * *
    - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService - * - * @group role */ +#[CoversClass(RoleService::class)] +#[CoversMethod(RoleService::class, 'newRoleCreateStruct()')] +#[CoversMethod(RoleService::class, 'newRoleCopyStruct')] +#[CoversMethod(RoleService::class, 'createRole()')] +#[CoversMethod(RoleService::class, 'createRole')] +#[CoversMethod(RoleService::class, 'createRoleDraft()')] +#[CoversMethod(RoleService::class, 'copyRole')] +#[CoversMethod(RoleService::class, 'loadRole()')] +#[CoversMethod(RoleService::class, 'loadRoleDraft()')] +#[CoversMethod(RoleService::class, 'loadRoleByIdentifier()')] +#[CoversMethod(RoleService::class, 'loadRoles()')] +#[CoversMethod(RoleService::class, 'newRoleUpdateStruct()')] +#[CoversMethod(RoleService::class, 'updateRoleDraft()')] +#[CoversMethod(RoleService::class, 'deleteRole()')] +#[CoversMethod(RoleService::class, 'deleteRoleDraft()')] +#[CoversMethod(RoleService::class, 'newPolicyCreateStruct()')] +#[CoversMethod(RoleService::class, 'addPolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'newPolicyUpdateStruct()')] +#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'testUpdatePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'loadRoleAssignment')] +#[CoversMethod(RoleService::class, 'getRoleAssignments()')] +#[CoversMethod(RoleService::class, 'getRoleAssignments')] +#[CoversMethod(RoleService::class, 'loadRoleAssignments()')] +#[CoversMethod(RoleService::class, 'countRoleAssignments()')] +#[CoversMethod(RoleService::class, 'assignRoleToUser()')] +#[CoversMethod(RoleService::class, 'assignRoleToUser($role, $user, $roleLimitation)')] +#[CoversMethod(RoleService::class, 'removeRoleAssignment()')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser()')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup()')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup($role, $userGroup, $roleLimitation)')] +#[CoversMethod(RoleService::class, 'removeRoleAssignment')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup()')] +#[CoversMethod(RoleService::class, 'publishRoleDraft()')] +#[Group('role')] class RoleServiceTest extends BaseTestCase { /** * Test for the newRoleCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newRoleCreateStruct() */ public function testNewRoleCreateStruct() { @@ -69,9 +104,6 @@ public function testNewRoleCreateStruct() self::assertInstanceOf(RoleCreateStruct::class, $roleCreate); } - /** - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newRoleCopyStruct - */ public function testNewRoleCopyStruct(): void { $repository = $this->getRepository(); @@ -85,11 +117,8 @@ public function testNewRoleCopyStruct(): void /** * Test for the newRoleCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newRoleCreateStruct() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testNewRoleCreateStructSetsNamePropertyOnStruct() { $repository = $this->getRepository(); @@ -106,11 +135,8 @@ public function testNewRoleCreateStructSetsNamePropertyOnStruct() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testCreateRole() { $repository = $this->getRepository(); @@ -140,11 +166,8 @@ public function testCreateRole() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testCreateRole */ + #[Depends('testCreateRole')] public function testRoleCreateStructValues(array $data) { $createStruct = $data['createStruct']; @@ -167,11 +190,8 @@ public function testRoleCreateStructValues(array $data) /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testCreateRoleWithPolicy() { $repository = $this->getRepository(); @@ -215,11 +235,8 @@ public function testCreateRoleWithPolicy() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testCreateRoleWithPolicy */ + #[Depends('testCreateRoleWithPolicy')] public function testRoleCreateStructValuesWithPolicy(array $data) { $createStruct = $data['createStruct']; @@ -246,8 +263,6 @@ public function testRoleCreateStructValuesWithPolicy(array $data) /** * Test creating a role with multiple policies. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole */ public function testCreateRoleWithMultiplePolicies() { @@ -337,11 +352,8 @@ public function testCreateRoleWithMultiplePolicies() /** * Test for the createRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRoleDraft() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testCreateRoleDraft() { $repository = $this->getRepository(); @@ -369,11 +381,8 @@ public function testCreateRoleDraft() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testCreateRole */ + #[Depends('testCreateRole')] public function testCreateRoleThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -396,11 +405,8 @@ public function testCreateRoleThrowsInvalidArgumentException() /** * Test for the createRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRoleDraft() - * - * @depends testCreateRoleDraft */ + #[Depends('testCreateRoleDraft')] public function testCreateRoleDraftThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -428,8 +434,6 @@ public function testCreateRoleDraftThrowsInvalidArgumentException() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() */ public function testCreateRoleThrowsLimitationValidationException() { @@ -468,11 +472,8 @@ public function testCreateRoleThrowsLimitationValidationException() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testCreateRoleInTransactionWithRollback() { $repository = $this->getRepository(); @@ -505,11 +506,8 @@ public function testCreateRoleInTransactionWithRollback() /** * Test for the createRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRoleDraft() - * - * @depends testNewRoleCreateStruct */ + #[Depends('testNewRoleCreateStruct')] public function testCreateRoleDraftInTransactionWithRollback() { $repository = $this->getRepository(); @@ -540,9 +538,9 @@ public function testCreateRoleDraftInTransactionWithRollback() self::fail('Role draft object still exists after rollback.'); } - public function providerForCopyRoleTests(): array + public static function providerForCopyRoleTests(): array { - $repository = $this->getRepository(); + $repository = static::resolveRepository(); $roleService = $repository->getRoleService(); $roleCreateStruct = $roleService->newRoleCreateStruct('newRole'); @@ -581,19 +579,15 @@ public function providerForCopyRoleTests(): array } /** - * @dataProvider providerForCopyRoleTests - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::copyRole - * - * @depends testNewRoleCopyStruct - * @depends testLoadRoleByIdentifier - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\LimitationValidationException */ + #[Depends('testNewRoleCopyStruct')] + #[Depends('testLoadRoleByIdentifier')] + #[DataProvider('providerForCopyRoleTests')] public function testCopyRole(RoleCreateStruct $roleCreateStruct, RoleCopyStruct $roleCopyStruct): void { $repository = $this->getRepository(); @@ -618,12 +612,8 @@ public function testCopyRole(RoleCreateStruct $roleCreateStruct, RoleCopyStruct /** * Test for the copyRole() method with added policies. * - * @dataProvider providerForCopyRoleTests * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::copyRole * - * @depends testNewRoleCopyStruct - * @depends testLoadRoleByIdentifier * * @param \Ibexa\Contracts\Core\Repository\Values\User\PolicyCreateStruct[] $policies * @@ -633,6 +623,9 @@ public function testCopyRole(RoleCreateStruct $roleCreateStruct, RoleCopyStruct * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\LimitationValidationException */ + #[Depends('testNewRoleCopyStruct')] + #[Depends('testLoadRoleByIdentifier')] + #[DataProvider('providerForCopyRoleTests')] public function testCopyRoleWithPolicies( RoleCreateStruct $roleCreateStruct, RoleCopyStruct $roleCopyStruct, @@ -662,12 +655,8 @@ public function testCopyRoleWithPolicies( /** * Test for the copyRole() method with added policies and limitations. * - * @dataProvider providerForCopyRoleTests * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::copyRole * - * @depends testNewRoleCopyStruct - * @depends testLoadRoleByIdentifier * * @param \Ibexa\Contracts\Core\Repository\Values\User\PolicyCreateStruct[] $policies * @@ -677,6 +666,9 @@ public function testCopyRoleWithPolicies( * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\LimitationValidationException */ + #[Depends('testNewRoleCopyStruct')] + #[Depends('testLoadRoleByIdentifier')] + #[DataProvider('providerForCopyRoleTests')] public function testCopyRoleWithPoliciesAndLimitations( RoleCreateStruct $roleCreateStruct, RoleCopyStruct $roleCopyStruct, @@ -718,11 +710,8 @@ public function testCopyRoleWithPoliciesAndLimitations( /** * Test for the loadRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRole() - * - * @depends testCreateRole */ + #[Depends('testCreateRole')] public function testLoadRole() { $repository = $this->getRepository(); @@ -748,9 +737,8 @@ public function testLoadRole() /** * Test for the loadRoleDraft() method. - * - * @depends testCreateRoleDraft */ + #[Depends('testCreateRoleDraft')] public function testLoadRoleDraft() { $repository = $this->getRepository(); @@ -801,11 +789,8 @@ public function testLoadRoleDraftByRoleId() /** * Test for the loadRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRole() - * - * @depends testLoadRole */ + #[Depends('testLoadRole')] public function testLoadRoleThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -825,11 +810,8 @@ public function testLoadRoleThrowsNotFoundException() /** * Test for the loadRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleDraft() - * - * @depends testLoadRoleDraft */ + #[Depends('testLoadRoleDraft')] public function testLoadRoleDraftThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -866,11 +848,8 @@ public function testLoadRoleDraftByRoleIdThrowsNotFoundException() /** * Test for the loadRoleByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleByIdentifier() - * - * @depends testCreateRole */ + #[Depends('testCreateRole')] public function testLoadRoleByIdentifier() { $repository = $this->getRepository(); @@ -896,11 +875,8 @@ public function testLoadRoleByIdentifier() /** * Test for the loadRoleByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleByIdentifier() - * - * @depends testLoadRoleByIdentifier */ + #[Depends('testLoadRoleByIdentifier')] public function testLoadRoleByIdentifierThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -919,11 +895,8 @@ public function testLoadRoleByIdentifierThrowsNotFoundException() /** * Test for the loadRoles() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoles() - * - * @depends testCreateRole */ + #[Depends('testCreateRole')] public function testLoadRoles() { $repository = $this->getRepository(); @@ -956,11 +929,8 @@ public function testLoadRoles() /** * Test for the loadRoles() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoles() - * - * @depends testLoadRoles */ + #[Depends('testLoadRoles')] public function testLoadRolesReturnsExpectedSetOfDefaultRoles() { $repository = $this->getRepository(); @@ -990,8 +960,6 @@ public function testLoadRolesReturnsExpectedSetOfDefaultRoles() /** * Test for the newRoleUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newRoleUpdateStruct() */ public function testNewRoleUpdateStruct() { @@ -1007,12 +975,9 @@ public function testNewRoleUpdateStruct() /** * Test for the updateRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updateRoleDraft() - * - * @depends testNewRoleUpdateStruct - * @depends testLoadRoleDraft */ + #[Depends('testNewRoleUpdateStruct')] + #[Depends('testLoadRoleDraft')] public function testUpdateRoleDraft() { $repository = $this->getRepository(); @@ -1040,11 +1005,8 @@ public function testUpdateRoleDraft() /** * Test for the updateRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updateRoleDraft() - * - * @depends testUpdateRoleDraft */ + #[Depends('testUpdateRoleDraft')] public function testUpdateRoleDraftThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -1070,12 +1032,9 @@ public function testUpdateRoleDraftThrowsInvalidArgumentException() /** * Test for the deleteRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::deleteRole() - * - * @depends testCreateRole - * @depends testLoadRoles */ + #[Depends('testCreateRole')] + #[Depends('testLoadRoles')] public function testDeleteRole() { $repository = $this->getRepository(); @@ -1099,11 +1058,8 @@ public function testDeleteRole() /** * Test for the deleteRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::deleteRoleDraft() - * - * @depends testLoadRoleDraft */ + #[Depends('testLoadRoleDraft')] public function testDeleteRoleDraft() { $this->expectException(NotFoundException::class); @@ -1128,8 +1084,6 @@ public function testDeleteRoleDraft() /** * Test for the newPolicyCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newPolicyCreateStruct() */ public function testNewPolicyCreateStruct() { @@ -1145,11 +1099,8 @@ public function testNewPolicyCreateStruct() /** * Test for the newPolicyCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newPolicyCreateStruct() - * - * @depends testNewPolicyCreateStruct */ + #[Depends('testNewPolicyCreateStruct')] public function testNewPolicyCreateStructSetsStructProperties() { $repository = $this->getRepository(); @@ -1167,12 +1118,9 @@ public function testNewPolicyCreateStructSetsStructProperties() /** * Test for the addPolicyByRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::addPolicyByRoleDraft() - * - * @depends testCreateRoleDraft - * @depends testNewPolicyCreateStruct */ + #[Depends('testCreateRoleDraft')] + #[Depends('testNewPolicyCreateStruct')] public function testAddPolicyByRoleDraft() { $repository = $this->getRepository(); @@ -1230,11 +1178,8 @@ static function ($p1, $p2): int { * Test for the addPolicyByRoleDraft() method. * * @return array [\Ibexa\Contracts\Core\Repository\Values\User\RoleDraft, \Ibexa\Contracts\Core\Repository\Values\User\Policy] - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::addPolicyByRoleDraft() - * - * @depends testAddPolicyByRoleDraft */ + #[Depends('testAddPolicyByRoleDraft')] public function testAddPolicyByRoleDraftUpdatesRole() { $repository = $this->getRepository(); @@ -1272,11 +1217,8 @@ public function testAddPolicyByRoleDraftUpdatesRole() * Test for the addPolicyByRoleDraft() method. * * @param array $roleAndPolicy - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::addPolicyByRoleDraft() - * - * @depends testAddPolicyByRoleDraftUpdatesRole */ + #[Depends('testAddPolicyByRoleDraftUpdatesRole')] public function testAddPolicyByRoleDraftSetsPolicyProperties($roleAndPolicy) { list($role, $policy) = $roleAndPolicy; @@ -1289,12 +1231,9 @@ public function testAddPolicyByRoleDraftSetsPolicyProperties($roleAndPolicy) /** * Test for the addPolicyByRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::addPolicyByRoleDraft() - * - * @depends testNewPolicyCreateStruct - * @depends testCreateRoleDraft */ + #[Depends('testNewPolicyCreateStruct')] + #[Depends('testCreateRoleDraft')] public function testAddPolicyByRoleDraftThrowsLimitationValidationException() { $this->expectException(LimitationValidationException::class); @@ -1330,11 +1269,8 @@ public function testAddPolicyByRoleDraftThrowsLimitationValidationException() /** * Test for the createRole() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRole() - * - * @depends testAddPolicyByRoleDraftUpdatesRole */ + #[Depends('testAddPolicyByRoleDraftUpdatesRole')] public function testCreateRoleWithAddPolicy() { $repository = $this->getRepository(); @@ -1391,11 +1327,8 @@ public function testCreateRoleWithAddPolicy() /** * Test for the createRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::createRoleDraft() - * - * @depends testAddPolicyByRoleDraftUpdatesRole */ + #[Depends('testAddPolicyByRoleDraftUpdatesRole')] public function testCreateRoleDraftWithAddPolicy() { $repository = $this->getRepository(); @@ -1449,8 +1382,6 @@ public function testCreateRoleDraftWithAddPolicy() /** * Test for the newPolicyUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::newPolicyUpdateStruct() */ public function testNewPolicyUpdateStruct() { @@ -1523,12 +1454,9 @@ public function testUpdatePolicyByRoleDraftNoLimitation() /** * @return array - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updatePolicyByRoleDraft() - * - * @depends testAddPolicyByRoleDraft - * @depends testNewPolicyUpdateStruct */ + #[Depends('testAddPolicyByRoleDraft')] + #[Depends('testNewPolicyUpdateStruct')] public function testUpdatePolicyByRoleDraft() { $repository = $this->getRepository(); @@ -1601,11 +1529,8 @@ public function testUpdatePolicyByRoleDraft() /** * @param array $roleAndPolicy - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::testUpdatePolicyByRoleDraft() - * - * @depends testUpdatePolicyByRoleDraft */ + #[Depends('testUpdatePolicyByRoleDraft')] public function testUpdatePolicyUpdatesLimitations($roleAndPolicy) { list($role, $policy) = $roleAndPolicy; @@ -1628,11 +1553,8 @@ public function testUpdatePolicyUpdatesLimitations($roleAndPolicy) * Test for the updatePolicy() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\Role $role - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updatePolicyByRoleDraft() - * - * @depends testUpdatePolicyUpdatesLimitations */ + #[Depends('testUpdatePolicyUpdatesLimitations')] public function testUpdatePolicyUpdatesRole($role) { $limitations = []; @@ -1659,15 +1581,12 @@ public function testUpdatePolicyUpdatesRole($role) /** * Test for the updatePolicy() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::updatePolicyByRoleDraft() - * - * @depends testAddPolicyByRoleDraft - * @depends testNewPolicyCreateStruct - * @depends testNewPolicyUpdateStruct - * @depends testNewRoleCreateStruct - * @depends testCreateRole */ + #[Depends('testAddPolicyByRoleDraft')] + #[Depends('testNewPolicyCreateStruct')] + #[Depends('testNewPolicyUpdateStruct')] + #[Depends('testNewRoleCreateStruct')] + #[Depends('testCreateRole')] public function testUpdatePolicyByRoleDraftThrowsLimitationValidationException() { $this->expectException(LimitationValidationException::class); @@ -1733,11 +1652,8 @@ public function testUpdatePolicyByRoleDraftThrowsLimitationValidationException() /** * Test for the removePolicyByRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removePolicyByRoleDraft() - * - * @depends testAddPolicyByRoleDraft */ + #[Depends('testAddPolicyByRoleDraft')] public function testRemovePolicyByRoleDraft() { $repository = $this->getRepository(); @@ -1773,8 +1689,6 @@ public function testRemovePolicyByRoleDraft() /** * Test for the addPolicyByRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::addPolicyByRoleDraft() */ public function testAddPolicyWithRoleAssignment() { @@ -1820,8 +1734,6 @@ public function testAddPolicyWithRoleAssignment() * Test loading user/group role assignments. * * @return \Ibexa\Contracts\Core\Repository\Values\User\UserGroupRoleAssignment - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleAssignment */ public function testLoadRoleAssignment() { @@ -1870,11 +1782,8 @@ public function testLoadRoleAssignment() * Test for the getRoleAssignments() method. * * @return \Ibexa\Contracts\Core\Repository\Values\User\RoleAssignment[] - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignments() - * - * @depends testLoadRoleByIdentifier */ + #[Depends('testLoadRoleByIdentifier')] public function testGetRoleAssignments() { $repository = $this->getRepository(); @@ -1907,11 +1816,8 @@ public function testGetRoleAssignments() * Test for the getRoleAssignments() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\RoleAssignment[] $roleAssignments - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignments - * - * @depends testGetRoleAssignments */ + #[Depends('testGetRoleAssignments')] public function testGetRoleAssignmentsContainExpectedLimitation(array $roleAssignments) { self::assertEquals( @@ -1920,9 +1826,6 @@ public function testGetRoleAssignmentsContainExpectedLimitation(array $roleAssig ); } - /** - * @covers \Ibexa\Contracts\Core\Repository\RoleService::loadRoleAssignments() - */ public function testLoadRoleAssignments(): void { $repository = $this->getRepository(); @@ -1943,9 +1846,6 @@ public function testLoadRoleAssignments(): void self::assertInstanceOf(UserRoleAssignment::class, $roleAssignments[0]); } - /** - * @covers \Ibexa\Contracts\Core\Repository\RoleService::countRoleAssignments() - */ public function testLoadRoleAssignmentsWithDeletedUser(): void { $repository = $this->getRepository(); @@ -2016,11 +1916,8 @@ public function testCountRoleAssignmentsAfterDeletingUser(): void /** * Test for the assignRoleToUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser() - * - * @depends testGetRoleAssignments */ + #[Depends('testGetRoleAssignments')] public function testAssignRoleToUser() { $repository = $this->getRepository(); @@ -2045,11 +1942,8 @@ public function testAssignRoleToUser() /** * Test for the assignRoleToUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser($role, $user, $roleLimitation) - * - * @depends testAssignRoleToUser */ + #[Depends('testAssignRoleToUser')] public function testAssignRoleToUserWithRoleLimitation() { $repository = $this->getRepository(); @@ -2151,12 +2045,9 @@ public function testAssignRoleToUserWithRoleLimitation() /** * Test for the assignRoleToUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser($role, $user, $roleLimitation) - * - * @depends testAssignRoleToUser - * @depends testLoadRoleByIdentifier */ + #[Depends('testAssignRoleToUser')] + #[Depends('testLoadRoleByIdentifier')] public function testAssignRoleToUserWithRoleLimitationThrowsLimitationValidationException() { $this->expectException(LimitationValidationException::class); @@ -2193,12 +2084,9 @@ public function testAssignRoleToUserWithRoleLimitationThrowsLimitationValidation * Test for the assignRoleToUser() method. * * Makes sure assigning role several times throws. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser($role, $user, $roleLimitation) - * - * @depends testAssignRoleToUser - * @depends testLoadRoleByIdentifier */ + #[Depends('testAssignRoleToUser')] + #[Depends('testLoadRoleByIdentifier')] public function testAssignRoleToUserThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2239,12 +2127,9 @@ public function testAssignRoleToUserThrowsInvalidArgumentException() * Test for the assignRoleToUser() method. * * Makes sure assigning role several times with same limitations throws. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUser($role, $user, $roleLimitation) - * - * @depends testAssignRoleToUser - * @depends testLoadRoleByIdentifier */ + #[Depends('testAssignRoleToUser')] + #[Depends('testLoadRoleByIdentifier')] public function testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2293,11 +2178,8 @@ public function testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentExcep /** * Test for the removeRoleAssignment() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment() - * - * @depends testAssignRoleToUser */ + #[Depends('testAssignRoleToUser')] public function testRemoveRoleAssignment() { $repository = $this->getRepository(); @@ -2329,12 +2211,9 @@ public function testRemoveRoleAssignment() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() - * - * @depends testAssignRoleToUser - * @depends testCreateRoleWithAddPolicy */ + #[Depends('testAssignRoleToUser')] + #[Depends('testCreateRoleWithAddPolicy')] public function testGetRoleAssignmentsForUserDirect() { $repository = $this->getRepository(); @@ -2385,12 +2264,9 @@ public function testGetRoleAssignmentsForUserDirect() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() - * - * @depends testAssignRoleToUser - * @depends testCreateRoleWithAddPolicy */ + #[Depends('testAssignRoleToUser')] + #[Depends('testCreateRoleWithAddPolicy')] public function testGetRoleAssignmentsForUserEmpty() { $repository = $this->getRepository(); @@ -2410,12 +2286,9 @@ public function testGetRoleAssignmentsForUserEmpty() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() - * - * @depends testAssignRoleToUser - * @depends testCreateRoleWithAddPolicy */ + #[Depends('testAssignRoleToUser')] + #[Depends('testCreateRoleWithAddPolicy')] public function testGetRoleAssignmentsForUserInherited() { $repository = $this->getRepository(); @@ -2439,11 +2312,8 @@ public function testGetRoleAssignmentsForUserInherited() /** * Test for the assignRoleToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup() - * - * @depends testGetRoleAssignments */ + #[Depends('testGetRoleAssignments')] public function testAssignRoleToUserGroup() { $repository = $this->getRepository(); @@ -2470,8 +2340,6 @@ public function testAssignRoleToUserGroup() * Test for the assignRoleToUserGroup() method. * * Related issue: EZP-29113 - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup() */ public function testAssignRoleToUserGroupAffectsRoleAssignmentsForUser() { @@ -2498,11 +2366,8 @@ public function testAssignRoleToUserGroupAffectsRoleAssignmentsForUser() /** * Test for the assignRoleToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup($role, $userGroup, $roleLimitation) - * - * @depends testAssignRoleToUserGroup */ + #[Depends('testAssignRoleToUserGroup')] public function testAssignRoleToUserGroupWithRoleLimitation() { $repository = $this->getRepository(); @@ -2600,12 +2465,9 @@ public function testAssignRoleToUserGroupWithRoleLimitation() /** * Test for the assignRoleToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup($role, $userGroup, $roleLimitation) - * - * @depends testLoadRoleByIdentifier - * @depends testAssignRoleToUserGroup */ + #[Depends('testLoadRoleByIdentifier')] + #[Depends('testAssignRoleToUserGroup')] public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValidationException() { $this->expectException(LimitationValidationException::class); @@ -2643,12 +2505,9 @@ public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValid * Test for the assignRoleToUserGroup() method. * * Makes sure assigning role several times throws. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup($role, $userGroup, $roleLimitation) - * - * @depends testLoadRoleByIdentifier - * @depends testAssignRoleToUserGroup */ + #[Depends('testLoadRoleByIdentifier')] + #[Depends('testAssignRoleToUserGroup')] public function testAssignRoleToUserGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2690,12 +2549,9 @@ public function testAssignRoleToUserGroupThrowsInvalidArgumentException() * Test for the assignRoleToUserGroup() method. * * Makes sure assigning role several times with same limitations throws. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::assignRoleToUserGroup($role, $userGroup, $roleLimitation) - * - * @depends testLoadRoleByIdentifier - * @depends testAssignRoleToUserGroup */ + #[Depends('testLoadRoleByIdentifier')] + #[Depends('testAssignRoleToUserGroup')] public function testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2745,11 +2601,8 @@ public function testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgument /** * Test for the removeRoleAssignment() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment() - * - * @depends testAssignRoleToUserGroup */ + #[Depends('testAssignRoleToUserGroup')] public function testRemoveRoleAssignmentFromUserGroup() { $repository = $this->getRepository(); @@ -2783,8 +2636,6 @@ public function testRemoveRoleAssignmentFromUserGroup() /** * Test unassigning role by assignment. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment */ public function testUnassignRoleByAssignment() { @@ -2810,8 +2661,6 @@ public function testUnassignRoleByAssignment() * Test unassigning role by assignment. * * But on current admin user so he lacks access to read roles. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment */ public function testUnassignRoleByAssignmentThrowsUnauthorizedException() { @@ -2835,8 +2684,6 @@ public function testUnassignRoleByAssignmentThrowsUnauthorizedException() /** * Test unassigning role by non-existing assignment. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::removeRoleAssignment */ public function testUnassignRoleByAssignmentThrowsNotFoundException() { @@ -2860,12 +2707,9 @@ public function testUnassignRoleByAssignmentThrowsNotFoundException() /** * Test for the getRoleAssignmentsForUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUserGroup() - * - * @depends testAssignRoleToUserGroup - * @depends testCreateRoleWithAddPolicy */ + #[Depends('testAssignRoleToUserGroup')] + #[Depends('testCreateRoleWithAddPolicy')] public function testGetRoleAssignmentsForUserGroup() { $repository = $this->getRepository(); @@ -2911,12 +2755,9 @@ public function testGetRoleAssignmentsForUserGroup() /** * Test for the getRoleAssignmentsForUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::getRoleAssignmentsForUser() - * - * @depends testAssignRoleToUser - * @depends testAssignRoleToUserGroup */ + #[Depends('testAssignRoleToUser')] + #[Depends('testAssignRoleToUserGroup')] public function testLoadPoliciesByUserId() { $repository = $this->getRepository(); @@ -2989,11 +2830,8 @@ public function testLoadPoliciesByUserId() /** * Test for the publishRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::publishRoleDraft() - * - * @depends testCreateRoleDraft */ + #[Depends('testCreateRoleDraft')] public function testPublishRoleDraft() { $repository = $this->getRepository(); @@ -3027,12 +2865,9 @@ public function testPublishRoleDraft() /** * Test for the publishRoleDraft() method. - * - * @covers \Ibexa\Contracts\Core\Repository\RoleService::publishRoleDraft() - * - * @depends testCreateRoleDraft - * @depends testAddPolicyByRoleDraft */ + #[Depends('testCreateRoleDraft')] + #[Depends('testAddPolicyByRoleDraft')] public function testPublishRoleDraftAddPolicies() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/SearchEngineIndexingTest.php b/tests/integration/Core/Repository/SearchEngineIndexingTest.php index 08497bcb8b..fa9f055133 100644 --- a/tests/integration/Core/Repository/SearchEngineIndexingTest.php +++ b/tests/integration/Core/Repository/SearchEngineIndexingTest.php @@ -16,14 +16,16 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for indexing operations with a search engine. - * - * @group integration - * @group search - * @group indexing */ +#[Group('integration')] +#[Group('search')] +#[Group('indexing')] class SearchEngineIndexingTest extends BaseTestCase { /** @@ -55,10 +57,10 @@ public function testFindContentInfoFullTextIsSearchable() /** * Test that indexing full text data depends on the isSearchable flag on the field definition. * - * @depends testFindContentInfoFullTextIsSearchable * * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ + #[Depends('testFindContentInfoFullTextIsSearchable')] public function testFindLocationsFullTextIsSearchable(ContentInfo $contentInfo) { $searchTerm = 'pamplemousse'; @@ -83,9 +85,8 @@ public function testFindLocationsFullTextIsSearchable(ContentInfo $contentInfo) /** * Test that indexing full text data depends on the isSearchable flag on the field definition. - * - * @depends testFindContentInfoFullTextIsSearchable */ + #[Depends('testFindContentInfoFullTextIsSearchable')] public function testFindContentInfoFullTextIsNotSearchable() { $searchTerm = 'pamplemousse'; @@ -107,9 +108,8 @@ public function testFindContentInfoFullTextIsNotSearchable() /** * Test that indexing full text data depends on the isSearchable flag on the field definition. - * - * @depends testFindLocationsFullTextIsSearchable */ + #[Depends('testFindLocationsFullTextIsSearchable')] public function testFindLocationsFullTextIsNotSearchable() { $searchTerm = 'pamplemousse'; @@ -816,9 +816,8 @@ public function testSetContentState() * @param string $text Content Item field value text (to be indexed) * @param string $searchForText text based on which Content Item should be found * @param array $ignoreForSetupFactories list of SetupFactories to be ignored - * - * @dataProvider getSpecialFullTextCases */ + #[DataProvider('getSpecialFullTextCases')] public function testIndexingSpecialFullTextCases($text, $searchForText) { $repository = $this->getRepository(); @@ -845,9 +844,8 @@ public function testIndexingSpecialFullTextCases($text, $searchForText) /** * Check if FullText indexing works for email addresses. - * - * @dataProvider getEmailAddressesCases */ + #[DataProvider('getEmailAddressesCases')] public function testIndexingEmailFieldCases(string $email, string $searchForText): void { $repository = $this->getRepository(); @@ -875,7 +873,7 @@ public function testIndexingEmailFieldCases(string $email, string $searchForText /** * Data Provider for {@see testIndexingSpecialFullTextCases()} method. */ - public function getEmailAddressesCases(): array + public static function getEmailAddressesCases(): array { return [ ['test@TEST.com', 'test@test.com'], @@ -891,7 +889,7 @@ public function getEmailAddressesCases(): array * * @return array */ - public function getSpecialFullTextCases() + public static function getSpecialFullTextCases() { return [ ['UPPERCASE TEXT', 'uppercase text'], diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php b/tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php index e6db33b624..c6d538da14 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\MatchAll; use Ibexa\Contracts\Core\Repository\Values\Content\Search\AggregationResult; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; abstract class AbstractAggregationTestCase extends BaseTestCase { @@ -33,9 +34,7 @@ protected function skipIfAggregationsAreNotSupported(): void } } - /** - * @dataProvider dataProviderForTestFindContentWithAggregation - */ + #[DataProvider('dataProviderForTestFindContentWithAggregation')] public function testFindContentWithAggregation( Aggregation $aggregation, AggregationResult $expectedResult @@ -52,9 +51,7 @@ public function testFindContentWithAggregation( ); } - /** - * @dataProvider dataProviderForTestFindLocationWithAggregation - */ + #[DataProvider('dataProviderForTestFindLocationWithAggregation')] public function testFindLocationWithAggregation( Aggregation $aggregation, AggregationResult $expectedResult @@ -71,16 +68,16 @@ public function testFindLocationWithAggregation( ); } - abstract public function dataProviderForTestFindContentWithAggregation(): iterable; + abstract public static function dataProviderForTestFindContentWithAggregation(): iterable; /** * Overwrite if results for location query are different then content query. * * @return iterable */ - public function dataProviderForTestFindLocationWithAggregation(): iterable + public static function dataProviderForTestFindLocationWithAggregation(): iterable { - yield from $this->dataProviderForTestFindContentWithAggregation(); + yield from static::dataProviderForTestFindContentWithAggregation(); } protected function createFixturesForAggregation(Aggregation $aggregation): void diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php index d20129028d..e11dcf0e11 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php @@ -13,7 +13,7 @@ final class ContentTypeGroupTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new ContentTypeGroupTermAggregation('content_type_group'); @@ -25,7 +25,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getContentTypeService(), + static::resolveRepository()->getContentTypeService(), 'loadContentTypeGroupByIdentifier', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php index 1ea75284a9..f9f7f159b6 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php @@ -13,7 +13,7 @@ final class ContentTypeTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new ContentTypeTermAggregation('content_type'); @@ -29,7 +29,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getContentTypeService(), + static::resolveRepository()->getContentTypeService(), 'loadContentTypeByIdentifier', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php index 60b3950cf8..b372dbe161 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php @@ -17,7 +17,7 @@ final class DateMetadataRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $timezone = new DateTimeZone('+0000'); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php index a929a24cdb..6765b89c8c 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php @@ -19,7 +19,7 @@ final class AuthorTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new AuthorTermAggregation('author_term', 'content_type', 'author'), diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php index 8e90381269..49c9c2b379 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php @@ -18,7 +18,7 @@ final class CheckboxTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new CheckboxTermAggregation('checkbox_term', 'content_type', 'boolean'), diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php index b1bc974d70..25762fd5dc 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php @@ -18,7 +18,7 @@ final class CountryTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield '::TYPE_NAME' => [ new CountryTermAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php index 8d4d705258..63163f22f7 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php @@ -20,7 +20,7 @@ final class DateRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $timezone = new DateTimeZone('+0000'); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php index ec3993ac5e..5594fb1734 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php @@ -20,7 +20,7 @@ final class DateTimeRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $timezone = new DateTimeZone('+0000'); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php index a2fd16aeac..c04b182cf5 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php @@ -18,7 +18,7 @@ final class FloatRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new FloatRangeAggregation('float_range', 'content_type', 'float_field', [ diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php index 397337b3b9..e4d56c040c 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php @@ -16,7 +16,7 @@ final class FloatStatsAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new FloatStatsAggregation('float_stats', 'content_type', 'float_field_2'), diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php index f18f6f5ac1..7ce0c0e990 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php @@ -18,7 +18,7 @@ final class IntegerRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new IntegerRangeAggregation('integer_range', 'content_type', 'integer_field', [ diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php index 8f506c6840..7deadf36e5 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php @@ -16,7 +16,7 @@ final class IntegerStatsAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new IntegerStatsAggregation('integer_stats', 'content_type', 'integer_field'), diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php index 4c6b542903..cf92c5a342 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php @@ -17,7 +17,7 @@ final class KeywordTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new KeywordTermAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php index d7b72e757c..ff647f0cf5 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php @@ -18,7 +18,7 @@ final class SelectionTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new SelectionTermAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php index 8bcac57835..c75828f29d 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php @@ -20,7 +20,7 @@ final class TimeRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new TimeRangeAggregation( @@ -28,30 +28,30 @@ public function dataProviderForTestFindContentWithAggregation(): iterable 'content_type', 'time_field', [ - Range::ofInt(null, $this->mktime(7, 0, 0, 0, 0, 0)), + Range::ofInt(null, static::mktime(7, 0, 0, 0, 0, 0)), Range::ofInt( - $this->mktime(7, 0, 0, 0, 0, 0), - $this->mktime(12, 0, 0, 0, 0, 0) + static::mktime(7, 0, 0, 0, 0, 0), + static::mktime(12, 0, 0, 0, 0, 0) ), - Range::ofInt($this->mktime(12, 0, 0, 0, 0, 0), null), + Range::ofInt(static::mktime(12, 0, 0, 0, 0, 0), null), ] ), new RangeAggregationResult( 'time_term', [ new RangeAggregationResultEntry( - Range::ofInt(null, $this->mktime(7, 0, 0, 0, 0, 0)), + Range::ofInt(null, static::mktime(7, 0, 0, 0, 0, 0)), 2 ), new RangeAggregationResultEntry( Range::ofInt( - $this->mktime(7, 0, 0, 0, 0, 0), - $this->mktime(12, 0, 0, 0, 0, 0) + static::mktime(7, 0, 0, 0, 0, 0), + static::mktime(12, 0, 0, 0, 0, 0) ), 2 ), new RangeAggregationResultEntry( - Range::ofInt($this->mktime(12, 0, 0, 0, 0, 0), null), + Range::ofInt(static::mktime(12, 0, 0, 0, 0, 0), null), 3 ), ] @@ -80,7 +80,7 @@ protected function createFixturesForAggregation(Aggregation $aggregation): void $this->refreshSearch($this->getRepository()); } - private function mktime(int $hour, int $minute, int $second, int $month, int $day, int $year): int + private static function mktime(int $hour, int $minute, int $second, int $month, int $day, int $year): int { $timestamp = mktime($hour, $minute, $second, $month, $day, $year); if ($timestamp === false) { diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php index 0279aaf31f..efb0eaecad 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php @@ -13,7 +13,7 @@ final class LanguageTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new LanguageTermAggregation('language'); @@ -24,7 +24,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getContentLanguageService(), + static::resolveRepository()->getContentLanguageService(), 'loadLanguage', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php index 413e49b56f..be6af61d96 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php @@ -12,12 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Location\LocationChildrenTermAggregation; use Ibexa\Contracts\Core\Repository\Values\Content\Search\AggregationResult; use Ibexa\Tests\Integration\Core\Repository\SearchService\Aggregation\DataSetBuilder\TermAggregationDataSetBuilder; +use PHPUnit\Framework\Attributes\DataProvider; final class LocationChildrenTermAggregationTest extends AbstractAggregationTestCase { - /** - * @dataProvider dataProviderForTestFindContentWithAggregation - */ + #[DataProvider('dataProviderForTestFindContentWithAggregation')] public function testFindContentWithAggregation( Aggregation $aggregation, AggregationResult $expectedResult @@ -25,7 +24,7 @@ public function testFindContentWithAggregation( self::markTestSkipped('LocationChildrenTermAggregation is only available for Location search'); } - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new LocationChildrenTermAggregation('children'); @@ -42,7 +41,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getLocationService(), + static::resolveRepository()->getLocationService(), 'loadLocation', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php index 2fe16a5d38..e836eb73f7 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php @@ -14,7 +14,7 @@ final class ObjectStateTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new ObjectStateTermAggregation('object_state', 'ibexa_lock'); @@ -25,8 +25,8 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper( - function (string $identifier): ObjectState { - $objectStateService = $this->getRepository()->getObjectStateService(); + static function (string $identifier): ObjectState { + $objectStateService = static::resolveRepository()->getObjectStateService(); static $objectStateGroup = null; if ($objectStateGroup === null) { diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php index b516df8349..cdd1b53e95 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php @@ -15,7 +15,7 @@ final class RawRangeAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new RawRangeAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php index 1a0855a433..4310e00fe9 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php @@ -13,7 +13,7 @@ final class RawStatsAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new RawStatsAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php index dde41994ea..64c3c1be76 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php @@ -14,7 +14,7 @@ final class RawTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { yield [ new RawTermAggregation( diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php index f89ddc1cb3..44cc3f5142 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php @@ -13,7 +13,7 @@ final class SectionTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new SectionTermAggregation('section'); @@ -27,7 +27,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getSectionService(), + static::resolveRepository()->getSectionService(), 'loadSectionByIdentifier', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php index bbe865891f..dea7b648ff 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php @@ -13,7 +13,7 @@ final class SubtreeTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new SubtreeTermAggregation('subtree', '/1/5/'); @@ -25,7 +25,7 @@ public function dataProviderForTestFindContentWithAggregation(): iterable ]); $builder->setEntryMapper([ - $this->getRepository()->getLocationService(), + static::resolveRepository()->getLocationService(), 'loadLocation', ]); diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php index 1ace873878..ec8dbf07a1 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php @@ -13,30 +13,30 @@ final class UserMetadataTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { - yield '::OWNER' => $this->createOwnerTermAggregationDataSet(); - yield '::GROUP' => $this->createGroupTermAggregationDataSet(); - yield '::MODIFIER' => $this->createModifierTermAggregationDataSet(); + yield '::OWNER' => self::createOwnerTermAggregationDataSet(); + yield '::GROUP' => self::createGroupTermAggregationDataSet(); + yield '::MODIFIER' => self::createModifierTermAggregationDataSet(); } - public function dataProviderForTestFindLocationWithAggregation(): iterable + public static function dataProviderForTestFindLocationWithAggregation(): iterable { - yield from $this->dataProviderForTestFindContentWithAggregation(); + yield from static::dataProviderForTestFindContentWithAggregation(); } - private function createOwnerTermAggregationDataSet(): array + private static function createOwnerTermAggregationDataSet(): array { $aggregation = new UserMetadataTermAggregation('owner', UserMetadataTermAggregation::OWNER); $builder = new TermAggregationDataSetBuilder($aggregation); $builder->setExpectedEntries(['admin' => 18]); - $builder->setEntryMapper([$this->getRepository()->getUserService(), 'loadUserByLogin']); + $builder->setEntryMapper([static::resolveRepository()->getUserService(), 'loadUserByLogin']); return $builder->build(); } - private function createGroupTermAggregationDataSet(): array + private static function createGroupTermAggregationDataSet(): array { $aggregation = new UserMetadataTermAggregation('user_group', UserMetadataTermAggregation::GROUP); @@ -46,18 +46,18 @@ private function createGroupTermAggregationDataSet(): array 14 => 18, 4 => 18, ]); - $builder->setEntryMapper([$this->getRepository()->getUserService(), 'loadUserGroup']); + $builder->setEntryMapper([static::resolveRepository()->getUserService(), 'loadUserGroup']); return $builder->build(); } - private function createModifierTermAggregationDataSet(): array + private static function createModifierTermAggregationDataSet(): array { $aggregation = new UserMetadataTermAggregation('modifier', UserMetadataTermAggregation::MODIFIER); $builder = new TermAggregationDataSetBuilder($aggregation); $builder->setExpectedEntries(['admin' => 18]); - $builder->setEntryMapper([$this->getRepository()->getUserService(), 'loadUserByLogin']); + $builder->setEntryMapper([static::resolveRepository()->getUserService(), 'loadUserByLogin']); return $builder->build(); } diff --git a/tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php b/tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php index 72681f505d..1761531f29 100644 --- a/tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php +++ b/tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php @@ -13,7 +13,7 @@ final class VisibilityTermAggregationTest extends AbstractAggregationTestCase { - public function dataProviderForTestFindContentWithAggregation(): iterable + public static function dataProviderForTestFindContentWithAggregation(): iterable { $aggregation = new VisibilityTermAggregation('visibility'); diff --git a/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php b/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php index 404c51d68e..eb37b9dcb3 100644 --- a/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php +++ b/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Integration\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -16,15 +17,15 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; /** * Test case for delete content translation with the SearchService. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService - * - * @group integration - * @group search */ +#[CoversClass(SearchService::class)] +#[Group('integration')] +#[Group('search')] final class DeleteTranslationTest extends BaseTestCase { /** diff --git a/tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php b/tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php index d60f3b1468..55e18c4953 100644 --- a/tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php +++ b/tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class RemoteIdIndexingTest extends BaseTestCase { @@ -39,10 +40,9 @@ protected function setUp(): void } /** - * @dataProvider providerForTestIndexingRemoteId - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException */ + #[DataProvider('providerForTestIndexingRemoteId')] public function testIndexingRemoteId(Criterion $criterion): void { $repository = $this->getRepository(false); @@ -77,7 +77,7 @@ public function testIndexingRemoteId(Criterion $criterion): void self::assertSame($contentId, $result->searchHits[0]->valueObject->contentInfo->id); } - private function getRemoteIDs(): array + private static function getRemoteIDs(): array { return [ 'md5sum' => 'dec23f2de27399a4c0561187b805aa74', @@ -94,9 +94,9 @@ private function getRemoteIDs(): array * * @return iterable */ - public function providerForTestIndexingRemoteId(): iterable + public static function providerForTestIndexingRemoteId(): iterable { - foreach ($this->getRemoteIDs() as $description => $remoteId) { + foreach (static::getRemoteIDs() as $description => $remoteId) { yield "Content remote ID = {$description}" => [new Criterion\RemoteId($remoteId)]; yield "Location remote ID = {$description}" => [new Criterion\LocationRemoteId($remoteId)]; } diff --git a/tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php b/tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php index 16493dc0e9..04a3fe1a25 100644 --- a/tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php +++ b/tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php @@ -13,6 +13,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; +use PHPUnit\Framework\Attributes\DataProvider; final class ContentTranslatedNameTest extends AbstractSortClauseTestCase { @@ -29,9 +30,8 @@ protected function setUp(): void * @param string[] $values * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception - * - * @dataProvider dataProviderForTestSortingByContentTranslatedName */ + #[DataProvider('dataProviderForTestSortingByContentTranslatedName')] public function testContentSortingByContentTranslatedName( iterable $inputValues, SortClause $sortClause, @@ -58,9 +58,8 @@ public function testContentSortingByContentTranslatedName( * @param string[] $values * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception - * - * @dataProvider dataProviderForTestSortingByContentTranslatedName */ + #[DataProvider('dataProviderForTestSortingByContentTranslatedName')] public function testLocationSortingByContentTranslatedName( iterable $inputValues, SortClause $sortClause, @@ -83,7 +82,7 @@ public function testLocationSortingByContentTranslatedName( $this->assertSearchResultOrderByRemoteId($expectedOrderedRemoteIds, $actualResults); } - public function dataProviderForTestSortingByContentTranslatedName(): iterable + public static function dataProviderForTestSortingByContentTranslatedName(): iterable { $inputValues = [ 'foo' => [ diff --git a/tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php b/tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php index ff22fb7dfc..fda70313ab 100644 --- a/tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php +++ b/tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php @@ -13,6 +13,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; +use PHPUnit\Framework\Attributes\DataProvider; final class ScoreTest extends AbstractSortClauseTestCase { @@ -30,9 +31,8 @@ protected function setUp(): void * @param string[] $values * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception - * - * @dataProvider dataProviderForTestSortingByScore */ + #[DataProvider('dataProviderForTestSortingByScore')] public function testSortingByScore(iterable $inputValues, Query $query, array $expectedOrderedIds): void { $this->createContentForScoreSortTesting($inputValues); @@ -47,7 +47,7 @@ public function testSortingByScore(iterable $inputValues, Query $query, array $e $this->assertSearchResultOrderByRemoteId($expectedOrderedIds, $actualResults); } - public function dataProviderForTestSortingByScore(): iterable + public static function dataProviderForTestSortingByScore(): iterable { // The following input values for test content guarantee predictable scoring $inputValues = ['foo foo', 'foo', 'foo foo foo']; diff --git a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php index b6df7f6314..872af11d08 100644 --- a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php @@ -7,30 +7,33 @@ namespace Ibexa\Tests\Integration\Core\Repository; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Core\Repository\Values\Content\Content; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the SearchService. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser - * - * @group integration - * @group authorization */ +#[CoversClass(SearchService::class)] +#[CoversMethod(SearchService::class, 'findContent()')] +#[CoversMethod(SearchService::class, 'findSingle()')] +#[CoversMethod(ContentService::class, 'findContent($query, $languageFilter, $filterOnUserPermissions)')] +#[CoversMethod(ContentService::class, 'findSingle($query, $languageFilter, $filterOnUserPermissions)')] +#[Group('integration')] +#[Group('authorization')] class SearchServiceAuthorizationTest extends BaseTestCase { /** * Test for the findContent() method but with anonymous user. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceTest::testFindContentFiltered */ + #[DependsExternal(SearchServiceTest::class, 'testFindContentFiltered')] public function testFindContent() { $repository = $this->getRepository(); @@ -57,11 +60,8 @@ public function testFindContent() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceTest::testFindContentFiltered */ + #[DependsExternal(SearchServiceTest::class, 'testFindContentFiltered')] public function testFindContentEmptyResult() { $repository = $this->getRepository(); @@ -91,11 +91,8 @@ public function testFindContentEmptyResult() /** * Test for the findSingle() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findSingle() - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceTest::testFindSingle */ + #[DependsExternal(SearchServiceTest::class, 'testFindSingle')] public function testFindSingleThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -124,11 +121,8 @@ public function testFindSingleThrowsNotFoundException() /** * Test for the findContent() method, verifying disabling permissions. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::findContent($query, $languageFilter, $filterOnUserPermissions) - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceAuthorizationTest::testFindContent */ + #[DependsExternal(self::class, 'testFindContent')] public function testFindContentWithUserPermissionFilter() { $repository = $this->getRepository(); @@ -163,11 +157,8 @@ public function testFindContentWithUserPermissionFilter() /** * Test for the findSingle() method disabling permission filtering. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::findSingle($query, $languageFilter, $filterOnUserPermissions) - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceAuthorizationTest::testFindContent */ + #[DependsExternal(self::class, 'testFindContent')] public function testFindSingleWithUserPermissionFilter() { $repository = $this->getRepository(); @@ -195,11 +186,8 @@ public function testFindSingleWithUserPermissionFilter() /** * Test for the findSingle() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::findSingle($query, $languageFilter, $filterOnUserPermissions) - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceAuthorizationTest::testFindContent */ + #[DependsExternal(self::class, 'testFindContent')] public function testFindSingleThrowsNotFoundExceptionWithUserPermissionFilter() { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/SearchServiceBookmarkTest.php b/tests/integration/Core/Repository/SearchServiceBookmarkTest.php index 89e00fe605..44d78391b8 100644 --- a/tests/integration/Core/Repository/SearchServiceBookmarkTest.php +++ b/tests/integration/Core/Repository/SearchServiceBookmarkTest.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchHit; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Tests\Integration\Core\RepositorySearchTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class SearchServiceBookmarkTest extends RepositorySearchTestCase { @@ -55,11 +56,10 @@ protected function setUp(): void } /** - * @dataProvider provideDataForTestCriterion - * * @param array<\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion> $criteria * @param array $remoteIds */ + #[DataProvider('provideDataForTestCriterion')] public function testCriterion( int $expectedCount, array $criteria, @@ -76,7 +76,7 @@ public function testCriterion( * array<\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion> * }> */ - public function provideDataForTestCriterion(): iterable + public static function provideDataForTestCriterion(): iterable { yield 'All bookmarked locations' => [ self::ALL_BOOKMARKED_LOCATIONS, diff --git a/tests/integration/Core/Repository/SearchServiceContentNameTest.php b/tests/integration/Core/Repository/SearchServiceContentNameTest.php index 3b781ee59a..879671bd49 100644 --- a/tests/integration/Core/Repository/SearchServiceContentNameTest.php +++ b/tests/integration/Core/Repository/SearchServiceContentNameTest.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\FieldType\TextLine\Value; use Ibexa\Tests\Integration\Core\RepositorySearchTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class SearchServiceContentNameTest extends RepositorySearchTestCase { @@ -80,13 +81,12 @@ public function testCriterionFindAllContentItems(): void } /** - * @dataProvider provideDataForTestCriterion - * * @param array $expectedContentItemTitles * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidCriterionArgumentException */ + #[DataProvider('provideDataForTestCriterion')] public function testCriterion( Criterion $criterion, ?string $languageCode, @@ -127,17 +127,17 @@ static function (SearchHit $searchHit) use ($languageCode): ?string { * int, * }> */ - public function provideDataForTestCriterion(): iterable + public static function provideDataForTestCriterion(): iterable { yield 'Content items not found' => [ - $this->createContentNameCriterion('foo'), + static::createContentNameCriterion('foo'), self::LANGUAGE_CODE_ENG, [], 0, ]; yield 'Return content items in default language (English) that contain "car" in name' => [ - $this->createContentNameCriterion('*car*'), + static::createContentNameCriterion('*car*'), null, [ self::CAR_ENG, @@ -147,7 +147,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in default language (English) whose name starts with "car"' => [ - $this->createContentNameCriterion('Car*'), + static::createContentNameCriterion('Car*'), null, [ self::CAR_ENG, @@ -156,7 +156,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in English that contain "Spo*t*" in name' => [ - $this->createContentNameCriterion('Spo*t*'), + static::createContentNameCriterion('Spo*t*'), self::LANGUAGE_CODE_ENG, [ self::SPORTS_CAR_ENG, @@ -165,7 +165,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in English with name "sports car"' => [ - $this->createContentNameCriterion('sports car'), + static::createContentNameCriterion('sports car'), self::LANGUAGE_CODE_ENG, [ self::SPORTS_CAR_ENG, @@ -174,7 +174,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in English that contain "**ruc*" in name' => [ - $this->createContentNameCriterion('**ruc*'), + static::createContentNameCriterion('**ruc*'), self::LANGUAGE_CODE_ENG, [ self::TRUCK_ENG, @@ -183,7 +183,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in German that contain "aut*" in name' => [ - $this->createContentNameCriterion('aut*'), + static::createContentNameCriterion('aut*'), self::LANGUAGE_CODE_GER, [ self::CAR_GER, @@ -192,7 +192,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content items in German that contain "*wagen" in name' => [ - $this->createContentNameCriterion('*wagen'), + static::createContentNameCriterion('*wagen'), self::LANGUAGE_CODE_GER, [ self::SPORTS_CAR_GER, @@ -202,7 +202,7 @@ public function provideDataForTestCriterion(): iterable ]; yield 'Return content item in German with name "lastwagen"' => [ - $this->createContentNameCriterion('lastwagen'), + static::createContentNameCriterion('lastwagen'), self::LANGUAGE_CODE_GER, [ self::TRUCK_GER, @@ -269,7 +269,7 @@ private function loadContentType(string $contentTypeIdentifier): ContentType ->loadContentTypeByIdentifier($contentTypeIdentifier); } - private function createContentNameCriterion(string $value): Criterion + private static function createContentNameCriterion(string $value): Criterion { return new Criterion\ContentName($value); } diff --git a/tests/integration/Core/Repository/SearchServiceFulltextTest.php b/tests/integration/Core/Repository/SearchServiceFulltextTest.php index a1f36d0f81..f7d213ef11 100644 --- a/tests/integration/Core/Repository/SearchServiceFulltextTest.php +++ b/tests/integration/Core/Repository/SearchServiceFulltextTest.php @@ -15,17 +15,19 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; use RuntimeException; /** * Test case for full text search in the SearchService. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService - * - * @group integration - * @group search - * @group fulltext */ +#[CoversClass(SearchService::class)] +#[Group('integration')] +#[Group('search')] +#[Group('fulltext')] class SearchServiceFulltextTest extends BaseTestCase { protected function setUp(): void @@ -100,7 +102,7 @@ public function testPrepareContent() * * @see testPrepareContent */ - public function providerForTestFulltextSearchSolr7(): array + public static function providerForTestFulltextSearchSolr7(): array { return [ [ @@ -180,11 +182,9 @@ public function providerForTestFulltextSearchSolr7(): array * @param string $searchString * @param array $expectedKeys * @param array $idMap - * - * @depends testPrepareContent - * - * @dataProvider providerForTestFulltextSearchSolr7 */ + #[Depends('testPrepareContent')] + #[DataProvider('providerForTestFulltextSearchSolr7')] public function testFulltextContentSearchSolr7(string $searchString, array $expectedKeys, array $idMap): void { if (false === $this->isSolrMajorVersionInRange('7.0.0', '8.0.0')) { @@ -211,11 +211,9 @@ private function doTestFulltextContentSearch(string $searchString, array $expect * @param $searchString * @param array $expectedKeys * @param array $idMap - * - * @depends testPrepareContent - * - * @dataProvider providerForTestFulltextSearchSolr7 */ + #[Depends('testPrepareContent')] + #[DataProvider('providerForTestFulltextSearchSolr7')] public function testFulltextLocationSearchSolr7($searchString, array $expectedKeys, array $idMap): void { if (false === $this->isSolrMajorVersionInRange('7.0.0', '8.0.0')) { diff --git a/tests/integration/Core/Repository/SearchServiceImageTest.php b/tests/integration/Core/Repository/SearchServiceImageTest.php index a18344c23e..bede017ec5 100644 --- a/tests/integration/Core/Repository/SearchServiceImageTest.php +++ b/tests/integration/Core/Repository/SearchServiceImageTest.php @@ -16,6 +16,7 @@ use Ibexa\Core\FieldType\Image\Value as ImageValue; use Ibexa\Core\FieldType\TextLine\Value as TextValue; use Ibexa\Tests\Integration\Core\RepositorySearchTestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class SearchServiceImageTest extends RepositorySearchTestCase { @@ -38,10 +39,8 @@ protected function setUp(): void $this->refreshSearch(); } - /** - * @dataProvider provideDataForTestCriterion - * @dataProvider provideInvalidDataForTestCriterion - */ + #[DataProvider('provideDataForTestCriterion')] + #[DataProvider('provideInvalidDataForTestCriterion')] public function testCriterion( int $expectedCount, Query\Criterion $imageCriterion @@ -72,11 +71,11 @@ public function testCriterion( * \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion * }> */ - public function provideDataForTestCriterion(): iterable + public static function provideDataForTestCriterion(): iterable { yield 'Dimensions' => [ 3, - $this->createDimensionsCriterion( + static::createDimensionsCriterion( 0, 100, 0, @@ -86,57 +85,57 @@ public function provideDataForTestCriterion(): iterable yield 'FileSize - with numeric values from 0 to 1' => [ 3, - $this->createFileSizeCriterion(0, 1), + static::createFileSizeCriterion(0, 1), ]; yield 'FileSize - with numeric string values from 0.0 to 2.5' => [ 3, - $this->createFileSizeCriterion('0.0', '2.5'), + static::createFileSizeCriterion('0.0', '2.5'), ]; yield 'FileSize - with numeric values from 0.0 to 2.5' => [ 3, - $this->createFileSizeCriterion(0.0, 2.5), + static::createFileSizeCriterion(0.0, 2.5), ]; yield 'FileSize - with numeric values 0.0001 to 0.004' => [ 2, - $this->createFileSizeCriterion(0.001, 0.004), + static::createFileSizeCriterion(0.001, 0.004), ]; yield 'FileSize - with values numeric string 0.0003 and numeric 0.3' => [ 1, - $this->createFileSizeCriterion('0.003', 0.3), + static::createFileSizeCriterion('0.003', 0.3), ]; yield 'FileSize - min value' => [ 2, - $this->createFileSizeCriterion('0.0002'), + static::createFileSizeCriterion('0.0002'), ]; yield 'FileSize - max value' => [ 1, - $this->createFileSizeCriterion(null, '0.0003'), + static::createFileSizeCriterion(null, '0.0003'), ]; yield 'Width' => [ 3, - $this->createWidthCriterion(0, 100), + static::createWidthCriterion(0, 100), ]; yield 'Height' => [ 3, - $this->createHeightCriterion(0, 100), + static::createHeightCriterion(0, 100), ]; yield 'MimeType - single' => [ 2, - $this->createMimeTypeCriterion('image/jpeg'), + static::createMimeTypeCriterion('image/jpeg'), ]; yield 'MimeType - multiple' => [ 3, - $this->createMimeTypeCriterion( + static::createMimeTypeCriterion( [ 'image/jpeg', 'image/png', @@ -146,22 +145,22 @@ public function provideDataForTestCriterion(): iterable yield 'Orientation - landscape' => [ 1, - $this->createOrientationCriterion(Orientation::LANDSCAPE), + static::createOrientationCriterion(Orientation::LANDSCAPE), ]; yield 'Orientation - portrait' => [ 1, - $this->createOrientationCriterion(Orientation::PORTRAIT), + static::createOrientationCriterion(Orientation::PORTRAIT), ]; yield 'Orientation - square' => [ 1, - $this->createOrientationCriterion(Orientation::SQUARE), + static::createOrientationCriterion(Orientation::SQUARE), ]; yield 'Orientation - multiple' => [ 3, - $this->createOrientationCriterion( + static::createOrientationCriterion( [ Orientation::LANDSCAPE, Orientation::PORTRAIT, @@ -206,11 +205,11 @@ public function provideDataForTestCriterion(): iterable * \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion * }> */ - public function provideInvalidDataForTestCriterion(): iterable + public static function provideInvalidDataForTestCriterion(): iterable { yield 'Dimensions - width and height values too large' => [ 0, - $this->createDimensionsCriterion( + static::createDimensionsCriterion( 101, 200, 101, @@ -220,7 +219,7 @@ public function provideInvalidDataForTestCriterion(): iterable yield 'FileSize - size value too large' => [ 0, - $this->createFileSizeCriterion( + static::createFileSizeCriterion( 1, 2 ), @@ -228,22 +227,22 @@ public function provideInvalidDataForTestCriterion(): iterable yield 'Width - width value to large' => [ 0, - $this->createWidthCriterion(101, 200), + static::createWidthCriterion(101, 200), ]; yield 'Height - height value to large' => [ 0, - $this->createHeightCriterion(101, 300), + static::createHeightCriterion(101, 300), ]; yield 'MimeType - invalid single mime type' => [ 0, - $this->createMimeTypeCriterion('image/invalid'), + static::createMimeTypeCriterion('image/invalid'), ]; yield 'MimeType - invalid multiple mime types' => [ 0, - $this->createMimeTypeCriterion( + static::createMimeTypeCriterion( [ 'image/invalid', 'image/gif', @@ -255,7 +254,7 @@ public function provideInvalidDataForTestCriterion(): iterable /** * @param string|array $value */ - private function createMimeTypeCriterion($value): Query\Criterion\Image\MimeType + private static function createMimeTypeCriterion($value): Query\Criterion\Image\MimeType { return new Query\Criterion\Image\MimeType( self::IMAGE_FIELD_DEF_IDENTIFIER, @@ -267,7 +266,7 @@ private function createMimeTypeCriterion($value): Query\Criterion\Image\MimeType * @param numeric|null $min * @param numeric|null $max */ - private function createFileSizeCriterion( + private static function createFileSizeCriterion( $min = 0, $max = null ): Query\Criterion\Image\FileSize { @@ -278,7 +277,7 @@ private function createFileSizeCriterion( ); } - private function createWidthCriterion( + private static function createWidthCriterion( int $min = 0, ?int $max = null ): Query\Criterion\Image\Width { @@ -289,7 +288,7 @@ private function createWidthCriterion( ); } - private function createHeightCriterion( + private static function createHeightCriterion( int $min = 0, ?int $max = null ): Query\Criterion\Image\Height { @@ -300,7 +299,7 @@ private function createHeightCriterion( ); } - private function createDimensionsCriterion( + private static function createDimensionsCriterion( int $minWidth, int $maxWidth, int $minHeight, @@ -324,7 +323,7 @@ private function createDimensionsCriterion( /** * @param string|array $value */ - private function createOrientationCriterion($value): Query\Criterion\Image\Orientation + private static function createOrientationCriterion($value): Query\Criterion\Image\Orientation { return new Query\Criterion\Image\Orientation( self::IMAGE_FIELD_DEF_IDENTIFIER, diff --git a/tests/integration/Core/Repository/SearchServiceLocationTest.php b/tests/integration/Core/Repository/SearchServiceLocationTest.php index 93a52411d5..d3de03a4f5 100644 --- a/tests/integration/Core/Repository/SearchServiceLocationTest.php +++ b/tests/integration/Core/Repository/SearchServiceLocationTest.php @@ -9,6 +9,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -18,15 +19,19 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for Location operations in the SearchService. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService - * - * @group integration - * @group search */ +#[CoversClass(SearchService::class)] +#[CoversMethod(SearchService::class, 'findLocations()')] +#[CoversMethod(SearchService::class, 'findLocations')] +#[Group('integration')] +#[Group('search')] class SearchServiceLocationTest extends BaseTestCase { public const QUERY_CLASS = LocationQuery::class; @@ -190,8 +195,6 @@ protected function createFolderWithNonPrintableUtf8Characters(): Content /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testFieldIsEmptyInLocation() { @@ -223,8 +226,6 @@ public function testFieldIsEmptyInLocation() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testFieldIsNotEmptyInLocation() { @@ -253,8 +254,6 @@ public function testFieldIsNotEmptyInLocation() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testFieldCollectionContains() { @@ -283,11 +282,8 @@ public function testFieldCollectionContains() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @depends Ibexa\Tests\Integration\Core\Repository\SearchServiceTest::testFieldCollectionContains */ + #[DependsExternal(SearchServiceTest::class, 'testFieldCollectionContains')] public function testFieldCollectionContainsNoMatch() { $this->createMultipleCountriesContent(); @@ -309,8 +305,6 @@ public function testFieldCollectionContainsNoMatch() } /** - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -340,8 +334,6 @@ public function testNonPrintableUtf8Characters(): void } /** - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations - * * @throws \ErrorException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -453,8 +445,6 @@ static function (SearchHit $searchHit) { /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testQueryCustomField() { @@ -484,8 +474,6 @@ public function testQueryCustomField() * This tests explicitly queries the first_name while user is contained in * the last_name of admin and anonymous. This is done to show the custom * copy field working. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testQueryModifiedField() { @@ -553,11 +541,8 @@ protected function createTestPlaceContentType() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceLessThanOrEqual() { $contentType = $this->createTestPlaceContentType(); @@ -635,11 +620,8 @@ public function testMapLocationDistanceLessThanOrEqual() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceGreaterThanOrEqual() { $contentType = $this->createTestPlaceContentType(); @@ -717,11 +699,8 @@ public function testMapLocationDistanceGreaterThanOrEqual() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceBetween() { $contentType = $this->createTestPlaceContentType(); @@ -815,11 +794,8 @@ public function testMapLocationDistanceBetween() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceSortAscending() { $contentType = $this->createTestPlaceContentType(); @@ -934,11 +910,8 @@ public function testMapLocationDistanceSortAscending() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceSortDescending() { $contentType = $this->createTestPlaceContentType(); @@ -1053,11 +1026,8 @@ public function testMapLocationDistanceSortDescending() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceWithCustomField() { $contentType = $this->createTestPlaceContentType(); @@ -1138,11 +1108,8 @@ public function testMapLocationDistanceWithCustomField() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceWithCustomFieldSort() { $contentType = $this->createTestPlaceContentType(); @@ -1260,8 +1227,6 @@ public function testMapLocationDistanceWithCustomFieldSort() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testVisibilityCriterionWithHiddenContent() { diff --git a/tests/integration/Core/Repository/SearchServiceManyLanguagesTest.php b/tests/integration/Core/Repository/SearchServiceManyLanguagesTest.php index ee7a564612..39c84465b0 100644 --- a/tests/integration/Core/Repository/SearchServiceManyLanguagesTest.php +++ b/tests/integration/Core/Repository/SearchServiceManyLanguagesTest.php @@ -11,11 +11,10 @@ use Exception; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use PHPUnit\Framework\Attributes\Group; -/** - * @group integration - * @group search - */ +#[Group('integration')] +#[Group('search')] final class SearchServiceManyLanguagesTest extends BaseTestCase { public function testFindContentWithManyLanguages(): void diff --git a/tests/integration/Core/Repository/SearchServiceTest.php b/tests/integration/Core/Repository/SearchServiceTest.php index 40f7d551ed..619f56cf10 100644 --- a/tests/integration/Core/Repository/SearchServiceTest.php +++ b/tests/integration/Core/Repository/SearchServiceTest.php @@ -23,17 +23,24 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; use ReflectionProperty; use RuntimeException; /** * Test case for operations in the SearchService. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService - * - * @group integration - * @group search */ +#[CoversClass(SearchService::class)] +#[CoversMethod(SearchService::class, 'findContent()')] +#[CoversMethod(SearchService::class, 'findContentInfo()')] +#[CoversMethod(SearchService::class, 'findLocations()')] +#[CoversMethod(SearchService::class, 'findContent')] +#[Group('integration')] +#[Group('search')] class SearchServiceTest extends BaseTestCase { public const QUERY_CLASS = Query::class; @@ -46,9 +53,9 @@ class SearchServiceTest extends BaseTestCase self::FIND_LOCATION_METHOD, ]; - public function getFilterContentSearches() + public static function getFilterContentSearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); return [ 0 => [ @@ -611,9 +618,9 @@ static function ($a, $b): int { ]; } - public function getContentQuerySearches() + public static function getContentQuerySearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); return [ [ @@ -846,9 +853,9 @@ public function getContentQuerySearches() ]; } - public function getLocationQuerySearches() + public static function getLocationQuerySearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); return [ [ @@ -918,11 +925,8 @@ public function getLocationQuerySearches() /** * Test for the findContent() method. - * - * @dataProvider getFilterContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ + #[DataProvider('getFilterContentSearches')] public function testFindContentFiltered($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -931,11 +935,8 @@ public function testFindContentFiltered($queryData, $fixture, $closure = null) /** * Test for the findContentInfo() method. - * - * @dataProvider getFilterContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContentInfo() */ + #[DataProvider('getFilterContentSearches')] public function testFindContentInfoFiltered($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -944,11 +945,8 @@ public function testFindContentInfoFiltered($queryData, $fixture, $closure = nul /** * Test for the findLocations() method. - * - * @dataProvider getFilterContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getFilterContentSearches')] public function testFindLocationsContentFiltered($queryData, $fixture, $closure = null) { $query = new LocationQuery($queryData); @@ -957,11 +955,8 @@ public function testFindLocationsContentFiltered($queryData, $fixture, $closure /** * Test for the findContent() method. - * - * @dataProvider getContentQuerySearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ + #[DataProvider('getContentQuerySearches')] public function testQueryContent($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -970,11 +965,8 @@ public function testQueryContent($queryData, $fixture, $closure = null) /** * Test for the findContentInfo() method. - * - * @dataProvider getContentQuerySearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ + #[DataProvider('getContentQuerySearches')] public function testQueryContentInfo($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -983,11 +975,8 @@ public function testQueryContentInfo($queryData, $fixture, $closure = null) /** * Test for the findLocations() method. - * - * @dataProvider getContentQuerySearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getContentQuerySearches')] public function testQueryContentLocations($queryData, $fixture, $closure = null) { $query = new LocationQuery($queryData); @@ -996,18 +985,15 @@ public function testQueryContentLocations($queryData, $fixture, $closure = null) /** * Test for the findLocations() method. - * - * @dataProvider getLocationQuerySearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getLocationQuerySearches')] public function testQueryLocations($queryData, $fixture, $closure = null) { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); } - public function getCaseInsensitiveSearches() + public static function getCaseInsensitiveSearches() { return [ [ @@ -1045,11 +1031,8 @@ public function getCaseInsensitiveSearches() /** * Test for the findContent() method. - * - * @dataProvider getCaseInsensitiveSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ + #[DataProvider('getCaseInsensitiveSearches')] public function testFindContentFieldFiltersCaseSensitivity($queryData) { $query = new Query($queryData); @@ -1061,11 +1044,8 @@ public function testFindContentFieldFiltersCaseSensitivity($queryData) /** * Test for the findLocations() method. - * - * @dataProvider getCaseInsensitiveSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getCaseInsensitiveSearches')] public function testFindLocationsFieldFiltersCaseSensitivity($queryData) { $query = new LocationQuery($queryData); @@ -1075,9 +1055,9 @@ public function testFindLocationsFieldFiltersCaseSensitivity($queryData) ); } - public function getRelationFieldFilterSearches() + public static function getRelationFieldFilterSearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); return [ 0 => [ @@ -1179,13 +1159,9 @@ public function testRelationContentCreation() /** * Test for FieldRelation using findContentInfo() method. - * - * @dataProvider getRelationFieldFilterSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContentInfo() - * - * @depends testRelationContentCreation */ + #[Depends('testRelationContentCreation')] + #[DataProvider('getRelationFieldFilterSearches')] public function testFindRelationFieldContentInfoFiltered($queryData, $fixture) { $this->getRepository(false); // To make sure repo is setup w/o removing data from getRelationFieldFilterContentSearches @@ -1195,13 +1171,9 @@ public function testFindRelationFieldContentInfoFiltered($queryData, $fixture) /** * Test for FieldRelation using findLocations() method. - * - * @dataProvider getRelationFieldFilterSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @depends testRelationContentCreation */ + #[Depends('testRelationContentCreation')] + #[DataProvider('getRelationFieldFilterSearches')] public function testFindRelationFieldLocationsFiltered($queryData, $fixture) { $this->getRepository(false); // To make sure repo is setup w/o removing data from getRelationFieldFilterContentSearches @@ -1445,8 +1417,6 @@ protected function createMultipleCountriesContent() * Test for the findContent() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\Content[] - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFieldIsEmpty() { @@ -1478,8 +1448,6 @@ public function testFieldIsEmpty() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFieldIsNotEmpty() { @@ -1507,8 +1475,6 @@ public function testFieldIsNotEmpty() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFieldCollectionContains() { @@ -1537,11 +1503,8 @@ public function testFieldCollectionContains() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @depends testFieldCollectionContains */ + #[Depends('testFieldCollectionContains')] public function testFieldCollectionContainsNoMatch() { $this->createMultipleCountriesContent(); @@ -1699,9 +1662,9 @@ public function testFindSingleWithNonSearchableField() ); } - public function getSortedContentSearches() + public static function getSortedContentSearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); yield [ [ @@ -1854,7 +1817,7 @@ static function (SearchHit $a, SearchHit $b): int { $fixtureDir . 'SortFieldMultipleTypesSliceReverse.php', ]; - if (!$this->isLegacySearchEngineSetup()) { + if (!static::isLegacySearchEngineSetup()) { yield [ [ 'filter' => new Criterion\ContentTypeId(1), @@ -1870,9 +1833,9 @@ static function (SearchHit $a, SearchHit $b): int { } } - public function getSortedLocationSearches() + public static function getSortedLocationSearches() { - $fixtureDir = $this->getFixtureDir(); + $fixtureDir = static::getFixtureDir(); return [ [ @@ -2024,7 +1987,7 @@ protected function createMultilingualContent( return $content; } - public function providerForTestMultilingualFieldSort() + public static function providerForTestMultilingualFieldSort() { return [ 0 => [ @@ -2333,15 +2296,15 @@ public function providerForTestMultilingualFieldSort() /** * Test for the findContent() method. * - * @group rrr * - * @dataProvider providerForTestMultilingualFieldSort * * @param array $contentDataList * @param array $languageSettings * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause[] $sortClauses * @param array $expected */ + #[Group('rrr')] + #[DataProvider('providerForTestMultilingualFieldSort')] public function testMultilingualFieldSortContent( array $contentDataList, $languageSettings, @@ -2359,15 +2322,15 @@ public function testMultilingualFieldSortContent( /** * Test for the findLocations() method. * - * @group rrr * - * @dataProvider providerForTestMultilingualFieldSort * * @param array $contentDataList * @param array $languageSettings * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause[] $sortClauses * @param array $expected */ + #[Group('rrr')] + #[DataProvider('providerForTestMultilingualFieldSort')] public function testMultilingualFieldSortLocation( array $contentDataList, $languageSettings, @@ -2461,7 +2424,7 @@ protected function assertMultilingualFieldSort( self::assertEquals($expectedIdList, $this->mapResultContentIds($result)); } - public function providerForTestMultilingualFieldFilter() + public static function providerForTestMultilingualFieldFilter() { return [ 0 => [ @@ -2623,15 +2586,15 @@ public function providerForTestMultilingualFieldFilter() /** * Test for the findContent() method. * - * @group ttt * - * @dataProvider providerForTestMultilingualFieldFilter * * @param array $contentDataList * @param array $languageSettings * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param array $expected */ + #[Group('ttt')] + #[DataProvider('providerForTestMultilingualFieldFilter')] public function testMultilingualFieldFilterContent( array $contentDataList, $languageSettings, @@ -2649,15 +2612,15 @@ public function testMultilingualFieldFilterContent( /** * Test for the findLocations() method. * - * @group ttt * - * @dataProvider providerForTestMultilingualFieldFilter * * @param array $contentDataList * @param array $languageSettings * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion $criterion * @param array $expected */ + #[Group('ttt')] + #[DataProvider('providerForTestMultilingualFieldFilter')] public function testMultilingualFieldFilterLocation( array $contentDataList, $languageSettings, @@ -2777,11 +2740,8 @@ static function (SearchHit $searchHit) { /** * Test for the findContent() method. - * - * @dataProvider getSortedContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ + #[DataProvider('getSortedContentSearches')] public function testFindAndSortContent($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -2790,11 +2750,8 @@ public function testFindAndSortContent($queryData, $fixture, $closure = null) /** * Test for the findContentInfo() method. - * - * @dataProvider getSortedContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContentInfo() */ + #[DataProvider('getSortedContentSearches')] public function testFindAndSortContentInfo($queryData, $fixture, $closure = null) { $query = new Query($queryData); @@ -2803,11 +2760,8 @@ public function testFindAndSortContentInfo($queryData, $fixture, $closure = null /** * Test for the findLocations() method. - * - * @dataProvider getSortedContentSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getSortedContentSearches')] public function testFindAndSortContentLocations($queryData, $fixture, $closure = null) { $query = new LocationQuery($queryData); @@ -2816,11 +2770,8 @@ public function testFindAndSortContentLocations($queryData, $fixture, $closure = /** * Test for the findLocations() method. - * - * @dataProvider getSortedLocationSearches - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ + #[DataProvider('getSortedLocationSearches')] public function testFindAndSortLocations($queryData, $fixture, $closure = null) { $query = new LocationQuery($queryData); @@ -2829,8 +2780,6 @@ public function testFindAndSortLocations($queryData, $fixture, $closure = null) /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testQueryCustomField() { @@ -2858,8 +2807,6 @@ public function testQueryCustomField() * This tests explicitely queries the first_name while user is contained in * the last_name of admin and anonymous. This is done to show the custom * copy field working. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testQueryModifiedField() { @@ -2899,8 +2846,6 @@ public function testQueryModifiedField() * for all Content instances of 'folder' ContentType. Custom sort field is then set * to the index storage name of folder's 'name' field, in order to show the custom * sort field working. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testSortModifiedField() { @@ -2966,11 +2911,8 @@ protected function createTestPlaceContentType() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceLessThanOrEqual() { $contentType = $this->createTestPlaceContentType(); @@ -3047,11 +2989,8 @@ public function testMapLocationDistanceLessThanOrEqual() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceGreaterThanOrEqual() { $contentType = $this->createTestPlaceContentType(); @@ -3128,11 +3067,8 @@ public function testMapLocationDistanceGreaterThanOrEqual() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceBetween() { $contentType = $this->createTestPlaceContentType(); @@ -3233,11 +3169,8 @@ public function testMapLocationDistanceBetween() * * Range between 222km and 350km shows the magnitude of error between great-circle * (always very precise) and flat Earth (very imprecise for this use case) models. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceBetweenPolar() { $contentType = $this->createTestPlaceContentType(); @@ -3298,11 +3231,8 @@ public function testMapLocationDistanceBetweenPolar() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceSortAscending() { $contentType = $this->createTestPlaceContentType(); @@ -3416,11 +3346,8 @@ public function testMapLocationDistanceSortAscending() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceSortDescending() { $contentType = $this->createTestPlaceContentType(); @@ -3534,11 +3461,8 @@ public function testMapLocationDistanceSortDescending() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceWithCustomField() { $contentType = $this->createTestPlaceContentType(); @@ -3618,11 +3542,8 @@ public function testMapLocationDistanceWithCustomField() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @group maplocation */ + #[Group('maplocation')] public function testMapLocationDistanceWithCustomFieldSort() { $contentType = $this->createTestPlaceContentType(); @@ -3739,8 +3660,6 @@ public function testMapLocationDistanceWithCustomFieldSort() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testFindMainLocation() { @@ -3784,8 +3703,6 @@ public function testFindMainLocation() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testFindNonMainLocation() { @@ -3828,8 +3745,6 @@ public function testFindNonMainLocation() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testSortMainLocationAscending() { @@ -3871,8 +3786,6 @@ public function testSortMainLocationAscending() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testSortMainLocationDescending() { @@ -3914,8 +3827,6 @@ public function testSortMainLocationDescending() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testContentWithMultipleLocations() { @@ -4017,8 +3928,6 @@ protected function createContentForTestUserMetadataGroupHorizontal() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testUserMetadataGroupHorizontalFilterContent(?string $queryType = null) { @@ -4096,8 +4005,6 @@ public function testUserMetadataGroupHorizontalFilterContent(?string $queryType /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testUserMetadataGroupHorizontalQueryContent() { @@ -4106,8 +4013,6 @@ public function testUserMetadataGroupHorizontalQueryContent() /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testUserMetadataGroupHorizontalFilterLocation($queryType = null) { @@ -4197,8 +4102,6 @@ public function testUserMetadataGroupHorizontalFilterLocation($queryType = null) /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() */ public function testUserMetadataGroupHorizontalQueryLocation() { @@ -4207,8 +4110,6 @@ public function testUserMetadataGroupHorizontalQueryLocation() /** * Test for FullText on the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFullTextOnNewContent() { @@ -4248,8 +4149,6 @@ public function testFullTextOnNewContent() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testLanguageAnalysisSeparateContent() { @@ -4312,8 +4211,6 @@ public function testLanguageAnalysisSeparateContent() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testLanguageAnalysisSameContent() { @@ -4362,8 +4259,6 @@ public function testLanguageAnalysisSameContent() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testLanguageAnalysisSameContentNotFound() { @@ -4413,8 +4308,6 @@ public function testLanguageAnalysisSameContentNotFound() /** * Test for the findContent() method searching for content filtered by languages. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentWithLanguageFilter() { @@ -4524,12 +4417,11 @@ public function testFulltextComplex() /** * Test for the findContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() * - * @depends testFulltextComplex * * @param array $data */ + #[Depends('testFulltextComplex')] public function testFulltextContentSearchComplex(array $data) { // Do not initialize from scratch @@ -4570,12 +4462,11 @@ public function testFulltextContentSearchComplex(array $data) /** * Test for the findContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() * - * @depends testFulltextComplex * * @param array $data */ + #[Depends('testFulltextComplex')] public function testFulltextContentTranslationSearch(array $data) { $criterion = $data[0]; @@ -4587,12 +4478,11 @@ public function testFulltextContentTranslationSearch(array $data) /** * Test for the findLocations() method. * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() * - * @depends testFulltextComplex * * @param array $data */ + #[Depends('testFulltextComplex')] public function testFulltextLocationSearchComplex(array $data) { $setupFactory = $this->getSetupFactory(); @@ -4638,12 +4528,11 @@ public function testFulltextLocationSearchComplex(array $data) /** * Test for the findLocations() method. * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() * - * @depends testFulltextComplex * * @param array $data */ + #[Depends('testFulltextComplex')] public function testFulltextLocationTranslationSearch(array $data): void { $criterion = $data[0]; @@ -4852,7 +4741,7 @@ protected function simplifySearchResult(SearchResult $result) * * @return string */ - protected function getFixtureDir(): string + protected static function getFixtureDir(): string { return __DIR__ . '/_fixtures/' . getenv('fixtureDir') . '/'; } @@ -4884,8 +4773,6 @@ private function getContentInfoFixtureClosure($closure = null) * Test searching using Field Criterion where the given Field Identifier exists in * both searchable and non-searchable Fields. * Number of returned results depends on used storage. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() */ public function testFieldCriterionForContentsWithIdenticalFieldIdentifiers() { @@ -4965,11 +4852,8 @@ private function createContentWithFieldType( * * There is a slight chance when this test could fail, if by some reason, * we got to same _random_ results, or mt_rand() provides same seed for seed-supported DB implementation. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent() - * - * @dataProvider getSeedsForRandomSortClause */ + #[DataProvider('getSeedsForRandomSortClause')] public function testRandomSortContent(?int $firstSeed, ?int $secondSeed) { if ($firstSeed || $secondSeed) { @@ -5011,11 +4895,8 @@ public function testRandomSortContent(?int $firstSeed, ?int $secondSeed) /** * Test for the findLocations() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations() - * - * @dataProvider getSeedsForRandomSortClause */ + #[DataProvider('getSeedsForRandomSortClause')] public function testRandomSortLocation(?int $firstSeed, ?int $secondSeed) { if ($firstSeed || $secondSeed) { @@ -5055,7 +4936,7 @@ public function testRandomSortLocation(?int $firstSeed, ?int $secondSeed) } } - public function getSeedsForRandomSortClause() + public static function getSeedsForRandomSortClause() { $randomSeed = mt_rand(); @@ -5214,12 +5095,11 @@ static function (SearchHit $a, SearchHit $b): int { } /** - * @dataProvider providerForTestSortingByNumericFieldsWithValuesOfDifferentLength - * * @param int[] $expectedOrderedIds * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForTestSortingByNumericFieldsWithValuesOfDifferentLength')] public function testSortingByNumericFieldsWithValuesOfDifferentLength( LocationQuery $query, array $expectedOrderedIds @@ -5242,7 +5122,7 @@ static function (SearchHit $searchHit) { self::assertEquals($expectedOrderedIds, $actualIds); } - public function providerForTestSortingByNumericFieldsWithValuesOfDifferentLength(): iterable + public static function providerForTestSortingByNumericFieldsWithValuesOfDifferentLength(): iterable { yield 'Location ID ASC' => [ new LocationQuery( diff --git a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php index e98c72e722..741521199a 100644 --- a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php +++ b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php @@ -8,27 +8,32 @@ namespace Ibexa\Tests\Integration\Core\Repository; use DateTime; +use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchHit; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; use RuntimeException; /** * Test case for field filtering operations in the SearchService. * - * @covers \Ibexa\Contracts\Core\Repository\SearchService * - * @group integration - * @group search - * @group language_fallback * * @template TSearchHitValueObject * * @phpstan-type TIndexMap array{dedicated: string, shared: string, single: string, cloud: string} */ +#[CoversClass(SearchService::class)] +#[Group('integration')] +#[Group('search')] +#[Group('language_fallback')] class SearchServiceTranslationLanguageFallbackTest extends BaseTestCase { public const SETUP_DEDICATED = 'dedicated'; @@ -194,7 +199,7 @@ public function testCreateTestContent() return $this->createTestContent([2, 12]); } - public function providerForTestFind() + public static function providerForTestFind() { $data = [ 0 => [ @@ -1474,7 +1479,7 @@ public function providerForTestFind() ], ]; - $setupFactory = $this->getSetupFactory(); + $setupFactory = static::resolveSetupFactory(); if ($setupFactory instanceof LegacySolrSetupFactory) { $data = array_merge( @@ -1717,14 +1722,12 @@ protected function getIndexName(array $indexMap): ?string } /** - * @dataProvider providerForTestFind - * - * @depends testCreateTestContent - * * @param array $languageSettings * @param array $contentDataList * @param array $context */ + #[Depends('testCreateTestContent')] + #[DataProvider('providerForTestFind')] public function testFindContent( array $languageSettings, array $contentDataList, @@ -1768,14 +1771,12 @@ public function testFindContent( } /** - * @dataProvider providerForTestFind - * - * @depends testCreateTestContent - * * @param array $languageSettings * @param array $contentDataList * @param array $context */ + #[Depends('testCreateTestContent')] + #[DataProvider('providerForTestFind')] public function testFindLocationsSingle( array $languageSettings, array $contentDataList, @@ -1824,14 +1825,12 @@ public function testFindLocationsSingle( } /** - * @dataProvider providerForTestFind - * - * @depends testCreateTestContent - * * @param array $languageSettings * @param array $contentDataList * @param array $context */ + #[Depends('testCreateTestContent')] + #[DataProvider('providerForTestFind')] public function testFindLocationsMultiple( array $languageSettings, array $contentDataList, @@ -1910,7 +1909,7 @@ private function assertIndexName(array $indexMap, SearchHit $searchHit): void if ($indexName === null) { self::assertNull($searchHit->index); } else { - self::assertRegExp('~^' . $indexName . '$~', (string)$searchHit->index); + self::assertMatchesRegularExpression('~^' . $indexName . '$~', (string)$searchHit->index); } } diff --git a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php index 1eae0aea85..8f5edafaad 100644 --- a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php @@ -8,22 +8,29 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\SectionService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the SectionService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService - * - * @group integration - * @group authorization */ +#[CoversClass(SectionService::class)] +#[CoversMethod(SectionService::class, 'createSection()')] +#[CoversMethod(SectionService::class, 'loadSection()')] +#[CoversMethod(SectionService::class, 'updateSection()')] +#[CoversMethod(SectionService::class, 'loadSections()')] +#[CoversMethod(SectionService::class, 'loadSectionByIdentifier()')] +#[CoversMethod(SectionService::class, 'assignSection()')] +#[CoversMethod(SectionService::class, 'deleteSection()')] +#[Group('integration')] +#[Group('authorization')] class SectionServiceAuthorizationTest extends BaseTestCase { /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() */ public function testCreateSectionThrowsUnauthorizedException() { @@ -52,8 +59,6 @@ public function testCreateSectionThrowsUnauthorizedException() /** * Test for the loadSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSection() */ public function testLoadSectionThrowsUnauthorizedException() { @@ -84,8 +89,6 @@ public function testLoadSectionThrowsUnauthorizedException() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() */ public function testUpdateSectionThrowsUnauthorizedException() { @@ -120,8 +123,6 @@ public function testUpdateSectionThrowsUnauthorizedException() /** * Test for the loadSections() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSections() */ public function testLoadSectionsLoadsEmptyListForAnonymousUser() { @@ -157,8 +158,6 @@ public function testLoadSectionsLoadsEmptyListForAnonymousUser() /** * Test for the loadSections() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSections() */ public function testLoadSectionFiltersSections() { @@ -202,8 +201,6 @@ public function testLoadSectionFiltersSections() /** * Test for the loadSectionByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSectionByIdentifier() */ public function testLoadSectionByIdentifierThrowsUnauthorizedException() { @@ -234,8 +231,6 @@ public function testLoadSectionByIdentifierThrowsUnauthorizedException() /** * Test for the assignSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::assignSection() */ public function testAssignSectionThrowsUnauthorizedException() { @@ -276,8 +271,6 @@ public function testAssignSectionThrowsUnauthorizedException() /** * Test for the deleteSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::deleteSection() */ public function testDeleteSectionThrowsUnauthorizedException() { diff --git a/tests/integration/Core/Repository/SectionServiceTest.php b/tests/integration/Core/Repository/SectionServiceTest.php index d458b2ac36..e43a3cccc7 100644 --- a/tests/integration/Core/Repository/SectionServiceTest.php +++ b/tests/integration/Core/Repository/SectionServiceTest.php @@ -11,19 +11,34 @@ use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\SectionService; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Contracts\Core\Repository\Values\Content\SectionCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\SectionUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the SectionService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService - * - * @group integration - * @group section */ +#[CoversClass(SectionService::class)] +#[CoversMethod(SectionService::class, 'newSectionCreateStruct()')] +#[CoversMethod(SectionService::class, 'createSection()')] +#[CoversMethod(SectionService::class, 'loadSection()')] +#[CoversMethod(SectionService::class, 'newSectionUpdateStruct()')] +#[CoversMethod(SectionService::class, 'updateSection()')] +#[CoversMethod(SectionService::class, 'loadSections()')] +#[CoversMethod(SectionService::class, 'loadSectionByIdentifier()')] +#[CoversMethod(SectionService::class, 'countAssignedContents()')] +#[CoversMethod(SectionService::class, 'isSectionUsed()')] +#[CoversMethod(SectionService::class, 'assignSection()')] +#[CoversMethod(SectionService::class, 'assignSectionToSubtree()')] +#[CoversMethod(SectionService::class, 'deleteSection()')] +#[Group('integration')] +#[Group('section')] class SectionServiceTest extends BaseTestCase { private const SECTION_UNIQUE_KEY = 'uniqueKey'; @@ -74,8 +89,6 @@ protected function setUp(): void /** * Test for the newSectionCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::newSectionCreateStruct() */ public function testNewSectionCreateStruct() { @@ -92,11 +105,8 @@ public function testNewSectionCreateStruct() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testNewSectionCreateStruct */ + #[Depends('testNewSectionCreateStruct')] public function testCreateSection() { $repository = $this->getRepository(); @@ -116,11 +126,8 @@ public function testCreateSection() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testNewSectionCreateStruct */ + #[Depends('testNewSectionCreateStruct')] public function testCreateSectionForUserWithSectionLimitation() { $repository = $this->getRepository(); @@ -155,11 +162,8 @@ public function testCreateSectionForUserWithSectionLimitation() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testCreateSectionThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -186,11 +190,8 @@ public function testCreateSectionThrowsInvalidArgumentException() /** * Test for the loadSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSection() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testLoadSection() { $repository = $this->getRepository(); @@ -209,8 +210,6 @@ public function testLoadSection() /** * Test for the loadSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSection() */ public function testLoadSectionThrowsNotFoundException() { @@ -230,8 +229,6 @@ public function testLoadSectionThrowsNotFoundException() /** * Test for the newSectionUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::newSectionUpdateStruct() */ public function testNewSectionUpdateStruct() { @@ -248,13 +245,10 @@ public function testNewSectionUpdateStruct() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testCreateSection - * @depends testLoadSection - * @depends testNewSectionUpdateStruct */ + #[Depends('testCreateSection')] + #[Depends('testLoadSection')] + #[Depends('testNewSectionUpdateStruct')] public function testUpdateSection() { $repository = $this->getRepository(); @@ -286,13 +280,10 @@ public function testUpdateSection() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testCreateSection - * @depends testLoadSection - * @depends testNewSectionUpdateStruct */ + #[Depends('testCreateSection')] + #[Depends('testLoadSection')] + #[Depends('testNewSectionUpdateStruct')] public function testUpdateSectionForUserWithSectionLimitation() { $repository = $this->getRepository(); @@ -344,11 +335,8 @@ public function testUpdateSectionForUserWithSectionLimitation() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testUpdateSection */ + #[Depends('testUpdateSection')] public function testUpdateSectionKeepsSectionIdentifierOnNameUpdate() { $repository = $this->getRepository(); @@ -372,11 +360,8 @@ public function testUpdateSectionKeepsSectionIdentifierOnNameUpdate() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testUpdateSection */ + #[Depends('testUpdateSection')] public function testUpdateSectionWithSectionIdentifierOnNameUpdate() { $repository = $this->getRepository(); @@ -403,11 +388,8 @@ public function testUpdateSectionWithSectionIdentifierOnNameUpdate() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testUpdateSection */ + #[Depends('testUpdateSection')] public function testUpdateSectionKeepsSectionNameOnIdentifierUpdate() { $repository = $this->getRepository(); @@ -432,11 +414,8 @@ public function testUpdateSectionKeepsSectionNameOnIdentifierUpdate() /** * Test for the updateSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::updateSection() - * - * @depends testUpdateSection */ + #[Depends('testUpdateSection')] public function testUpdateSectionThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -470,11 +449,8 @@ public function testUpdateSectionThrowsInvalidArgumentException() /** * Test for the loadSections() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSections() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testLoadSections() { $repository = $this->getRepository(); @@ -493,11 +469,8 @@ public function testLoadSections() /** * Test for the loadSections() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSections() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testLoadSectionsReturnsDefaultSectionsByDefault() { $repository = $this->getRepository(); @@ -555,11 +528,8 @@ public function testLoadSectionsReturnsDefaultSectionsByDefault() /** * Test for the loadSectionByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSectionByIdentifier() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testLoadSectionByIdentifier() { $repository = $this->getRepository(); @@ -581,8 +551,6 @@ public function testLoadSectionByIdentifier() /** * Test for the loadSectionByIdentifier() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::loadSectionByIdentifier() */ public function testLoadSectionByIdentifierThrowsNotFoundException() { @@ -600,8 +568,6 @@ public function testLoadSectionByIdentifierThrowsNotFoundException() /** * Test for the countAssignedContents() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::countAssignedContents() */ public function testCountAssignedContents() { @@ -629,8 +595,6 @@ public function testCountAssignedContents() /** * Test for the isSectionUsed() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::isSectionUsed() */ public function testIsSectionUsed() { @@ -658,11 +622,8 @@ public function testIsSectionUsed() /** * Test for the assignSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::assignSection() - * - * @depends testCountAssignedContents */ + #[Depends('testCountAssignedContents')] public function testAssignSection() { $repository = $this->getRepository(); @@ -716,11 +677,8 @@ public function testAssignSection() /** * Test for the assignSectionToSubtree() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::assignSectionToSubtree() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testAssignSectionToSubtree() { $repository = $this->getRepository(); @@ -769,11 +727,8 @@ public function testAssignSectionToSubtree() /** * Test for the countAssignedContents() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::countAssignedContents() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testCountAssignedContentsReturnsZeroByDefault() { $repository = $this->getRepository(); @@ -796,11 +751,8 @@ public function testCountAssignedContentsReturnsZeroByDefault() /** * Test for the isSectionUsed() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::isSectionUsed() - * - * @depends testCreateSection */ + #[Depends('testCreateSection')] public function testIsSectionUsedReturnsZeroByDefault() { $repository = $this->getRepository(); @@ -823,11 +775,8 @@ public function testIsSectionUsedReturnsZeroByDefault() /** * Test for the deleteSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::deleteSection() - * - * @depends testLoadSections */ + #[Depends('testLoadSections')] public function testDeleteSection() { $repository = $this->getRepository(); @@ -850,11 +799,8 @@ public function testDeleteSection() /** * Test for the deleteSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::deleteSection() - * - * @depends testDeleteSection */ + #[Depends('testDeleteSection')] public function testDeleteSectionThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -880,11 +826,8 @@ public function testDeleteSectionThrowsNotFoundException() /** * Test for the deleteSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::deleteSection() - * - * @depends testAssignSection */ + #[Depends('testAssignSection')] public function testDeleteSectionThrowsBadStateException() { $this->expectException(BadStateException::class); @@ -918,12 +861,9 @@ public function testDeleteSectionThrowsBadStateException() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testCreateSection - * @depends testLoadSectionByIdentifier */ + #[Depends('testCreateSection')] + #[Depends('testLoadSectionByIdentifier')] public function testCreateSectionInTransactionWithRollback() { $repository = $this->getRepository(); @@ -964,12 +904,9 @@ public function testCreateSectionInTransactionWithRollback() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testCreateSection - * @depends testLoadSectionByIdentifier */ + #[Depends('testCreateSection')] + #[Depends('testLoadSectionByIdentifier')] public function testCreateSectionInTransactionWithCommit() { $repository = $this->getRepository(); @@ -1006,12 +943,9 @@ public function testCreateSectionInTransactionWithCommit() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testUpdateSection - * @depends testLoadSectionByIdentifier */ + #[Depends('testUpdateSection')] + #[Depends('testLoadSectionByIdentifier')] public function testUpdateSectionInTransactionWithRollback() { $repository = $this->getRepository(); @@ -1050,12 +984,9 @@ public function testUpdateSectionInTransactionWithRollback() /** * Test for the createSection() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SectionService::createSection() - * - * @depends testUpdateSection - * @depends testLoadSectionByIdentifier */ + #[Depends('testUpdateSection')] + #[Depends('testLoadSectionByIdentifier')] public function testUpdateSectionInTransactionWithCommit() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/SettingServiceTest.php b/tests/integration/Core/Repository/SettingServiceTest.php index 80f4605e58..72a879895c 100644 --- a/tests/integration/Core/Repository/SettingServiceTest.php +++ b/tests/integration/Core/Repository/SettingServiceTest.php @@ -12,15 +12,21 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\SettingService; use Ibexa\Contracts\Core\Repository\Values\Setting\Setting; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the SettingService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\SettingService - * - * @group integration - * @group setting */ +#[CoversClass(SettingService::class)] +#[CoversMethod(SettingService::class, 'createSetting()')] +#[CoversMethod(SettingService::class, 'loadSetting()')] +#[CoversMethod(SettingService::class, 'updateSetting()')] +#[CoversMethod(SettingService::class, 'deleteSetting()')] +#[Group('integration')] +#[Group('setting')] final class SettingServiceTest extends BaseTestCase { /** @var \Ibexa\Contracts\Core\Repository\PermissionResolver */ @@ -46,11 +52,7 @@ protected function setUp(): void $this->permissionResolver = $repository->getPermissionResolver(); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::createSetting() - * - * @dataProvider dataProviderForCreateSetting - */ + #[DataProvider('dataProviderForCreateSetting')] public function testCreateSetting(string $identifier, $value): void { $settingService = $this->getSettingService(); @@ -69,7 +71,7 @@ public function testCreateSetting(string $identifier, $value): void ]), $setting); } - public function dataProviderForCreateSetting(): iterable + public static function dataProviderForCreateSetting(): iterable { yield 'null' => [ 'example_null', @@ -107,9 +109,6 @@ public function dataProviderForCreateSetting(): iterable ]; } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::createSetting() - */ public function testCreateSettingThrowsInvalidArgumentException(): void { $settingService = $this->getSettingService(); @@ -131,9 +130,6 @@ public function testCreateSettingThrowsInvalidArgumentException(): void $settingService->createSetting($settingCreateSecond); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::loadSetting() - */ public function testLoadSetting(): void { $settingService = $this->getSettingService(); @@ -149,9 +145,6 @@ public function testLoadSetting(): void self::assertEquals('test_value', $setting->value); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::loadSetting() - */ public function testLoadSettingThrowsNotFoundException(): void { $settingService = $this->getSettingService(); @@ -161,9 +154,6 @@ public function testLoadSettingThrowsNotFoundException(): void $settingService->loadSetting('unknown_group', 'unknown_identifier'); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::updateSetting() - */ public function testUpdateSetting(): void { $settingService = $this->getSettingService(); @@ -184,9 +174,6 @@ public function testUpdateSetting(): void self::assertEquals('updated_value', $updatedSetting->value); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::deleteSetting() - */ public function testDeleteSetting(): void { $settingService = $this->getSettingService(); @@ -204,9 +191,6 @@ public function testDeleteSetting(): void $settingService->loadSetting('delete_group', 'delete_identifier'); } - /** - * @covers \Ibexa\Contracts\Core\Repository\SettingService::deleteSetting() - */ public function testDeleteSettingThrowsNotFoundException(): void { $settingService = $this->getSettingService(); diff --git a/tests/integration/Core/Repository/TokenServiceTest.php b/tests/integration/Core/Repository/TokenServiceTest.php index 0b723c36e4..67b0b4e28f 100644 --- a/tests/integration/Core/Repository/TokenServiceTest.php +++ b/tests/integration/Core/Repository/TokenServiceTest.php @@ -12,10 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\Token\Token; use Ibexa\Contracts\Core\Test\IbexaKernelTestCase; use Ibexa\Core\Base\Exceptions\TokenLengthException; +use Ibexa\Core\Repository\TokenService as CoveredTokenService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\Repository\TokenService - */ +#[CoversClass(CoveredTokenService::class)] final class TokenServiceTest extends IbexaKernelTestCase { private const TOKEN_TYPE = 'foo'; @@ -35,10 +36,9 @@ protected function setUp(): void } /** - * @dataProvider provideTokenData - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideTokenData')] public function testGenerateToken( string $type, int $tll, @@ -72,10 +72,9 @@ public function testGenerateTokenThrowsTokenLengthException(): void } /** - * @dataProvider provideDataForTestCheckToken - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideDataForTestCheckToken')] public function testCheckExistingToken( string $type, int $tll, @@ -104,10 +103,9 @@ public function testCheckNotExistentToken(): void } /** - * @dataProvider provideTokenData - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideTokenData')] public function testGetToken( string $type, int $tll, @@ -225,7 +223,7 @@ public function testDeleteToken(): void * ?int * }> */ - public function provideTokenData(): iterable + public static function provideTokenData(): iterable { yield 'Token with default length 64 and custom identifier' => [ self::TOKEN_TYPE, @@ -255,7 +253,7 @@ public function provideTokenData(): iterable * ?string * }> */ - public function provideDataForTestCheckToken(): iterable + public static function provideDataForTestCheckToken(): iterable { yield 'Token with identifier' => [ self::TOKEN_TYPE, diff --git a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php index c86cb615f5..7c66a28907 100644 --- a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php @@ -8,29 +8,36 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\TrashService as CoveredTrashService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Core\Repository\TrashService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the TrashService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService - * - * @group integration - * @group authorization */ +#[CoversClass(CoveredTrashService::class)] +#[CoversMethod(CoveredTrashService::class, 'loadTrashItem()')] +#[CoversMethod(CoveredTrashService::class, 'trash')] +#[CoversMethod(CoveredTrashService::class, 'recover()')] +#[CoversMethod(CoveredTrashService::class, 'recover($trashItem, $newParentLocation)')] +#[CoversMethod(CoveredTrashService::class, 'emptyTrash()')] +#[CoversMethod(CoveredTrashService::class, 'deleteTrashItem()')] +#[Group('integration')] +#[Group('authorization')] class TrashServiceAuthorizationTest extends BaseTrashServiceTestCase { /** * Test for the loadTrashItem() method. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::loadTrashItem() - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testLoadTrashItem - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser */ + #[DependsExternal(TrashServiceTest::class, 'testLoadTrashItem')] + #[DependsExternal(UserServiceTest::class, 'testLoadUser')] public function testLoadTrashItemThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -57,8 +64,6 @@ public function testLoadTrashItemThrowsUnauthorizedException() /** * Test for the trash() method without proper permissions. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::trash */ public function testTrashThrowsUnauthorizedException() { @@ -83,8 +88,6 @@ public function testTrashThrowsUnauthorizedException() /** * Test for the trash() method without proper permissions. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::trash */ public function testTrashThrowsUnauthorizedExceptionWithLanguageLimitation(): void { @@ -118,11 +121,8 @@ public function testTrashThrowsUnauthorizedExceptionWithLanguageLimitation(): vo /** * Test for the trash() method with proper minimal permission set. - * - * @depends testTrashThrowsUnauthorizedException - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::trash */ + #[Depends('testTrashThrowsUnauthorizedException')] public function testTrashRequiresContentRemovePolicy() { $repository = $this->getRepository(); @@ -147,12 +147,9 @@ public function testTrashRequiresContentRemovePolicy() /** * Test for the recover() method. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::recover() - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testRecover - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser */ + #[DependsExternal(TrashServiceTest::class, 'testRecover')] + #[DependsExternal(UserServiceTest::class, 'testLoadUser')] public function testRecoverThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -179,12 +176,9 @@ public function testRecoverThrowsUnauthorizedException() /** * Test for the recover() method. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::recover($trashItem, $newParentLocation) - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testRecover - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser */ + #[DependsExternal(TrashServiceTest::class, 'testRecover')] + #[DependsExternal(UserServiceTest::class, 'testLoadUser')] public function testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParameter() { $this->expectException(UnauthorizedException::class); @@ -219,12 +213,9 @@ public function testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParam /** * Test for the emptyTrash() method. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::emptyTrash() - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testEmptyTrash - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser */ + #[DependsExternal(TrashServiceTest::class, 'testEmptyTrash')] + #[DependsExternal(UserServiceTest::class, 'testLoadUser')] public function testEmptyTrashThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -251,12 +242,9 @@ public function testEmptyTrashThrowsUnauthorizedException() /** * Test for the deleteTrashItem() method. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService::deleteTrashItem() - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testDeleteTrashItem - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUser */ + #[DependsExternal(TrashServiceTest::class, 'testDeleteTrashItem')] + #[DependsExternal(UserServiceTest::class, 'testLoadUser')] public function testDeleteTrashItemThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/TrashServiceTest.php b/tests/integration/Core/Repository/TrashServiceTest.php index 226b74e845..281f878a19 100644 --- a/tests/integration/Core/Repository/TrashServiceTest.php +++ b/tests/integration/Core/Repository/TrashServiceTest.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Contracts\Core\Repository\TrashService; use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; @@ -24,22 +25,24 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\TrashItem; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the TrashService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\TrashService - * - * @group integration - * @group trash */ +#[CoversClass(TrashService::class)] +#[Group('integration')] +#[Group('trash')] class TrashServiceTest extends BaseTrashServiceTestCase { /** * Test for the trash() method. - * - * @depends Ibexa\Tests\Integration\Core\Repository\LocationServiceTest::testLoadLocationByRemoteId */ + #[DependsExternal(LocationServiceTest::class, 'testLoadLocationByRemoteId')] public function testTrash() { /* BEGIN: Use Case */ @@ -54,9 +57,8 @@ public function testTrash() /** * Test for the trash() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testTrashSetsExpectedTrashItemProperties() { $repository = $this->getRepository(); @@ -87,9 +89,8 @@ public function testTrashSetsExpectedTrashItemProperties() /** * Test for the trash() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testTrashRemovesLocationFromMainStorage() { $this->expectException(NotFoundException::class); @@ -112,9 +113,8 @@ public function testTrashRemovesLocationFromMainStorage() /** * Test for the trash() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testTrashRemovesChildLocationsFromMainStorage() { $repository = $this->getRepository(); @@ -147,9 +147,8 @@ public function testTrashRemovesChildLocationsFromMainStorage() /** * Test for the trash() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testTrashDecrementsChildCountOnParentLocation() { $repository = $this->getRepository(); @@ -222,9 +221,8 @@ public function testTrashReturnsNull() /** * Test for the loadTrashItem() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testLoadTrashItem() { $repository = $this->getRepository(); @@ -271,9 +269,8 @@ public function testLoadTrashItem() /** * Test for the loadTrashItem() method. - * - * @depends testLoadTrashItem */ + #[Depends('testLoadTrashItem')] public function testLoadTrashItemThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -292,9 +289,8 @@ public function testLoadTrashItemThrowsNotFoundException() /** * Test for the recover() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testRecover() { $repository = $this->getRepository(); @@ -354,9 +350,8 @@ public function testRecoverThrowsNotFoundExceptionForNonExistingTrashItem() /** * Test for the trash() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testNotFoundAliasAfterRemoveIt() { $this->expectException(NotFoundException::class); @@ -380,9 +375,8 @@ public function testNotFoundAliasAfterRemoveIt() /** * Test for the recover() method. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testAliasesForRemovedItems() { $mediaRemoteId = '75c715a51699d2d309a924eca6a95145'; @@ -422,9 +416,8 @@ public function testAliasesForRemovedItems() /** * Test for the recover() method. - * - * @depends testRecover */ + #[Depends('testRecover')] public function testRecoverDoesNotRestoreChildLocations() { $repository = $this->getRepository(); @@ -472,10 +465,10 @@ public function testRecoverDoesNotRestoreChildLocations() /** * Test for the recover() method. * - * @depends testRecover * * @todo Fix naming */ + #[Depends('testRecover')] public function testRecoverWithLocationCreateStructParameter() { $repository = $this->getRepository(); @@ -522,9 +515,8 @@ public function testRecoverWithLocationCreateStructParameter() /** * Test for the recover() method. - * - * @depends testRecover */ + #[Depends('testRecover')] public function testRecoverIncrementsChildCountOnOriginalParent() { $repository = $this->getRepository(); @@ -561,9 +553,8 @@ public function testRecoverIncrementsChildCountOnOriginalParent() /** * Test for the recover() method. - * - * @depends testRecoverWithLocationCreateStructParameter */ + #[Depends('testRecoverWithLocationCreateStructParameter')] public function testRecoverWithLocationCreateStructParameterIncrementsChildCountOnNewParent() { $repository = $this->getRepository(); @@ -627,9 +618,7 @@ public function testRecoverToNonExistingLocation() $trashService->recover($trashItem, $newParentLocation); } - /** - * @dataProvider trashFiltersProvider - */ + #[DataProvider('trashFiltersProvider')] public function testFindTrashItems( array $filters, int $expectedCount @@ -695,9 +684,7 @@ public function testFindTrashItemsSortedByDateTrashed(): void self::assertEquals($firstTrashedItem->remoteId, $searchResult->items[1]->remoteId); } - /** - * @dataProvider trashSortClausesProvider - */ + #[DataProvider('trashSortClausesProvider')] public function testFindTrashItemsSort(array $sortClausesClasses): void { $repository = $this->getRepository(); @@ -740,9 +727,8 @@ public function testFindTrashItemsSort(array $sortClausesClasses): void /** * Test for the findTrashItems() method for it's result structure. - * - * @depends testTrash */ + #[Depends('testTrash')] public function testFindTrashItemsLimits() { $repository = $this->getRepository(); @@ -769,9 +755,8 @@ public function testFindTrashItemsLimits() /** * Test for the findTrashItems() method. - * - * @depends Ibexa\Tests\Integration\Core\Repository\TrashServiceTest::testFindTrashItems */ + #[DependsExternal(self::class, 'testFindTrashItems')] public function testFindTrashItemsLimitedAccess() { $repository = $this->getRepository(); @@ -870,9 +855,8 @@ public function testFindTrashItemsSubtreeLimitation() /** * Test for the emptyTrash() method. - * - * @depends testFindTrashItems */ + #[Depends('testFindTrashItems')] public function testEmptyTrash() { $repository = $this->getRepository(); @@ -901,9 +885,8 @@ public function testEmptyTrash() /** * Test for the emptyTrash() method with user which has subtree limitations. - * - * @depends testFindTrashItems */ + #[Depends('testFindTrashItems')] public function testEmptyTrashForUserWithSubtreeLimitation() { $repository = $this->getRepository(); @@ -945,9 +928,8 @@ public function testEmptyTrashForUserWithSubtreeLimitation() /** * Test for the deleteTrashItem() method. - * - * @depends testFindTrashItems */ + #[Depends('testFindTrashItems')] public function testDeleteTrashItem() { $repository = $this->getRepository(); @@ -1039,7 +1021,7 @@ public function testTrashProperlyAssignsRemovedLocationContentMapToTrashItem(): /** * @return array */ - public function trashFiltersProvider(): array + public static function trashFiltersProvider(): array { return [ [ @@ -1183,7 +1165,7 @@ public function trashFiltersProvider(): array ]; } - public function trashSortClausesProvider(): array + public static function trashSortClausesProvider(): array { return [ [ diff --git a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php index fb92a11318..f338d63194 100644 --- a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php +++ b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php @@ -8,15 +8,17 @@ namespace Ibexa\Tests\Integration\Core\Repository\URLAliasService; +use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; +use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +#[CoversMethod(ContentService::class, 'publishVersion')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias')] final class CustomUrlAliasForMultilingualContentTest extends BaseTestCase { /** - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException diff --git a/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php b/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php index 6e2a6f009f..cc9d06db5b 100644 --- a/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php +++ b/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php @@ -10,10 +10,9 @@ use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService - */ +#[CoversClass(URLAliasService::class)] final class UrlAliasLookupTest extends RepositoryTestCase { /** diff --git a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php index 9e5f913b6a..c823934f56 100644 --- a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php @@ -8,16 +8,19 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\URLAliasService; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +#[CoversMethod(URLAliasService::class, 'createUrlAlias()')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias()')] +#[CoversMethod(URLAliasService::class, 'removeAliases()')] class URLAliasServiceAuthorizationTest extends BaseTestCase { /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias() - * - * @depends Ibexa\Tests\Integration\Core\Repository\URLAliasServiceTest::testCreateUrlAlias */ + #[DependsExternal(URLAliasServiceTest::class, 'testCreateUrlAlias')] public function testCreateUrlAliasThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -47,11 +50,8 @@ public function testCreateUrlAliasThrowsUnauthorizedException() /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias() - * - * @depends Ibexa\Tests\Integration\Core\Repository\URLAliasServiceTest::testCreateGlobalUrlAlias */ + #[DependsExternal(URLAliasServiceTest::class, 'testCreateGlobalUrlAlias')] public function testCreateGlobalUrlAliasThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -75,11 +75,8 @@ public function testCreateGlobalUrlAliasThrowsUnauthorizedException() /** * Test for the removeAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::removeAliases() - * - * @depends Ibexa\Tests\Integration\Core\Repository\URLAliasServiceTest::testRemoveAliases */ + #[DependsExternal(URLAliasServiceTest::class, 'testRemoveAliases')] public function testRemoveAliasesThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/URLAliasServiceTest.php b/tests/integration/Core/Repository/URLAliasServiceTest.php index e684ffb24d..9bb5ad6113 100644 --- a/tests/integration/Core/Repository/URLAliasServiceTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceTest.php @@ -12,21 +12,44 @@ use Exception; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Gateway; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; use Ibexa\Tests\Integration\Core\Repository\Common\SlugConverter as TestSlugConverter; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; use RuntimeException; /** * Test case for operations in the URLAliasService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService - * - * @group url-alias */ +#[CoversClass(URLAliasService::class)] +#[CoversMethod(URLAliasService::class, 'createUrlAlias()')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias($location, $path, $languageCode, $forwarding)')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias($location, $path, $languageCode, $forwarding, $alwaysAvailable)')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias()')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias($resource, $path, $languageCode, $forward)')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable)')] +#[CoversMethod(URLAliasService::class, 'listLocationAliases()')] +#[CoversMethod(URLAliasService::class, 'listLocationAliases($location, $custom, $languageCode)')] +#[CoversMethod(URLAliasService::class, 'listLocationAliases($location, $custom)')] +#[CoversMethod(URLAliasService::class, 'listGlobalAliases()')] +#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode)')] +#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode, $offset)')] +#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode, $offset, $limit)')] +#[CoversMethod(URLAliasService::class, 'removeAliases()')] +#[CoversMethod(URLAliasService::class, 'lookUp()')] +#[CoversMethod(URLAliasService::class, 'lookUp($url, $languageCode)')] +#[CoversMethod(URLAliasService::class, 'lookUp')] +#[CoversMethod(URLAliasService::class, 'listLocationAliases')] +#[CoversMethod(URLAliasService::class, 'deleteCorruptedUrlAliases')] +#[Group('url-alias')] class URLAliasServiceTest extends BaseTestCase { /** @@ -68,8 +91,6 @@ protected function setUp(): void /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias() */ public function testCreateUrlAlias() { @@ -99,7 +120,6 @@ public function testCreateUrlAlias() /** * Test for the createUrlAlias() method. * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException @@ -150,9 +170,8 @@ public function testLoad(): void /** * @param array $testData - * - * @depends testCreateUrlAlias */ + #[Depends('testCreateUrlAlias')] public function testCreateUrlAliasPropertyValues(array $testData) { [$createdUrlAlias, $locationId] = $testData; @@ -176,11 +195,8 @@ public function testCreateUrlAliasPropertyValues(array $testData) /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias($location, $path, $languageCode, $forwarding) - * - * @depends testCreateUrlAliasPropertyValues */ + #[Depends('testCreateUrlAliasPropertyValues')] public function testCreateUrlAliasWithForwarding() { $repository = $this->getRepository(); @@ -208,9 +224,8 @@ public function testCreateUrlAliasWithForwarding() /** * @param array $testData - * - * @depends testCreateUrlAliasWithForwarding */ + #[Depends('testCreateUrlAliasWithForwarding')] public function testCreateUrlAliasPropertyValuesWithForwarding(array $testData) { [$createdUrlAlias, $locationId] = $testData; @@ -234,8 +249,6 @@ public function testCreateUrlAliasPropertyValuesWithForwarding(array $testData) /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias($location, $path, $languageCode, $forwarding, $alwaysAvailable) */ public function testCreateUrlAliasWithAlwaysAvailable() { @@ -264,9 +277,8 @@ public function testCreateUrlAliasWithAlwaysAvailable() /** * @param array $testData - * - * @depends testCreateUrlAliasWithAlwaysAvailable */ + #[Depends('testCreateUrlAliasWithAlwaysAvailable')] public function testCreateUrlAliasPropertyValuesWithAlwaysAvailable(array $testData) { [$createdUrlAlias, $locationId] = $testData; @@ -290,8 +302,6 @@ public function testCreateUrlAliasPropertyValuesWithAlwaysAvailable(array $testD /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias() */ public function testCreateUrlAliasThrowsInvalidArgumentException() { @@ -317,8 +327,6 @@ public function testCreateUrlAliasThrowsInvalidArgumentException() /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias() */ public function testCreateGlobalUrlAlias() { @@ -342,9 +350,7 @@ public function testCreateGlobalUrlAlias() return $createdUrlAlias; } - /** - * @depends testCreateGlobalUrlAlias - */ + #[Depends('testCreateGlobalUrlAlias')] public function testCreateGlobalUrlAliasPropertyValues(URLAlias $createdUrlAlias) { self::assertNotNull($createdUrlAlias->id); @@ -366,8 +372,6 @@ public function testCreateGlobalUrlAliasPropertyValues(URLAlias $createdUrlAlias /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias($resource, $path, $languageCode, $forward) */ public function testCreateGlobalUrlAliasWithForward() { @@ -392,9 +396,7 @@ public function testCreateGlobalUrlAliasWithForward() return $createdUrlAlias; } - /** - * @depends testCreateGlobalUrlAliasWithForward - */ + #[Depends('testCreateGlobalUrlAliasWithForward')] public function testCreateGlobalUrlAliasWithForwardPropertyValues(URLAlias $createdUrlAlias) { self::assertNotNull($createdUrlAlias->id); @@ -416,8 +418,6 @@ public function testCreateGlobalUrlAliasWithForwardPropertyValues(URLAlias $crea /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable) */ public function testCreateGlobalUrlAliasWithAlwaysAvailable() { @@ -443,9 +443,7 @@ public function testCreateGlobalUrlAliasWithAlwaysAvailable() return $createdUrlAlias; } - /** - * @depends testCreateGlobalUrlAliasWithAlwaysAvailable - */ + #[Depends('testCreateGlobalUrlAliasWithAlwaysAvailable')] public function testCreateGlobalUrlAliasWithAlwaysAvailablePropertyValues(URLAlias $createdUrlAlias) { self::assertNotNull($createdUrlAlias->id); @@ -467,8 +465,6 @@ public function testCreateGlobalUrlAliasWithAlwaysAvailablePropertyValues(URLAli /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable) */ public function testCreateGlobalUrlAliasForLocation() { @@ -502,8 +498,6 @@ public function testCreateGlobalUrlAliasForLocation() /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable) */ public function testCreateGlobalUrlAliasForLocationVariation() { @@ -537,9 +531,8 @@ public function testCreateGlobalUrlAliasForLocationVariation() /** * @param array{\Ibexa\Contracts\Core\Repository\Values\Content\URLAlias, int} $testData - * - * @depends testCreateGlobalUrlAliasForLocation */ + #[Depends('testCreateGlobalUrlAliasForLocation')] public function testCreateGlobalUrlAliasForLocationPropertyValues($testData) { [$createdUrlAlias, $locationId] = $testData; @@ -563,9 +556,8 @@ public function testCreateGlobalUrlAliasForLocationPropertyValues($testData) /** * @param array{\Ibexa\Contracts\Core\Repository\Values\Content\URLAlias, int} $testData - * - * @depends testCreateGlobalUrlAliasForLocationVariation */ + #[Depends('testCreateGlobalUrlAliasForLocationVariation')] public function testCreateGlobalUrlAliasForLocationVariationPropertyValues($testData) { $this->testCreateGlobalUrlAliasForLocationPropertyValues($testData); @@ -573,8 +565,6 @@ public function testCreateGlobalUrlAliasForLocationVariationPropertyValues($test /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias() */ public function testCreateGlobalUrlAliasThrowsInvalidArgumentException() { @@ -597,8 +587,6 @@ public function testCreateGlobalUrlAliasThrowsInvalidArgumentException() /** * Test for the listLocationAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listLocationAliases() */ public function testListLocationAliases() { @@ -630,9 +618,8 @@ public function testListLocationAliases() /** * @param array $testData - * - * @depends testListLocationAliases */ + #[Depends('testListLocationAliases')] public function testListLocationAliasesLoadsCorrectly(array $testData) { [$loadedAliases, $location] = $testData; @@ -651,8 +638,6 @@ public function testListLocationAliasesLoadsCorrectly(array $testData) /** * Test for the listLocationAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listLocationAliases($location, $custom, $languageCode) */ public function testListLocationAliasesWithCustomFilter() { @@ -680,8 +665,6 @@ public function testListLocationAliasesWithCustomFilter() /** * Test for the listLocationAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listLocationAliases($location, $custom) */ public function testListLocationAliasesWithLanguageCodeFilter() { @@ -708,8 +691,6 @@ public function testListLocationAliasesWithLanguageCodeFilter() /** * Test for the listGlobalAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listGlobalAliases() */ public function testListGlobalAliases() { @@ -758,8 +739,6 @@ private function createGlobalAliases() /** * Test for the listGlobalAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listGlobalAliases($languageCode) */ public function testListGlobalAliasesWithLanguageFilter() { @@ -781,8 +760,6 @@ public function testListGlobalAliasesWithLanguageFilter() /** * Test for the listGlobalAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listGlobalAliases($languageCode, $offset) */ public function testListGlobalAliasesWithOffset() { @@ -804,8 +781,6 @@ public function testListGlobalAliasesWithOffset() /** * Test for the listGlobalAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listGlobalAliases($languageCode, $offset, $limit) */ public function testListGlobalAliasesWithLimit() { @@ -827,8 +802,6 @@ public function testListGlobalAliasesWithLimit() /** * Test for the removeAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::removeAliases() */ public function testRemoveAliases() { @@ -868,8 +841,6 @@ public function testRemoveAliases() /** * Test for the removeAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::removeAliases() */ public function testRemoveAliasesThrowsInvalidArgumentExceptionIfAutogeneratedAliasesAreToBeRemoved() { @@ -897,8 +868,6 @@ public function testRemoveAliasesThrowsInvalidArgumentExceptionIfAutogeneratedAl /** * Test for the lookUp() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp() */ public function testLookUp() { @@ -920,8 +889,6 @@ public function testLookUp() /** * Test for the lookUp() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp($url, $languageCode) */ public function testLookUpWithLanguageFilter() { @@ -948,8 +915,6 @@ public function testLookUpWithLanguageFilter() /** * Test for the lookUp() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp() */ public function testLookUpThrowsNotFoundException() { @@ -967,8 +932,6 @@ public function testLookUpThrowsNotFoundException() /** * Test for the lookUp() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp($url, $languageCode) */ public function testLookUpThrowsNotFoundExceptionWithLanguageFilter() { @@ -986,8 +949,6 @@ public function testLookUpThrowsNotFoundExceptionWithLanguageFilter() /** * Test for the lookUp() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp($url, $languageCode) */ public function testLookUpThrowsInvalidArgumentException() { @@ -1007,9 +968,6 @@ public function testLookUpThrowsInvalidArgumentException() * Test for the lookUp() method after renaming parent which is a part of the lookup path. * * @see https://issues.ibexa.co/browse/EZP-28046 - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::lookUp - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::listLocationAliases */ public function testLookupOnRenamedParent() { @@ -1744,7 +1702,6 @@ private function assertUrlAliasPropertiesCorrect( /** * Insert intentionally broken rows into ibexa_url_alias_ml table to test cleanup API. * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::deleteCorruptedUrlAliases * * @see testDeleteCorruptedUrlAliases * diff --git a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php index 17ebc05d2c..d6d8c9732c 100644 --- a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php @@ -8,15 +8,18 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\URLService; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; +use PHPUnit\Framework\Attributes\CoversMethod; +#[CoversMethod(URLService::class, 'findUrls')] +#[CoversMethod(URLService::class, 'updateUrl')] +#[CoversMethod(URLService::class, 'loadById')] class URLServiceAuthorizationTest extends BaseURLServiceTestCase { /** * Test for the findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls */ public function testFindUrlsThrowsUnauthorizedException() { @@ -44,8 +47,6 @@ public function testFindUrlsThrowsUnauthorizedException() /** * Test for the updateUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::updateUrl */ public function testUpdateUrlThrowsUnauthorizedException() { @@ -75,8 +76,6 @@ public function testUpdateUrlThrowsUnauthorizedException() /** * Test for the loadById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadById */ public function testLoadByIdThrowsUnauthorizedException() { @@ -102,8 +101,6 @@ public function testLoadByIdThrowsUnauthorizedException() /** * Test for the loadByUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadById */ public function testLoadByUrlThrowsUnauthorizedException() { diff --git a/tests/integration/Core/Repository/URLServiceTest.php b/tests/integration/Core/Repository/URLServiceTest.php index 413320e05a..1c9a625666 100644 --- a/tests/integration/Core/Repository/URLServiceTest.php +++ b/tests/integration/Core/Repository/URLServiceTest.php @@ -10,6 +10,7 @@ use DateTime; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\URLService; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\URL\Query\SortClause; use Ibexa\Contracts\Core\Repository\Values\URL\URL; @@ -17,15 +18,24 @@ use Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\URL\UsageSearchResult; use Ibexa\Core\Base\Exceptions\InvalidArgumentValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the UserService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService - * - * @group integration - * @group url */ +#[CoversClass(URLService::class)] +#[CoversMethod(URLService::class, 'findUrls()')] +#[CoversMethod(URLService::class, 'findUrls')] +#[CoversMethod(URLService::class, 'updateUrl()')] +#[CoversMethod(URLService::class, 'loadById')] +#[CoversMethod(URLService::class, 'loadByUrl')] +#[CoversMethod(URLService::class, 'createUpdateStruct')] +#[Group('integration')] +#[Group('url')] class URLServiceTest extends BaseURLServiceTestCase { private const TOTAL_URLS_COUNT = 20; @@ -170,8 +180,6 @@ protected function setUp(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() */ public function testFindUrls() { @@ -206,8 +214,6 @@ public function testFindUrls() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() */ public function testFindUrlsWithoutCounting() { @@ -243,11 +249,8 @@ public function testFindUrlsWithoutCounting() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingMatchNone() { $query = new URLQuery(); @@ -258,11 +261,8 @@ public function testFindUrlsUsingMatchNone() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingPatternCriterion() { $expectedUrls = [ @@ -281,11 +281,8 @@ public function testFindUrlsUsingPatternCriterion() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingValidityCriterionValid() { $expectedUrls = [ @@ -318,11 +315,8 @@ public function testFindUrlsUsingValidityCriterionValid() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingSectionIdCriterion(): void { $expectedUrls = [ @@ -339,11 +333,8 @@ public function testFindUrlsUsingSectionIdCriterion(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingSectionIdAndValidityCriterionValid(): void { $expectedUrls = [ @@ -363,11 +354,8 @@ public function testFindUrlsUsingSectionIdAndValidityCriterionValid(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingSectionIdentifierCriterion(): void { $expectedUrls = [ @@ -384,11 +372,8 @@ public function testFindUrlsUsingSectionIdentifierCriterion(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingSectionIdentifierAndValidityCriterionValid(): void { $expectedUrls = [ @@ -410,11 +395,8 @@ public function testFindUrlsUsingSectionIdentifierAndValidityCriterionValid(): v /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingSectionIdentifierOrSectionIdCriterion(): void { $expectedUrls = [ @@ -436,11 +418,8 @@ public function testFindUrlsUsingSectionIdentifierOrSectionIdCriterion(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingValidityCriterionInvalid() { $expectedUrls = [ @@ -455,11 +434,8 @@ public function testFindUrlsUsingValidityCriterionInvalid() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsUsingVisibleOnlyCriterion() { $expectedUrls = [ @@ -513,8 +489,6 @@ public function testFindUrlsUsingVisibleOnlyCriterionReturnsUniqueItems(): void /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() */ public function testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException() { @@ -534,8 +508,6 @@ public function testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() */ public function testFindUrlsWithInvalidLimitThrowsInvalidArgumentException() { @@ -555,11 +527,8 @@ public function testFindUrlsWithInvalidLimitThrowsInvalidArgumentException() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsWithOffset() { $expectedUrls = [ @@ -585,11 +554,8 @@ public function testFindUrlsWithOffset() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsWithOffsetAndLimit() { $expectedUrls = [ @@ -609,11 +575,8 @@ public function testFindUrlsWithOffsetAndLimit() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls */ + #[Depends('testFindUrls')] public function testFindUrlsWithLimitZero() { $query = new URLQuery(); @@ -625,13 +588,9 @@ public function testFindUrlsWithLimitZero() /** * Test for URLService::findUrls() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::findUrls() - * - * @depends testFindUrls - * - * @dataProvider dataProviderForFindUrlsWithSorting */ + #[Depends('testFindUrls')] + #[DataProvider('dataProviderForFindUrlsWithSorting')] public function testFindUrlsWithSorting(SortClause $sortClause, array $expectedUrls) { $query = new URLQuery(); @@ -641,7 +600,7 @@ public function testFindUrlsWithSorting(SortClause $sortClause, array $expectedU $this->doTestFindUrls($query, $expectedUrls, count($expectedUrls), false); } - public function dataProviderForFindUrlsWithSorting() + public static function dataProviderForFindUrlsWithSorting() { $urlsSortedById = [ '/content/view/sitemap/2', @@ -679,8 +638,6 @@ public function dataProviderForFindUrlsWithSorting() /** * Test for URLService::updateUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::updateUrl() */ public function testUpdateUrl() { @@ -712,8 +669,6 @@ public function testUpdateUrl() /** * Test for URLService::updateUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::updateUrl() */ public function testUpdateUrlStatus() { @@ -748,11 +703,8 @@ public function testUpdateUrlStatus() /** * Test for URLService::updateUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::updateUrl() - * - * @depends testUpdateUrl */ + #[Depends('testUpdateUrl')] public function testUpdateUrlWithNonUniqueUrl() { $this->expectException(InvalidArgumentException::class); @@ -775,8 +727,6 @@ public function testUpdateUrlWithNonUniqueUrl() /** * Test for URLService::loadById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadById */ public function testLoadById() { @@ -803,11 +753,8 @@ public function testLoadById() /** * Test for URLService::loadById() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadById - * - * @depends testLoadById */ + #[Depends('testLoadById')] public function testLoadByIdThrowsNotFoundException() { $repository = $this->getRepository(); @@ -823,8 +770,6 @@ public function testLoadByIdThrowsNotFoundException() /** * Test for URLService::loadByUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadByUrl */ public function testLoadByUrl() { @@ -851,11 +796,8 @@ public function testLoadByUrl() /** * Test for URLService::loadByUrl() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLService::loadByUrl - * - * @depends testLoadByUrl */ + #[Depends('testLoadByUrl')] public function testLoadByUrlThrowsNotFoundException() { $repository = $this->getRepository(); @@ -872,7 +814,6 @@ public function testLoadByUrlThrowsNotFoundException() /** * Test for URLService::createUpdateStruct() method. * - * @covers \Ibexa\Contracts\Core\Repository\URLService::createUpdateStruct * * @return \Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct */ @@ -894,9 +835,8 @@ public function testCreateUpdateStruct() * Test for URLService::createUpdateStruct() method. * * @param \Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct $updateStruct - * - * @depends testCreateUpdateStruct */ + #[Depends('testCreateUpdateStruct')] public function testCreateUpdateStructValues(URLUpdateStruct $updateStruct) { $this->assertPropertiesCorrect([ @@ -908,11 +848,9 @@ public function testCreateUpdateStructValues(URLUpdateStruct $updateStruct) /** * Test for URLService::testFindUsages() method. - * - * @depends testLoadById - * - * @dataProvider dataProviderForFindUsages */ + #[Depends('testLoadById')] + #[DataProvider('dataProviderForFindUsages')] public function testFindUsages($urlId, $offset, $limit, array $expectedContentInfos, $expectedTotalCount = null) { $repository = $this->getRepository(); @@ -931,7 +869,7 @@ public function testFindUsages($urlId, $offset, $limit, array $expectedContentIn $this->assertUsagesSearchResultItems($usagesSearchResults, $expectedContentInfos); } - public function dataProviderForFindUsages() + public static function dataProviderForFindUsages() { return [ // findUsages($url, 0, -1) @@ -943,9 +881,8 @@ public function dataProviderForFindUsages() /** * Test for URLService::testFindUsages() method. - * - * @depends testFindUsages */ + #[Depends('testFindUsages')] public function testFindUsagesReturnsEmptySearchResults() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php b/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php index 8a188f1c1f..63a51f20b3 100644 --- a/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php +++ b/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php @@ -9,19 +9,20 @@ namespace Ibexa\Tests\Integration\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidCriterionArgumentException; +use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\SearchResult; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\URLWildcardQuery; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion as CriterionURL; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; /** * Test case criterion for URLWildcard. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService - * - * @group url-wildcard */ +#[CoversClass(URLWildcardService::class)] +#[Group('url-wildcard')] class CriterionTest extends BaseTestCase { protected function setUp(): void diff --git a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php index 0d76662a62..39b17c09fb 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php @@ -8,22 +8,23 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\URLWildcardService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the URLWildcardService. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService - * - * @group integration - * @group authorization */ +#[CoversClass(URLWildcardService::class)] +#[CoversMethod(URLWildcardService::class, 'create')] +#[CoversMethod(URLWildcardService::class, 'remove()')] +#[Group('integration')] +#[Group('authorization')] class URLWildcardServiceAuthorizationTest extends BaseTestCase { - /** - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create - * - * @depends Ibexa\Tests\Integration\Core\Repository\URLWildcardServiceTest::testCreate - */ + #[DependsExternal(URLWildcardServiceTest::class, 'testCreate')] public function testCreateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -47,11 +48,8 @@ public function testCreateThrowsUnauthorizedException(): void /** * Test for the remove() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove() - * - * @depends Ibexa\Tests\Integration\Core\Repository\URLWildcardServiceTest::testRemove */ + #[DependsExternal(URLWildcardServiceTest::class, 'testRemove')] public function testRemoveThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/URLWildcardServiceTest.php b/tests/integration/Core/Repository/URLWildcardServiceTest.php index 2d262ef252..119acf8df1 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceTest.php @@ -10,25 +10,32 @@ use Ibexa\Contracts\Core\Repository\Exceptions\ContentValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardUpdateStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the URLWildcardService. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService - * - * @group url-wildcard */ +#[CoversClass(URLWildcardService::class)] +#[CoversMethod(URLWildcardService::class, 'create()')] +#[CoversMethod(URLWildcardService::class, 'load()')] +#[CoversMethod(URLWildcardService::class, 'update')] +#[CoversMethod(URLWildcardService::class, 'remove()')] +#[CoversMethod(URLWildcardService::class, 'loadAll()')] +#[CoversMethod(URLWildcardService::class, 'translate()')] +#[Group('url-wildcard')] class URLWildcardServiceTest extends BaseTestCase { /** * Test for the create() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() */ public function testCreate() { @@ -53,11 +60,8 @@ public function testCreate() * Test for the create() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testCreateSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) { $this->assertPropertiesCorrect( @@ -72,11 +76,8 @@ public function testCreateSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testCreateWithOptionalForwardParameter() { $repository = $this->getRepository(); @@ -100,11 +101,8 @@ public function testCreateWithOptionalForwardParameter() /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl() { $this->expectException(InvalidArgumentException::class); @@ -125,11 +123,8 @@ public function testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl() /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceholdersNotMatch() { $this->expectException(ContentValidationException::class); @@ -147,11 +142,8 @@ public function testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceho /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testCreateThrowsContentValidationExceptionWhenPlaceholdersNotValidNumberSequence() { $this->expectException(ContentValidationException::class); @@ -171,11 +163,8 @@ public function testCreateThrowsContentValidationExceptionWhenPlaceholdersNotVal * Test for the load() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::load() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testLoad() { $repository = $this->getRepository(); @@ -202,11 +191,8 @@ public function testLoad() * Test for the load() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::load() - * - * @depends testLoad */ + #[Depends('testLoad')] public function testLoadSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) { $this->assertPropertiesCorrect( @@ -223,11 +209,8 @@ public function testLoadSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) * Test for the load() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::load() - * - * @depends testLoad */ + #[Depends('testLoad')] public function testLoadThrowsNotFoundException(URLWildcard $urlWildcard) { $this->expectException(NotFoundException::class); @@ -243,8 +226,6 @@ public function testLoadThrowsNotFoundException(URLWildcard $urlWildcard) } /** - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::update - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException @@ -288,11 +269,8 @@ public function testUpdate(): void /** * Test for the remove() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove() - * - * @depends testLoad */ + #[Depends('testLoad')] public function testRemove() { $this->expectException(NotFoundException::class); @@ -318,11 +296,8 @@ public function testRemove() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testLoadAll() { $repository = $this->getRepository(); @@ -349,11 +324,8 @@ public function testLoadAll() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll() - * - * @depends testLoadAll */ + #[Depends('testLoadAll')] public function testLoadAllWithOffsetParameter() { $repository = $this->getRepository(); @@ -374,11 +346,8 @@ public function testLoadAllWithOffsetParameter() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll() - * - * @depends testLoadAll */ + #[Depends('testLoadAll')] public function testLoadAllWithOffsetAndLimitParameter() { $repository = $this->getRepository(); @@ -399,11 +368,8 @@ public function testLoadAllWithOffsetAndLimitParameter() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll() - * - * @depends testLoadAll */ + #[Depends('testLoadAll')] public function testLoadAllReturnsEmptyArrayByDefault() { $repository = $this->getRepository(); @@ -422,11 +388,8 @@ public function testLoadAllReturnsEmptyArrayByDefault() * Test for the translate() method. * * @return \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate() - * - * @depends testCreate */ + #[Depends('testCreate')] public function testTranslate() { $repository = $this->getRepository(); @@ -453,11 +416,8 @@ public function testTranslate() * Test for the translate() method. * * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult $result - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate() - * - * @depends testTranslate */ + #[Depends('testTranslate')] public function testTranslateSetsPropertiesOnTranslationResult(URLWildcardTranslationResult $result) { $this->assertPropertiesCorrect( @@ -471,11 +431,8 @@ public function testTranslateSetsPropertiesOnTranslationResult(URLWildcardTransl /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate() - * - * @depends testTranslate */ + #[Depends('testTranslate')] public function testTranslateWithForwardSetToTrue() { $repository = $this->getRepository(); @@ -501,11 +458,8 @@ public function testTranslateWithForwardSetToTrue() /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate() - * - * @depends testTranslate */ + #[Depends('testTranslate')] public function testTranslateReturnsLongestMatchingWildcard() { $repository = $this->getRepository(); @@ -526,11 +480,8 @@ public function testTranslateReturnsLongestMatchingWildcard() /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate() - * - * @depends testTranslate */ + #[Depends('testTranslate')] public function testTranslateThrowsNotFoundExceptionWhenNotAliasOrWildcardMatches() { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/UserPreferenceServiceTest.php b/tests/integration/Core/Repository/UserPreferenceServiceTest.php index 0d14ce7ba5..692861d171 100644 --- a/tests/integration/Core/Repository/UserPreferenceServiceTest.php +++ b/tests/integration/Core/Repository/UserPreferenceServiceTest.php @@ -9,20 +9,24 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; +use Ibexa\Contracts\Core\Repository\UserPreferenceService; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreference; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceList; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceSetStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; /** * Test case for the UserPreferenceService. - * - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService */ +#[CoversClass(UserPreferenceService::class)] +#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences()')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreference()')] +#[CoversMethod(UserPreferenceService::class, 'setUserPreference()')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount()')] class UserPreferenceServiceTest extends BaseTestCase { - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::loadUserPreferences() - */ public function testLoadUserPreferences() { $repository = $this->getRepository(); @@ -38,9 +42,6 @@ public function testLoadUserPreferences() self::assertEquals(5, $userPreferenceList->totalCount); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::getUserPreference() - */ public function testGetUserPreference() { $repository = $this->getRepository(); @@ -57,11 +58,7 @@ public function testGetUserPreference() self::assertEquals($userPreferenceName, $userPreference->name); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference() - * - * @depends testGetUserPreference - */ + #[Depends('testGetUserPreference')] public function testSetUserPreference() { $repository = $this->getRepository(); @@ -84,11 +81,7 @@ public function testSetUserPreference() self::assertEquals($userPreferenceName, $userPreference->name); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference() - * - * @depends testSetUserPreference - */ + #[Depends('testSetUserPreference')] public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValue() { $this->expectException(InvalidArgumentException::class); @@ -108,11 +101,7 @@ public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValu /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference() - * - * @depends testSetUserPreference - */ + #[Depends('testSetUserPreference')] public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName() { $this->expectException(InvalidArgumentException::class); @@ -131,9 +120,6 @@ public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::getUserPreferenceCount() - */ public function testGetUserPreferenceCount() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php index 108a3e7b2a..f5bdd2e9e7 100644 --- a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php @@ -8,24 +8,39 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\UserService; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the UserService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService - * - * @group integration - * @group authorization */ +#[CoversClass(UserService::class)] +#[CoversMethod(UserService::class, 'loadUserGroup()')] +#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId()')] +#[CoversMethod(UserService::class, 'loadSubUserGroups()')] +#[CoversMethod(UserService::class, 'createUserGroup()')] +#[CoversMethod(UserService::class, 'deleteUserGroup()')] +#[CoversMethod(UserService::class, 'moveUserGroup()')] +#[CoversMethod(UserService::class, 'updateUserGroup()')] +#[CoversMethod(UserService::class, 'createUser()')] +#[CoversMethod(UserService::class, 'deleteUser()')] +#[CoversMethod(UserService::class, 'updateUser()')] +#[CoversMethod(UserService::class, 'updateUserPassword')] +#[CoversMethod(UserService::class, 'assignUserToUserGroup()')] +#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup()')] +#[CoversMethod(UserService::class, 'loadUserGroupsOfUser()')] +#[CoversMethod(UserService::class, 'loadUsersOfUserGroup()')] +#[Group('integration')] +#[Group('authorization')] class UserServiceAuthorizationTest extends BaseTestCase { /** * Test for the loadUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testLoadUserGroup')] public function testLoadUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -49,11 +64,8 @@ public function testLoadUserGroupThrowsUnauthorizedException() /** * Test for the loadUserGroupByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupByRemoteId() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUserGroupByRemoteId */ + #[DependsExternal(UserServiceTest::class, 'testLoadUserGroupByRemoteId')] public function testLoadUserGroupByRemoteIdThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -75,11 +87,8 @@ public function testLoadUserGroupByRemoteIdThrowsUnauthorizedException(): void /** * Test for the loadSubUserGroups() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadSubUserGroups() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadSubUserGroups */ + #[DependsExternal(UserServiceTest::class, 'testLoadSubUserGroups')] public function testLoadSubUserGroupsThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -103,11 +112,8 @@ public function testLoadSubUserGroupsThrowsUnauthorizedException() /** * Test for the createUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testCreateUserGroup')] public function testCreateUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -138,11 +144,8 @@ public function testCreateUserGroupThrowsUnauthorizedException() /** * Test for the deleteUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testDeleteUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testDeleteUserGroup')] public function testDeleteUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -166,11 +169,8 @@ public function testDeleteUserGroupThrowsUnauthorizedException() /** * Test for the moveUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::moveUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testMoveUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testMoveUserGroup')] public function testMoveUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -201,11 +201,8 @@ public function testMoveUserGroupThrowsUnauthorizedException() /** * Test for the updateUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testUpdateUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testUpdateUserGroup')] public function testUpdateUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -239,11 +236,8 @@ public function testUpdateUserGroupThrowsUnauthorizedException() /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testCreateUser */ + #[DependsExternal(UserServiceTest::class, 'testCreateUser')] public function testCreateUserThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -283,11 +277,8 @@ public function testCreateUserThrowsUnauthorizedException() /** * Test for the deleteUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testDeleteUser */ + #[DependsExternal(UserServiceTest::class, 'testDeleteUser')] public function testDeleteUserThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -309,8 +300,6 @@ public function testDeleteUserThrowsUnauthorizedException() /** * Test for the updateUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() */ public function testUpdateUserThrowsUnauthorizedException() { @@ -335,9 +324,6 @@ public function testUpdateUserThrowsUnauthorizedException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserPassword - */ public function testUpdateUserPasswordThrowsUnauthorizedException(): void { $repository = $this->getRepository(); @@ -362,11 +348,8 @@ public function testUpdateUserPasswordThrowsUnauthorizedException(): void /** * Test for the assignUserToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::assignUserToUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testAssignUserToUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testAssignUserToUserGroup')] public function testAssignUserToUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -395,11 +378,8 @@ public function testAssignUserToUserGroupThrowsUnauthorizedException() /** * Test for the unAssignUssrFromUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::unAssignUssrFromUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testUnAssignUserFromUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testUnAssignUserFromUserGroup')] public function testUnAssignUserFromUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -436,11 +416,8 @@ public function testUnAssignUserFromUserGroupThrowsUnauthorizedException() /** * Test for the loadUserGroupsOfUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupsOfUser() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUserGroupsOfUser */ + #[DependsExternal(UserServiceTest::class, 'testLoadUserGroupsOfUser')] public function testLoadUserGroupsOfUserThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); @@ -463,11 +440,8 @@ public function testLoadUserGroupsOfUserThrowsUnauthorizedException() /** * Test for the loadUsersOfUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersOfUserGroup() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUsersOfUserGroup */ + #[DependsExternal(UserServiceTest::class, 'testLoadUsersOfUserGroup')] public function testLoadUsersOfUserGroupThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 041bdf967d..0482cf57fa 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -16,6 +16,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\ContentFieldValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\UserService; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; @@ -35,16 +36,63 @@ use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\UserGroup; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\Attributes\Group; use Symfony\Bridge\PhpUnit\ClockMock; /** * Test case for operations in the UserService using in memory storage. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService - * - * @group integration - * @group user */ +#[CoversClass(UserService::class)] +#[CoversMethod(UserService::class, 'loadUserGroup()')] +#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId()')] +#[CoversMethod(UserService::class, 'loadSubUserGroups()')] +#[CoversMethod(UserService::class, 'loadSubUserGroups')] +#[CoversMethod(UserService::class, 'newUserGroupCreateStruct()')] +#[CoversMethod(UserService::class, 'newUserGroupCreateStruct($mainLanguageCode, $contentType)')] +#[CoversMethod(UserService::class, 'createUserGroup()')] +#[CoversMethod(UserService::class, 'createUserGroup')] +#[CoversMethod(UserService::class, 'deleteUserGroup()')] +#[CoversMethod(UserService::class, 'deleteUserGroup')] +#[CoversMethod(UserService::class, 'moveUserGroup()')] +#[CoversMethod(UserService::class, 'moveUserGroup')] +#[CoversMethod(UserService::class, 'newUserGroupUpdateStruct')] +#[CoversMethod(UserService::class, 'updateUserGroup()')] +#[CoversMethod(UserService::class, 'newUserCreateStruct()')] +#[CoversMethod(UserService::class, 'updateUserGroup')] +#[CoversMethod(UserService::class, 'newUserCreateStruct($login, $email, $password, $mainLanguageCode, $contentType)')] +#[CoversMethod(UserService::class, 'createUser()')] +#[CoversMethod(UserService::class, 'createUser')] +#[CoversMethod(UserService::class, 'loadUser()')] +#[CoversMethod(UserService::class, 'checkUserCredentials()')] +#[CoversMethod(UserService::class, 'loadUserByLogin()')] +#[CoversMethod(UserService::class, 'loadUsersByEmail()')] +#[CoversMethod(UserService::class, 'deleteUser()')] +#[CoversMethod(UserService::class, 'newUserUpdateStruct()')] +#[CoversMethod(UserService::class, 'updateUser()')] +#[CoversMethod(UserService::class, 'updateUser')] +#[CoversMethod(UserService::class, 'updateUserPassword')] +#[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] +#[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] +#[CoversMethod(UserService::class, 'assignUserToUserGroup()')] +#[CoversMethod(UserService::class, 'assignUserToUserGroup')] +#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup()')] +#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup()')] +#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] +#[CoversMethod(UserService::class, 'loadUserGroup')] +#[CoversMethod(UserService::class, 'loadUser')] +#[CoversMethod(UserService::class, 'loadUserByLogin')] +#[CoversMethod(UserService::class, 'loadUsersByEmail')] +#[CoversMethod(UserService::class, 'loadUserByToken')] +#[CoversMethod(UserService::class, 'updateUserToken()')] +#[CoversMethod(UserService::class, 'expireUserToken()')] +#[CoversMethod(UserService::class, 'validatePassword()')] +#[Group('integration')] +#[Group('user')] class UserServiceTest extends BaseTestCase { // Example password matching default rules @@ -55,8 +103,6 @@ class UserServiceTest extends BaseTestCase /** * Test for the loadUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup() */ public function testLoadUserGroup() { @@ -81,8 +127,6 @@ public function testLoadUserGroup() /** * Test for the loadUserGroupByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupByRemoteId() */ public function testLoadUserGroupByRemoteId(): void { @@ -101,8 +145,6 @@ public function testLoadUserGroupByRemoteId(): void /** * Test for the loadUserGroup() method to ensure that DomainUserGroupObject is created properly even if a user * has no access to parent of UserGroup. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup() */ public function testLoadUserGroupWithNoAccessToParent() { @@ -136,11 +178,8 @@ public function testLoadUserGroupWithNoAccessToParent() /** * Test for the loadUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup() - * - * @depends testLoadUserGroup */ + #[Depends('testLoadUserGroup')] public function testLoadUserGroupThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -158,11 +197,8 @@ public function testLoadUserGroupThrowsNotFoundException() /** * Test for the loadUserGroupByRemoteId() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupByRemoteId() - * - * @depends Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testLoadUserGroupByRemoteId */ + #[DependsExternal(self::class, 'testLoadUserGroupByRemoteId')] public function testLoadUserGroupByRemoteIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -175,11 +211,8 @@ public function testLoadUserGroupByRemoteIdThrowsNotFoundException(): void /** * Test for the loadSubUserGroups() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadSubUserGroups() - * - * @depends testLoadUserGroup */ + #[Depends('testLoadUserGroup')] public function testLoadSubUserGroups() { $repository = $this->getRepository(); @@ -202,8 +235,6 @@ public function testLoadSubUserGroups() /** * Test loading sub groups throwing NotFoundException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadSubUserGroups */ public function testLoadSubUserGroupsThrowsNotFoundException() { @@ -235,8 +266,6 @@ public function testLoadSubUserGroupsThrowsNotFoundException() * Test for the newUserGroupCreateStruct() method. * * @return \Ibexa\Contracts\Core\Repository\Values\User\UserGroupCreateStruct - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserGroupCreateStruct() */ public function testNewUserGroupCreateStruct() { @@ -260,11 +289,8 @@ public function testNewUserGroupCreateStruct() * Test for the newUserGroupCreateStruct() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroupCreateStruct $groupCreate - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserGroupCreateStruct() - * - * @depends testNewUserGroupCreateStruct */ + #[Depends('testNewUserGroupCreateStruct')] public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate) { self::assertEquals('eng-US', $groupCreate->mainLanguageCode); @@ -274,11 +300,8 @@ public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate) * Test for the newUserGroupCreateStruct() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroupCreateStruct $groupCreate - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserGroupCreateStruct() - * - * @depends testNewUserGroupCreateStruct */ + #[Depends('testNewUserGroupCreateStruct')] public function testNewUserGroupCreateStructSetsContentType($groupCreate) { self::assertInstanceOf( @@ -289,11 +312,8 @@ public function testNewUserGroupCreateStructSetsContentType($groupCreate) /** * Test for the newUserGroupCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserGroupCreateStruct($mainLanguageCode, $contentType) - * - * @depends testNewUserGroupCreateStruct */ + #[Depends('testNewUserGroupCreateStruct')] public function testNewUserGroupCreateStructWithSecondParameter() { $repository = $this->getRepository(); @@ -319,12 +339,9 @@ public function testNewUserGroupCreateStructWithSecondParameter() * Test for the createUserGroup() method. * * @return \Ibexa\Contracts\Core\Repository\Values\User\UserGroup - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends testNewUserGroupCreateStruct - * @depends testLoadUserGroup */ + #[Depends('testNewUserGroupCreateStruct')] + #[Depends('testLoadUserGroup')] public function testCreateUserGroup() { /* BEGIN: Use Case */ @@ -348,11 +365,8 @@ public function testCreateUserGroup() * Test for the createUserGroup() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroup $userGroup - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends testCreateUserGroup */ + #[Depends('testCreateUserGroup')] public function testCreateUserGroupSetsExpectedProperties($userGroup) { self::assertEquals( @@ -367,11 +381,8 @@ public function testCreateUserGroupSetsExpectedProperties($userGroup) /** * Test for the createUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends testCreateUserGroup */ + #[Depends('testCreateUserGroup')] public function testCreateUserGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -403,11 +414,8 @@ public function testCreateUserGroupThrowsInvalidArgumentException() /** * Test for the createUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends testCreateUserGroup */ + #[Depends('testCreateUserGroup')] public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAccept() { $this->expectException(InvalidArgumentException::class); @@ -438,11 +446,8 @@ public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAcc /** * Test for the createUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup() - * - * @depends testCreateUserGroup */ + #[Depends('testCreateUserGroup')] public function testCreateUserGroupWhenMissingField() { $this->expectException(ContentFieldValidationException::class); @@ -469,12 +474,9 @@ public function testCreateUserGroupWhenMissingField() /** * Test for the createUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUserGroup - * - * @depends testNewUserGroupCreateStruct - * @depends testLoadUserGroup */ + #[Depends('testNewUserGroupCreateStruct')] + #[Depends('testLoadUserGroup')] public function testCreateUserGroupInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -521,11 +523,8 @@ public function testCreateUserGroupInTransactionWithRollback(): void /** * Test for the deleteUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUserGroup() - * - * @depends testCreateUserGroup */ + #[Depends('testCreateUserGroup')] public function testDeleteUserGroup() { $this->expectException(NotFoundException::class); @@ -546,8 +545,6 @@ public function testDeleteUserGroup() /** * Test deleting user group throwing NotFoundException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUserGroup */ public function testDeleteUserGroupThrowsNotFoundException() { @@ -573,12 +570,9 @@ public function testDeleteUserGroupThrowsNotFoundException() /** * Test for the moveUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::moveUserGroup() - * - * @depends testCreateUserGroup - * @depends testLoadSubUserGroups */ + #[Depends('testCreateUserGroup')] + #[Depends('testLoadSubUserGroups')] public function testMoveUserGroup() { $repository = $this->getRepository(); @@ -621,8 +615,6 @@ static function ($content) { /** * Test moving a user group below another group throws NotFoundException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::moveUserGroup */ public function testMoveUserGroupThrowsNotFoundException() { @@ -660,8 +652,6 @@ public function testMoveUserGroupThrowsNotFoundException() /** * Test for the newUserGroupUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserGroupUpdateStruct */ public function testNewUserGroupUpdateStruct() { @@ -684,12 +674,9 @@ public function testNewUserGroupUpdateStruct() /** * Test for the updateUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup() - * - * @depends testCreateUserGroup - * @depends testNewUserGroupUpdateStruct */ + #[Depends('testCreateUserGroup')] + #[Depends('testNewUserGroupUpdateStruct')] public function testUpdateUserGroup() { $repository = $this->getRepository(); @@ -718,11 +705,8 @@ public function testUpdateUserGroup() /** * Test for the updateUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup() - * - * @depends testUpdateUserGroup */ + #[Depends('testUpdateUserGroup')] public function testUpdateUserGroupWithSubContentUpdateStruct() { $repository = $this->getRepository(); @@ -759,11 +743,8 @@ public function testUpdateUserGroupWithSubContentUpdateStruct() /** * Test for the updateUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup() - * - * @depends testUpdateUserGroup */ + #[Depends('testUpdateUserGroup')] public function testUpdateUserGroupWithSubContentMetadataUpdateStruct() { $repository = $this->getRepository(); @@ -803,11 +784,8 @@ public function testUpdateUserGroupWithSubContentMetadataUpdateStruct() /** * Test for the updateUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup() - * - * @depends testUpdateUserGroup */ + #[Depends('testUpdateUserGroup')] public function testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() { $this->expectException(InvalidArgumentException::class); @@ -838,8 +816,6 @@ public function testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotA /** * Test for the newUserCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserCreateStruct() */ public function testNewUserCreateStruct() { @@ -866,8 +842,6 @@ public function testNewUserCreateStruct() /** * Test updating a user group throws ContentFieldValidationException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserGroup */ public function testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequiredFieldEmpty() { @@ -889,11 +863,8 @@ public function testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequir * Test for the newUserCreateStruct() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\UserCreateStruct $userCreate - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserCreateStruct() - * - * @depends testNewUserCreateStruct */ + #[Depends('testNewUserCreateStruct')] public function testNewUserCreateStructSetsExpectedProperties($userCreate) { self::assertEquals( @@ -914,11 +885,8 @@ public function testNewUserCreateStructSetsExpectedProperties($userCreate) /** * Test for the newUserCreateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserCreateStruct($login, $email, $password, $mainLanguageCode, $contentType) - * - * @depends testNewUserCreateStruct */ + #[Depends('testNewUserCreateStruct')] public function testNewUserCreateStructWithFifthParameter() { $repository = $this->getRepository(); @@ -958,12 +926,9 @@ public function testNewUserWithDomainName(): void * Test for the createUser() method. * * @return \Ibexa\Contracts\Core\Repository\Values\User\User - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() - * - * @depends testLoadUserGroup - * @depends testNewUserCreateStruct */ + #[Depends('testLoadUserGroup')] + #[Depends('testNewUserCreateStruct')] public function testCreateUser() { /* BEGIN: Use Case */ @@ -982,11 +947,8 @@ public function testCreateUser() * Test for the createUser() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateUserSetsExpectedProperties(User $user) { self::assertEquals( @@ -1005,11 +967,8 @@ public function testCreateUserSetsExpectedProperties(User $user) /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateUserWhenMissingField() { $this->expectException(ContentFieldValidationException::class); @@ -1046,11 +1005,8 @@ public function testCreateUserWhenMissingField() /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() { $this->expectException(InvalidArgumentException::class); @@ -1087,11 +1043,8 @@ public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateUserThrowsInvalidArgumentException() { $repository = $this->getRepository(); @@ -1136,11 +1089,8 @@ public function testCreateUserThrowsInvalidArgumentException() /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateUserWithEmailAlreadyTaken(): void { $repository = $this->getRepository(); @@ -1194,11 +1144,8 @@ public function testCreateUserWithEmailAlreadyTaken(): void /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testCreateInvalidFormatUsername(): void { $repository = $this->getRepository(); @@ -1246,12 +1193,9 @@ public function testCreateInvalidFormatUsername(): void /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser - * - * @depends testLoadUserGroup - * @depends testNewUserCreateStruct */ + #[Depends('testLoadUserGroup')] + #[Depends('testNewUserCreateStruct')] public function testCreateUserInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -1283,8 +1227,6 @@ public function testCreateUserInTransactionWithRollback(): void /** * Test creating a user throwing NotFoundException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser */ public function testCreateUserThrowsNotFoundException() { @@ -1316,8 +1258,6 @@ public function testCreateUserThrowsNotFoundException() /** * Test creating a user throwing UserPasswordValidationException when password doesn't follow specific rules. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser */ public function testCreateUserWithWeakPasswordThrowsUserPasswordValidationException() { @@ -1347,8 +1287,6 @@ public function testCreateUserWithWeakPasswordThrowsUserPasswordValidationExcept /** * Opposite test case for testCreateUserWithWeakPasswordThrowsUserPasswordValidationException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser */ public function testCreateUserWithStrongPassword() { @@ -1362,12 +1300,9 @@ public function testCreateUserWithStrongPassword() } /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUser() - * - * @depends testCreateUser - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[Depends('testCreateUser')] public function testLoadUser(): void { $repository = $this->getRepository(); @@ -1390,11 +1325,8 @@ public function testLoadUser(): void /** * Test for the loadUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUser() - * - * @depends testLoadUser */ + #[Depends('testLoadUser')] public function testLoadUserThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -1411,11 +1343,7 @@ public function testLoadUserThrowsNotFoundException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::checkUserCredentials() - * - * @depends testCreateUser - */ + #[Depends('testCreateUser')] public function testCheckUserCredentialsValid(): void { $repository = $this->getRepository(); @@ -1432,11 +1360,7 @@ public function testCheckUserCredentialsValid(): void self::assertTrue($credentialsValid); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::checkUserCredentials() - * - * @depends testCreateUser - */ + #[Depends('testCreateUser')] public function testCheckUserCredentialsInvalid(): void { $repository = $this->getRepository(); @@ -1455,11 +1379,8 @@ public function testCheckUserCredentialsInvalid(): void /** * Test for the loadUserByLogin() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByLogin() - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testLoadUserByLogin() { $repository = $this->getRepository(); @@ -1492,11 +1413,8 @@ public function testLoadUserByLogin() /** * Test for the loadUserByLogin() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByLogin() - * - * @depends testLoadUserByLogin */ + #[Depends('testLoadUserByLogin')] public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin() { $this->expectException(NotFoundException::class); @@ -1516,11 +1434,8 @@ public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin() /** * Test for the loadUserByLogin() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByLogin() - * - * @depends testLoadUserByLogin */ + #[Depends('testLoadUserByLogin')] public function testLoadUserByLoginWorksForLoginWithWrongCase() { $repository = $this->getRepository(); @@ -1555,11 +1470,8 @@ public function testLoadUserByLoginWorksForLoginWithWrongCase() * Test for the loadUserByLogin() method. * * In some cases people use email as login name, make sure system works as exepcted when asking for user by email. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByLogin() - * - * @depends testLoadUserByLogin */ + #[Depends('testLoadUserByLogin')] public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLoginByEmail() { $this->expectException(NotFoundException::class); @@ -1576,11 +1488,7 @@ public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLoginByEmail /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersByEmail() - * - * @depends testCreateUser - */ + #[Depends('testCreateUser')] public function testLoadUserByEmail(): void { $repository = $this->getRepository(); @@ -1598,11 +1506,8 @@ public function testLoadUserByEmail(): void /** * Test for the loadUsersByEmail() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersByEmail() - * - * @depends testLoadUserByEmail */ + #[Depends('testLoadUserByEmail')] public function testLoadUserByEmailReturnsEmptyInUnknownEmail() { $repository = $this->getRepository(); @@ -1622,12 +1527,9 @@ public function testLoadUserByEmailReturnsEmptyInUnknownEmail() /** * Test for the deleteUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUser() - * - * @depends testCreateUser - * @depends testLoadUser */ + #[Depends('testCreateUser')] + #[Depends('testLoadUser')] public function testDeleteUser() { $this->expectException(NotFoundException::class); @@ -1649,12 +1551,9 @@ public function testDeleteUser() /** * Test for the deleteUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::deleteUser() - * - * @depends testCreateUser - * @depends testLoadUser */ + #[Depends('testCreateUser')] + #[Depends('testLoadUser')] public function testDeleteUserDeletesRelatedBookmarks() { $repository = $this->getRepository(); @@ -1685,8 +1584,6 @@ public function testDeleteUserDeletesRelatedBookmarks() /** * Test for the newUserUpdateStruct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::newUserUpdateStruct() */ public function testNewUserUpdateStruct() { @@ -1722,12 +1619,9 @@ public function testNewUserUpdateStruct() * Test for the updateUser() method. * * @return \Ibexa\Contracts\Core\Repository\Values\User\User - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testCreateUser - * @depends testNewUserUpdateStruct */ + #[Depends('testCreateUser')] + #[Depends('testNewUserUpdateStruct')] public function testUpdateUser() { // As \Ibexa\Tests\Integration\Core\Repository\UserServiceTest::testUpdateUserUpdatesExpectedProperties belongs on this test, @@ -1785,12 +1679,8 @@ public function testUpdateUserEmail(): void self::assertInstanceOf(User::class, $users[0]); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser - * - * @depends testCreateUser - * @depends testNewUserUpdateStruct - */ + #[Depends('testCreateUser')] + #[Depends('testNewUserUpdateStruct')] public function testUpdateUserNoPassword(): void { $repository = $this->getRepository(); @@ -1836,11 +1726,8 @@ public function testUpdateUserNoPassword(): void * Test for the updateUser() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserUpdatesExpectedProperties(User $user) { self::assertEquals( @@ -1871,11 +1758,8 @@ public function testUpdateUserUpdatesExpectedProperties(User $user) * Test for the updateUser() method. * * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserReturnsPublishedVersion(User $user) { self::assertEquals( @@ -1886,11 +1770,8 @@ public function testUpdateUserReturnsPublishedVersion(User $user) /** * Test for the updateUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserWithContentMetadataUpdateStruct() { $repository = $this->getRepository(); @@ -1925,11 +1806,8 @@ public function testUpdateUserWithContentMetadataUpdateStruct() /** * Test for the updateUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserWithContentUpdateStruct() { $repository = $this->getRepository(); @@ -1968,11 +1846,8 @@ public function testUpdateUserWithContentUpdateStruct() /** * Test for the updateUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserWhenMissingField() { $this->expectException(ContentFieldValidationException::class); @@ -2006,11 +1881,8 @@ public function testUpdateUserWhenMissingField() /** * Test for the updateUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser() - * - * @depends testUpdateUser */ + #[Depends('testUpdateUser')] public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() { $this->expectException(InvalidArgumentException::class); @@ -2044,8 +1916,6 @@ public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept /** * Test updating a user throwing UserPasswordValidationException when password doesn't follow specified rules. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser */ public function testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException() { @@ -2079,8 +1949,6 @@ public function testUpdateUserWithWeakPasswordThrowsUserPasswordValidationExcept /** * Opposite test case for testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser */ public function testUpdateUserWithStrongPassword() { @@ -2099,9 +1967,6 @@ public function testUpdateUserWithStrongPassword() self::assertInstanceOf(User::class, $user); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUser - */ public function testUpdateUserByUserWithLimitations(): void { $repository = $this->getRepository(); @@ -2131,9 +1996,6 @@ public function testUpdateUserByUserWithLimitations(): void self::assertInstanceOf(User::class, $user); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserPassword - */ public function testUpdateUserPasswordWorksWithUserPasswordRole(): void { $repository = $this->getRepository(); @@ -2186,11 +2048,8 @@ public function testUpdateUserPasswordWithUnsupportedHashType(): void /** * Test for the loadUserGroupsOfUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupsOfUser - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testLoadUserGroupsOfUser() { $repository = $this->getRepository(); @@ -2213,11 +2072,8 @@ public function testLoadUserGroupsOfUser() /** * Test for the loadUsersOfUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersOfUserGroup - * - * @depends testCreateUser */ + #[Depends('testCreateUser')] public function testLoadUsersOfUserGroup() { $repository = $this->getRepository(); @@ -2242,11 +2098,8 @@ public function testLoadUsersOfUserGroup() /** * Test for the assignUserToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::assignUserToUserGroup() - * - * @depends testLoadUserGroupsOfUser */ + #[Depends('testLoadUserGroupsOfUser')] public function testAssignUserToUserGroup() { $repository = $this->getRepository(); @@ -2285,11 +2138,8 @@ public function testAssignUserToUserGroup() /** * Test for the assignUserToUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::assignUserToUserGroup - * - * @depends testAssignUserToUserGroup */ + #[Depends('testAssignUserToUserGroup')] public function testAssignUserToUserGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2313,9 +2163,6 @@ public function testAssignUserToUserGroupThrowsInvalidArgumentException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::assignUserToUserGroup - */ public function testAssignUserToGroupWithLocationsValidation(): void { $repository = $this->getRepository(); @@ -2348,11 +2195,8 @@ public function testAssignUserToGroupWithLocationsValidation(): void /** * Test for the unAssignUssrFromUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::unAssignUssrFromUserGroup() - * - * @depends testLoadUserGroupsOfUser */ + #[Depends('testLoadUserGroupsOfUser')] public function testUnAssignUserFromUserGroup() { $repository = $this->getRepository(); @@ -2391,11 +2235,8 @@ public function testUnAssignUserFromUserGroup() /** * Test for the unAssignUserFromUserGroup() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::unAssignUserFromUserGroup() - * - * @depends testUnAssignUserFromUserGroup */ + #[Depends('testUnAssignUserFromUserGroup')] public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -2420,11 +2261,8 @@ public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException() /** * Test for the unAssignUserFromUserGroup() method removing user from the last group. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::unAssignUserFromUserGroup - * - * @depends testUnAssignUserFromUserGroup */ + #[Depends('testUnAssignUserFromUserGroup')] public function testUnAssignUserFromUserGroupThrowsBadStateArgumentException() { $this->expectException(BadStateException::class); @@ -2446,9 +2284,6 @@ public function testUnAssignUserFromUserGroupThrowsBadStateArgumentException() /* END: Use Case */ } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::unAssignUserFromUserGroup - */ public function testUnAssignUserToGroupWithLocationValidation(): void { $repository = $this->getRepository(); @@ -2491,13 +2326,12 @@ public function testUnAssignUserToGroupWithLocationValidation(): void /** * Test that multi-language logic for the loadUserGroup method respects prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2525,13 +2359,12 @@ public function testLoadUserGroupWithPrioritizedLanguagesList( /** * Test that multi-language logic works correctly after updating user group main language. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserGroupWithPrioritizedLanguagesListAfterMainLanguageUpdate( array $prioritizedLanguages, $expectedLanguageCode @@ -2566,13 +2399,12 @@ public function testLoadUserGroupWithPrioritizedLanguagesListAfterMainLanguageUp /** * Test that multi-language logic for the loadSubUserGroups method respects prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadSubUserGroups * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadSubUserGroupsWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2608,13 +2440,12 @@ public function testLoadSubUserGroupsWithPrioritizedLanguagesList( /** * Test that multi-language logic for the loadUser method respects prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUser * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2646,13 +2477,12 @@ public function testLoadUserWithPrioritizedLanguagesList( * Test that multi-language logic for the loadUser method works correctly after updating * user content main language. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroup * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserWithPrioritizedLanguagesListAfterMainLanguageUpdate( array $prioritizedLanguages, $expectedLanguageCode @@ -2691,13 +2521,12 @@ public function testLoadUserWithPrioritizedLanguagesListAfterMainLanguageUpdate( /** * Test that multi-language logic for the loadUserByLogin method respects prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByLogin * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserByLoginWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2729,13 +2558,12 @@ public function testLoadUserByLoginWithPrioritizedLanguagesList( * Test that multi-language logic for the loadUsersByEmail method respects * prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersByEmail * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUsersByEmailWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2769,13 +2597,12 @@ public function testLoadUsersByEmailWithPrioritizedLanguagesList( * Test that multi-language logic for the loadUserGroupsOfUser method respects * prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserGroupsOfUser * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUserGroupsOfUserWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2802,13 +2629,12 @@ public function testLoadUserGroupsOfUserWithPrioritizedLanguagesList( * Test that multi-language logic for the loadUsersOfUserGroup method respects * prioritized language list. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUsersOfUserGroup * - * @dataProvider getPrioritizedLanguageList * * @param string[] $prioritizedLanguages * @param string|null $expectedLanguageCode language code of expected translation */ + #[DataProvider('getPrioritizedLanguageList')] public function testLoadUsersOfUserGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode @@ -2853,7 +2679,7 @@ public function testLoadUsersOfUserGroupWithPrioritizedLanguagesList( * * @return array */ - public function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList() { return [ [[], null], @@ -2962,8 +2788,6 @@ private function createMultiLanguageUser($userGroupId = 13) /** * Test for the createUser() method. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::createUser() */ public function testCreateUserWithDefaultPasswordHashTypeWhenHashTypeIsUnsupported(): void { @@ -3008,9 +2832,6 @@ public function testCreateUserWithDefaultPasswordHashTypeWhenHashTypeIsUnsupport self::assertEquals(User::DEFAULT_PASSWORD_HASH, $createdUser->hashAlgorithm); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByToken - */ public function testLoadUserByToken(): string { $repository = $this->getRepository(); @@ -3033,12 +2854,11 @@ public function testLoadUserByToken(): string /** * Test updating User Token. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::updateUserToken() * - * @depends testLoadUserByToken * * @param string $originalUserToken */ + #[Depends('testLoadUserByToken')] public function testUpdateUserToken($originalUserToken) { $repository = $this->getRepository(false); @@ -3059,12 +2879,11 @@ public function testUpdateUserToken($originalUserToken) /** * Test invalidating (expiring) User Token. * - * @covers \Ibexa\Contracts\Core\Repository\UserService::expireUserToken() * - * @depends testLoadUserByToken * * @param string $userToken */ + #[Depends('testLoadUserByToken')] public function testExpireUserToken($userToken) { $this->expectException(NotFoundException::class); @@ -3083,8 +2902,6 @@ public function testExpireUserToken($userToken) /** * Test trying to load User by invalid Token. - * - * @covers \Ibexa\Contracts\Core\Repository\UserService::loadUserByToken */ public function testLoadUserByTokenThrowsNotFoundException(): void { @@ -3095,9 +2912,6 @@ public function testLoadUserByTokenThrowsNotFoundException(): void $userService->loadUserByToken('not_existing_token'); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::validatePassword() - */ public function testValidatePasswordWithDefaultContext() { $userService = $this->getRepository()->getUserService(); @@ -3109,11 +2923,7 @@ public function testValidatePasswordWithDefaultContext() self::assertEmpty($errors); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserService::validatePassword() - * - * @dataProvider dataProviderForValidatePassword - */ + #[DataProvider('dataProviderForValidatePassword')] public function testValidatePassword(string $password, array $expectedErrors) { $userService = $this->getRepository()->getUserService(); @@ -3153,7 +2963,7 @@ public function testValidatePasswordReturnsErrorWhenOldPasswordIsReused(): void ); } - public function getDataForTestPasswordUpdateRespectsAllValidationSettings(): iterable + public static function getDataForTestPasswordUpdateRespectsAllValidationSettings(): iterable { $oldPassword = 'P@blish123!'; @@ -3195,11 +3005,10 @@ public function getDataForTestPasswordUpdateRespectsAllValidationSettings(): ite } /** - * @dataProvider getDataForTestPasswordUpdateRespectsAllValidationSettings - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception * @throws \Exception */ + #[DataProvider('getDataForTestPasswordUpdateRespectsAllValidationSettings')] public function testUpdateUserPasswordPerformsValidation( string $oldPassword, string $newPassword, @@ -3229,7 +3038,7 @@ public function testUpdateUserPasswordPerformsValidation( * * @return array */ - public function dataProviderForValidatePassword(): array + public static function dataProviderForValidatePassword(): array { return [ [ diff --git a/tests/integration/Core/Repository/Values/Content/EmbeddingQueryBuilderTest.php b/tests/integration/Core/Repository/Values/Content/EmbeddingQueryBuilderTest.php index c71ca1ba88..13d0090cb5 100644 --- a/tests/integration/Core/Repository/Values/Content/EmbeddingQueryBuilderTest.php +++ b/tests/integration/Core/Repository/Values/Content/EmbeddingQueryBuilderTest.php @@ -22,8 +22,8 @@ final class EmbeddingQueryBuilderTest extends TestCase { public function testBuilderSetsAllowedProperties(): void { - $embedding = $this->createMock(Embedding::class); - $aggregations = [$this->createMock(Aggregation::class), $this->createMock(Aggregation::class)]; + $embedding = self::createStub(Embedding::class); + $aggregations = [self::createStub(Aggregation::class), self::createStub(Aggregation::class)]; $builder = EmbeddingQueryBuilder::create() ->withEmbedding($embedding) @@ -52,7 +52,7 @@ public function testBuilderSetsAllowedProperties(): void public function testIsValidReturnsTrueForCleanQuery(): void { $query = EmbeddingQueryBuilder::create() - ->withEmbedding($this->createMock(Embedding::class)) + ->withEmbedding(self::createStub(Embedding::class)) ->build(); self::assertTrue($query->isValid()); @@ -61,7 +61,7 @@ public function testIsValidReturnsTrueForCleanQuery(): void public function testSettingSortClausesThenIsValidThrows(): void { $query = EmbeddingQueryBuilder::create() - ->withEmbedding($this->createMock(Embedding::class)) + ->withEmbedding(self::createStub(Embedding::class)) ->build(); $query->sortClauses[] = new ContentName(BaseQuery::SORT_ASC); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php b/tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php index 00cbeebdd4..406758cfc1 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php @@ -14,13 +14,13 @@ use Ibexa\Contracts\Core\Repository\Values\User\PolicyCreateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Role; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\Group; /** * Abstract base class for limitation tests. - * - * @group integration - * @group limitation */ +#[Group('integration')] +#[Group('limitation')] abstract class BaseLimitationTestCase extends BaseTestCase { /** diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php index 699b97a12d..58487f0fc2 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php @@ -17,14 +17,14 @@ use Ibexa\Contracts\Core\Repository\Values\User\Role; use Ibexa\Contracts\Core\Repository\Values\User\RoleDraft; use Ibexa\Contracts\Core\Repository\Values\User\User; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use RuntimeException; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ChangeOwnerLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ChangeOwnerLimitation::class)] +#[Group('integration')] +#[Group('limitation')] final class ChangeOwnerLimitationTest extends BaseLimitationTestCase { private PermissionResolver $permissionResolver; @@ -49,7 +49,7 @@ protected function setUp(): void * 2: int[] * }> */ - public function getDataForGrantedAccess(): array + public static function getDataForGrantedAccess(): array { $otherUserId1 = 123; $otherUserId2 = 456; @@ -70,7 +70,7 @@ public function getDataForGrantedAccess(): array * 2: int[] * }> */ - public function getDataForDeniedAccess(): array + public static function getDataForDeniedAccess(): array { $otherUserId1 = 123; $otherUserId2 = 456; @@ -83,10 +83,9 @@ public function getDataForDeniedAccess(): array } /** - * @dataProvider getDataForGrantedAccess - * * @param int[] $limitationValues */ + #[DataProvider('getDataForGrantedAccess')] public function testChangeOwnerLimitationAllowed(?int $ownerId, array $limitationValues): void { $currentUser = $this->createUserVersion1('current_user', null, null, 42); @@ -98,10 +97,9 @@ public function testChangeOwnerLimitationAllowed(?int $ownerId, array $limitatio } /** - * @dataProvider getDataForDeniedAccess - * * @param int[] $limitationValues */ + #[DataProvider('getDataForDeniedAccess')] public function testChangeOwnerLimitationDenied(?int $ownerId, array $limitationValues): void { $currentUser = $this->createUserVersion1('current_user', null, null, 42); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php index 8f7e67f82a..295c8883b4 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ContentTypeLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class ContentTypeLimitationTest extends BaseLimitationTestCase { /** diff --git a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php index 2d68931790..74a334bf16 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php @@ -11,22 +11,29 @@ use Ibexa\Contracts\Core\Limitation\Target\Builder\VersionBuilder; use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\PermissionResolver; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\LocationUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** * Test cases for ContentService APIs calls made by user with LanguageLimitation on chosen policies. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation - * - * @group integration - * @group authorization - * @group language-limited-content-mgm */ +#[CoversClass(LanguageLimitation::class)] +#[CoversMethod(PermissionResolver::class, 'canUser')] +#[CoversMethod(ContentService::class, 'createContentDraft')] +#[CoversMethod(ContentService::class, 'updateContent')] +#[CoversMethod(ContentService::class, 'publishVersion')] +#[Group('integration')] +#[Group('authorization')] +#[Group('language-limited-content-mgm')] class LanguageLimitationTest extends BaseTestCase { /** @var string */ @@ -79,7 +86,7 @@ private function createEditorUserWithLanguageLimitation( * * @see testCreateAndPublishContent */ - public function providerForCreateAndPublishContent(): array + public static function providerForCreateAndPublishContent(): array { // $names (as admin), $allowedTranslationsList (editor limitations) return [ @@ -100,12 +107,11 @@ public function providerForCreateAndPublishContent(): array * @param array $names * @param array $allowedTranslationsList * - * @dataProvider providerForCreateAndPublishContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCreateAndPublishContent')] public function testCreateAndPublishContent(array $names, array $allowedTranslationsList): void { $repository = $this->getRepository(); @@ -124,10 +130,6 @@ public function testCreateAndPublishContent(array $names, array $allowedTranslat } /** - * @covers \Ibexa\Contracts\Core\Repository\PermissionResolver::canUser - * - * @dataProvider providerForCanUserWithLimitationTargets - * * @param array $folderNames names of a folder to create as test content * @param array $allowedTranslationsList a list of language codes of translations a user is allowed to edit * @param \Ibexa\Contracts\Core\Limitation\Target[] $targets @@ -137,6 +139,7 @@ public function testCreateAndPublishContent(array $names, array $allowedTranslat * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForCanUserWithLimitationTargets')] public function testCanUserWithLimitationTargets( string $policyModule, string $policyFunction, @@ -176,7 +179,7 @@ public function testCanUserWithLimitationTargets( * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ - public function providerForCanUserWithLimitationTargets(): array + public static function providerForCanUserWithLimitationTargets(): array { return [ 'Editing a content before translating it' => [ @@ -238,7 +241,7 @@ public function providerForCanUserWithLimitationTargets(): array * @see testPublishVersionIsNotAllowedIfModifiedOtherTranslations * @see testPublishVersion */ - public function providerForPublishVersionWithLanguageLimitation(): array + public static function providerForPublishVersionWithLanguageLimitation(): array { // $names (as admin), $namesToUpdate (as editor), $allowedTranslationsList (editor limitations) return [ @@ -276,17 +279,12 @@ public function providerForPublishVersionWithLanguageLimitation(): array * @param array $namesToUpdate * @param array $allowedTranslationsList * - * @dataProvider providerForPublishVersionWithLanguageLimitation - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Exception */ + #[DataProvider('providerForPublishVersionWithLanguageLimitation')] public function testPublishVersion( array $names, array $namesToUpdate, @@ -330,16 +328,11 @@ public function testPublishVersion( * * @param array $names * - * @dataProvider providerForPublishVersionWithLanguageLimitation - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContentDraft - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * @covers \Ibexa\Contracts\Core\Repository\ContentService::publishVersion - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ + #[DataProvider('providerForPublishVersionWithLanguageLimitation')] public function testPublishVersionIsNotAllowedIfModifiedOtherTranslations(array $names): void { $repository = $this->getRepository(); @@ -495,13 +488,12 @@ public function testPublishVersionTranslationWhenUserHasNoAccessToAllLanguages() } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testCopyContentWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -528,14 +520,13 @@ public function testCopyContentWithLanguageLimitationAndDifferentContentTranslat } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testCopySubtreeWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -566,14 +557,13 @@ public function testCopySubtreeWithLanguageLimitationAndDifferentContentTranslat } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testMoveSubtreeWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -607,13 +597,12 @@ public function testMoveSubtreeWithLanguageLimitationAndDifferentContentTranslat } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testSwapLocationWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -646,13 +635,12 @@ public function testSwapLocationWithLanguageLimitationAndDifferentContentTransla } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testHideLocationWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -683,13 +671,12 @@ public function testHideLocationWithLanguageLimitationAndDifferentContentTransla } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testUnhideLocationWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -720,13 +707,12 @@ public function testUnhideLocationWithLanguageLimitationAndDifferentContentTrans } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testHideContentWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -753,13 +739,12 @@ public function testHideContentWithLanguageLimitationAndDifferentContentTranslat } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testRevealContentWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -786,13 +771,12 @@ public function testRevealContentWithLanguageLimitationAndDifferentContentTransl } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testUpdateLocationWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -823,13 +807,12 @@ public function testUpdateLocationWithLanguageLimitationAndDifferentContentTrans } /** - * @dataProvider providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ForbiddenException */ + #[DataProvider('providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations')] public function testPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations( array $limitationValues, bool $containsAllTranslations @@ -855,7 +838,7 @@ public function testPrepareDataForTestsWithLanguageLimitationAndDifferentContent /** * @return iterable, bool}> */ - public function providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations(): array + public static function providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations(): array { return [ [[self::GER_DE], false], diff --git a/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php index f104f35428..e7bd0e61a1 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php @@ -9,19 +9,16 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(LocationLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class LocationLimitationTest extends BaseLimitationTestCase { /** * Tests a LocationLimitation. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation */ public function testLocationLimitationAllow() { diff --git a/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php index 4d7244f068..7df3d0eda1 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(NewObjectStateLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class NewObjectStateLimitationTest extends BaseLimitationTestCase { public function testNewObjectStateLimitationAllow() @@ -58,7 +57,6 @@ public function testNewObjectStateLimitationAllow() /** * Tests a NewObjectStateLimitation. * - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation * * @throws \ErrorException if a mandatory test fixture not exists. */ diff --git a/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php index 9e9ce53522..272013749f 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewSectionLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewSectionLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(NewSectionLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class NewSectionLimitationTest extends BaseLimitationTestCase { public function testNewSectionLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php index 38d419e755..2aa1d64620 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php @@ -17,14 +17,14 @@ use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; - -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation - * @covers \Ibexa\Core\Limitation\ObjectStateLimitationType - * - * @group integration - * @group limitation - */ +use Ibexa\Core\Limitation\ObjectStateLimitationType; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; + +#[CoversClass(ObjectStateLimitation::class)] +#[CoversClass(ObjectStateLimitationType::class)] +#[Group('integration')] +#[Group('limitation')] class ObjectStateLimitationTest extends BaseLimitationTestCase { public const OBJECT_STATE_LOCK_GROUP_ID = 2; diff --git a/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php index 349629a43b..5f78e5a7db 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php @@ -10,13 +10,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\OwnerLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\OwnerLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(OwnerLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class OwnerLimitationTest extends BaseLimitationTestCase { public function testOwnerLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php index 1220b0d357..d152e8a2d2 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php @@ -10,13 +10,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ParentContentTypeLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class ParentContentTypeLimitationTest extends BaseLimitationTestCase { public function testParentContentTypeLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php index 16586856f3..85ac78d76b 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php @@ -10,13 +10,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentDepthLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentDepthLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ParentDepthLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class ParentDepthLimitationTest extends BaseLimitationTestCase { public function testParentDepthLimitationForbid() @@ -101,9 +101,8 @@ public function testParentDepthLimitationAllow() /** * Tests a combination of ParentDepthLimitation and ContentTypeLimitation. - * - * @depends testParentDepthLimitationAllow */ + #[Depends('testParentDepthLimitationAllow')] public function testParentDepthLimitationAllowPublish() { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php index bd02961255..796e785634 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentOwnerLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentOwnerLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ParentOwnerLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class ParentOwnerLimitationTest extends BaseLimitationTestCase { public function testParentOwnerLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php index 9b9a428049..3de31a7135 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentUserGroupLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentUserGroupLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(ParentUserGroupLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class ParentUserGroupLimitationTest extends BaseLimitationTestCase { public function testParentUserGroupLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php index 100e2f75bb..9fc3ffd2a8 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php @@ -14,16 +14,17 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\RoleCreateStruct; use Ibexa\Contracts\Core\Repository\Values\User\UserGroup; +use PHPUnit\Framework\Attributes\DataProvider; class RolePolicyLimitationTest extends BaseLimitationTestCase { /** * Data provider for {@see testRolePoliciesWithOverlappingLimitations}. */ - public function providerForTestRolePoliciesWithOverlappingLimitations() + public static function providerForTestRolePoliciesWithOverlappingLimitations() { // get actual locations count for the given subtree when user is (by default) an admin - $actualSubtreeLocationsCount = $this->getSubtreeLocationsCount('/1/2/'); + $actualSubtreeLocationsCount = static::getSubtreeLocationsCountForFreshRepository('/1/2/'); self::assertGreaterThan(0, $actualSubtreeLocationsCount); return [ @@ -38,12 +39,12 @@ public function providerForTestRolePoliciesWithOverlappingLimitations() /** * Test if role with wider policy is not overlapped by limitation (uncovered in EZP-26476). * - * @dataProvider providerForTestRolePoliciesWithOverlappingLimitations * * @param int $expectedSubtreeLocationsCount * @param string $widePolicyModule * @param string $widePolicyFunction */ + #[DataProvider('providerForTestRolePoliciesWithOverlappingLimitations')] public function testRolePoliciesWithOverlappingLimitations( $expectedSubtreeLocationsCount, $widePolicyModule, @@ -114,6 +115,25 @@ protected function getSubtreeLocationsCount($subtreePathString) return $result->totalCount; } + /** + * Same as {@see self::getSubtreeLocationsCount()}, but callable from the static data + * provider: resolves an independent, freshly-initialized Repository rather than reusing + * the test instance's cached one (there is no test instance yet at provider time). + * + * @param string $subtreePathString + * + * @return int|null + */ + protected static function getSubtreeLocationsCountForFreshRepository(string $subtreePathString) + { + $criterion = new Criterion\Subtree($subtreePathString); + $query = new LocationQuery(['filter' => $criterion]); + + $result = static::resolveRepository()->getSearchService()->findLocations($query); + + return $result->totalCount; + } + /** * Create test User in the given User Group. * diff --git a/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php index 14830c8d3f..71cb38cd7e 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(SectionLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class SectionLimitationTest extends BaseLimitationTestCase { public function testSectionLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php index 9f4b92bd15..7c3fdcd9f3 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php @@ -10,13 +10,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\StatusLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\StatusLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(StatusLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class StatusLimitationTest extends BaseLimitationTestCase { public function testStatusLimitationAllow() diff --git a/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php index ff971554da..a2695cb8a0 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(SubtreeLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class SubtreeLimitationTest extends BaseLimitationTestCase { /** diff --git a/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php index dbd5ed3e34..80dfbfdb3f 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\UserGroupLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Contracts\Core\Repository\Values\User\UserGroup; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\User\Limitation\UserGroupLimitation - * - * @group integration - * @group limitation - */ +#[CoversClass(UserGroupLimitation::class)] +#[Group('integration')] +#[Group('limitation')] class UserGroupLimitationTest extends BaseLimitationTestCase { public function testUserGroupLimitationAllow() diff --git a/tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php b/tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php index e2a47c5186..fc4c225241 100644 --- a/tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php +++ b/tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php @@ -12,6 +12,7 @@ use Ibexa\Core\FieldType\User\UserStorage\Gateway; use Ibexa\Core\Repository\Values\User\User; use Ibexa\Tests\Integration\Core\BaseCoreFieldTypeIntegrationTestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * User Field Type external storage gateway tests. @@ -20,7 +21,7 @@ abstract class UserStorageGatewayTestCase extends BaseCoreFieldTypeIntegrationTe { abstract protected function getGateway(): Gateway; - public function providerForGetFieldData(): array + public static function providerForGetFieldData(): array { $expectedUserData = [ 10 => [ @@ -55,18 +56,14 @@ public function providerForGetFieldData(): array ]; } - /** - * @dataProvider providerForGetFieldData - */ + #[DataProvider('providerForGetFieldData')] public function testGetFieldData(?int $fieldId, ?int $userId, array $expectedUserData): void { $data = $this->getGateway()->getFieldData($fieldId, $userId); self::assertEquals($expectedUserData, $data); } - /** - * @dataProvider getDataForTestCountUsersWithUnsupportedHashType - */ + #[DataProvider('getDataForTestCountUsersWithUnsupportedHashType')] public function testCountUsersWithUnsupportedHashType( int $expectedCount, ?string $fixtureFilePath @@ -80,7 +77,7 @@ public function testCountUsersWithUnsupportedHashType( self::assertEquals($expectedCount, $actualCount); } - public function getDataForTestCountUsersWithUnsupportedHashType(): iterable + public static function getDataForTestCountUsersWithUnsupportedHashType(): iterable { yield 'no unsupported hashes' => [ 0, diff --git a/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php b/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php index 7d30cdcbf2..790dffe71e 100644 --- a/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php @@ -10,6 +10,7 @@ use Ibexa\Core\Base\Container\Compiler\FieldTypeRegistryPass; use Ibexa\Core\FieldType\FieldTypeRegistry; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -33,9 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new FieldTypeRegistryPass()); } - /** - * @dataProvider tagsProvider - */ + #[DataProvider('tagsProvider')] public function testRegisterFieldType(string $tag) { $fieldTypeIdentifier = 'field_type_identifier'; @@ -54,10 +53,9 @@ public function testRegisterFieldType(string $tag) } /** - * @dataProvider tagsProvider - * * @param string $tag */ + #[DataProvider('tagsProvider')] public function testRegisterFieldTypeNoAlias(string $tag) { $this->expectException(\LogicException::class); @@ -77,7 +75,7 @@ public function testRegisterFieldTypeNoAlias(string $tag) ); } - public function tagsProvider(): array + public static function tagsProvider(): array { return [ [FieldTypeRegistryPass::FIELD_TYPE_SERVICE_TAG], diff --git a/tests/lib/Base/Container/Compiler/Search/Legacy/CriteriaConverterPassTest.php b/tests/lib/Base/Container/Compiler/Search/Legacy/CriteriaConverterPassTest.php index d4b85d14b8..3e6b931665 100644 --- a/tests/lib/Base/Container/Compiler/Search/Legacy/CriteriaConverterPassTest.php +++ b/tests/lib/Base/Container/Compiler/Search/Legacy/CriteriaConverterPassTest.php @@ -10,6 +10,7 @@ use Ibexa\Core\Base\Container\Compiler\Search\Legacy\CriteriaConverterPass; use Ibexa\Core\Persistence\Legacy\URL\Query\CriteriaConverter; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -27,9 +28,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new CriteriaConverterPass()); } - /** - * @dataProvider provideDescribedServiceToTagName - */ + #[DataProvider('provideDescribedServiceToTagName')] public function testAddHandlers(string $serviceId, string $tag): void { $this->setDefinition( @@ -50,9 +49,7 @@ public function testAddHandlers(string $serviceId, string $tag): void ); } - /** - * @dataProvider provideDescribedServiceToTagName - */ + #[DataProvider('provideDescribedServiceToTagName')] public function testAddContentHandlersWithPriority(string $serviceId, string $tag): void { $this->setDefinition( diff --git a/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php b/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php index 3711c3b798..4996fbe608 100644 --- a/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php @@ -11,6 +11,7 @@ use Ibexa\Core\Persistence\Legacy\Content\StorageRegistry; use Ibexa\Tests\Core\Base\Container\Compiler\Stubs\GatewayBasedStorageHandler; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; @@ -28,9 +29,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new ExternalStorageRegistryPass()); } - /** - * @dataProvider externalStorageHandlerTagsProvider - */ + #[DataProvider('externalStorageHandlerTagsProvider')] public function testRegisterExternalStorageHandler(string $tag) { $def = new Definition(); @@ -48,9 +47,7 @@ public function testRegisterExternalStorageHandler(string $tag) ); } - /** - * @dataProvider externalStorageHandlerTagsProvider - */ + #[DataProvider('externalStorageHandlerTagsProvider')] public function testRegisterExternalStorageHandlerNoAlias(string $tag) { $this->expectException(\LogicException::class); @@ -70,9 +67,7 @@ public function testRegisterExternalStorageHandlerNoAlias(string $tag) ); } - /** - * @dataProvider externalStorageHandlerGatewayTagsProvider - */ + #[DataProvider('externalStorageHandlerGatewayTagsProvider')] public function testRegisterExternalStorageHandlerWithGateway(string $tag) { $handlerDef = new Definition(); @@ -102,9 +97,7 @@ public function testRegisterExternalStorageHandlerWithGateway(string $tag) ); } - /** - * @dataProvider externalStorageHandlerGatewayTagsProvider - */ + #[DataProvider('externalStorageHandlerGatewayTagsProvider')] public function testRegisterExternalStorageHandlerWithoutRegisteredGateway(string $tag) { $this->expectException(\LogicException::class); @@ -127,9 +120,7 @@ public function testRegisterExternalStorageHandlerWithoutRegisteredGateway(strin ); } - /** - * @dataProvider externalStorageHandlerGatewayTagsProvider - */ + #[DataProvider('externalStorageHandlerGatewayTagsProvider')] public function testRegisterExternalStorageHandlerWithGatewayNoAlias(string $tag) { $this->expectException(\LogicException::class); @@ -158,9 +149,7 @@ public function testRegisterExternalStorageHandlerWithGatewayNoAlias(string $tag ); } - /** - * @dataProvider externalStorageHandlerGatewayTagsProvider - */ + #[DataProvider('externalStorageHandlerGatewayTagsProvider')] public function testRegisterExternalStorageHandlerWithGatewayNoIdentifier(string $tag) { $this->expectException(\LogicException::class); @@ -189,14 +178,14 @@ public function testRegisterExternalStorageHandlerWithGatewayNoIdentifier(string ); } - public function externalStorageHandlerTagsProvider(): array + public static function externalStorageHandlerTagsProvider(): array { return [ [ExternalStorageRegistryPass::EXTERNAL_STORAGE_HANDLER_SERVICE_TAG], ]; } - public function externalStorageHandlerGatewayTagsProvider(): array + public static function externalStorageHandlerGatewayTagsProvider(): array { return [ [ExternalStorageRegistryPass::EXTERNAL_STORAGE_HANDLER_GATEWAY_SERVICE_TAG], diff --git a/tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php b/tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php index 143e244563..7c0408a065 100644 --- a/tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php +++ b/tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php @@ -18,17 +18,14 @@ final class DeprecationErrorCollector /** @var array */ private $errors = []; - /** @var callable|null */ - private $previousErrorHandler; - public function register(): void { - $this->previousErrorHandler = set_error_handler($this, E_USER_DEPRECATED); + set_error_handler($this, E_USER_DEPRECATED); } public function unregister(): void { - set_error_handler($this->previousErrorHandler); + restore_error_handler(); } public function getErrors(): array diff --git a/tests/lib/Base/Exceptions/ContentFieldValidationExceptionTest.php b/tests/lib/Base/Exceptions/ContentFieldValidationExceptionTest.php index 730b661b23..609d9e7f1d 100644 --- a/tests/lib/Base/Exceptions/ContentFieldValidationExceptionTest.php +++ b/tests/lib/Base/Exceptions/ContentFieldValidationExceptionTest.php @@ -11,10 +11,9 @@ use Ibexa\Core\Base\Exceptions\ContentFieldValidationException; use Ibexa\Core\FieldType\ValidationError; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Base\Exceptions\ContentFieldValidationException - */ +#[CoversClass(ContentFieldValidationException::class)] final class ContentFieldValidationExceptionTest extends TestCase { /** diff --git a/tests/lib/Base/Exceptions/UnauthorizedExceptionTest.php b/tests/lib/Base/Exceptions/UnauthorizedExceptionTest.php index 9504b469ae..5e99e99895 100644 --- a/tests/lib/Base/Exceptions/UnauthorizedExceptionTest.php +++ b/tests/lib/Base/Exceptions/UnauthorizedExceptionTest.php @@ -9,17 +9,15 @@ namespace Ibexa\Tests\Core\Base\Exceptions; use Ibexa\Core\Base\Exceptions\UnauthorizedException; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Stringable; -/** - * @covers \Ibexa\Core\Base\Exceptions\UnauthorizedException - */ +#[CoversClass(UnauthorizedException::class)] final class UnauthorizedExceptionTest extends TestCase { - /** - * @dataProvider getDataForTestConstructor - */ + #[DataProvider('getDataForTestConstructor')] public function testConstructor(UnauthorizedException $exception, string $expectedMessage): void { self::assertSame($expectedMessage, $exception->getMessage()); diff --git a/tests/lib/Container/Encore/ConfigurationDumperTest.php b/tests/lib/Container/Encore/ConfigurationDumperTest.php index 8876af9084..9d9abec636 100644 --- a/tests/lib/Container/Encore/ConfigurationDumperTest.php +++ b/tests/lib/Container/Encore/ConfigurationDumperTest.php @@ -9,13 +9,12 @@ namespace Ibexa\Tests\Core\Container\Encore; use Ibexa\Contracts\Core\Container\Encore\ConfigurationDumper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\Filesystem\Filesystem; -/** - * @covers \Ibexa\Contracts\Core\Container\Encore\ConfigurationDumper - */ +#[CoversClass(ConfigurationDumper::class)] final class ConfigurationDumperTest extends TestCase { private const string PROJECT_DIR = '/var/io-tests/'; diff --git a/tests/lib/Event/BookmarkServiceTest.php b/tests/lib/Event/BookmarkServiceTest.php index deb2fff3bc..fbc41b3fd9 100644 --- a/tests/lib/Event/BookmarkServiceTest.php +++ b/tests/lib/Event/BookmarkServiceTest.php @@ -25,10 +25,10 @@ public function testCreateBookmarkEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(BookmarkServiceInterface::class); + $innerServiceMock = self::createStub(BookmarkServiceInterface::class); $service = new BookmarkService($innerServiceMock, $traceableEventDispatcher); $service->createBookmark(...$parameters); @@ -50,10 +50,10 @@ public function testCreateBookmarkStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(BookmarkServiceInterface::class); + $innerServiceMock = self::createStub(BookmarkServiceInterface::class); $traceableEventDispatcher->addListener(BeforeCreateBookmarkEvent::class, static function (BeforeCreateBookmarkEvent $event) { $event->stopPropagation(); @@ -82,10 +82,10 @@ public function testDeleteBookmarkEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(BookmarkServiceInterface::class); + $innerServiceMock = self::createStub(BookmarkServiceInterface::class); $service = new BookmarkService($innerServiceMock, $traceableEventDispatcher); $service->deleteBookmark(...$parameters); @@ -107,10 +107,10 @@ public function testDeleteBookmarkStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(BookmarkServiceInterface::class); + $innerServiceMock = self::createStub(BookmarkServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteBookmarkEvent::class, static function (BeforeDeleteBookmarkEvent $event) { $event->stopPropagation(); diff --git a/tests/lib/Event/ContentServiceTest.php b/tests/lib/Event/ContentServiceTest.php index 7f462b9d0b..50a73d203f 100644 --- a/tests/lib/Event/ContentServiceTest.php +++ b/tests/lib/Event/ContentServiceTest.php @@ -55,7 +55,7 @@ public function testDeleteContentEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; $locations = []; @@ -83,7 +83,7 @@ public function testReturnDeleteContentResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; $locations = []; @@ -117,7 +117,7 @@ public function testDeleteContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; $locations = []; @@ -154,12 +154,12 @@ public function testCopyContentEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), - $this->createMock(VersionInfo::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), + self::createStub(VersionInfo::class), ]; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('copyContent')->willReturn($content); @@ -184,13 +184,13 @@ public function testReturnCopyContentResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), - $this->createMock(VersionInfo::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), + self::createStub(VersionInfo::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('copyContent')->willReturn($content); @@ -220,13 +220,13 @@ public function testCopyContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), - $this->createMock(VersionInfo::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), + self::createStub(VersionInfo::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('copyContent')->willReturn($content); @@ -259,11 +259,11 @@ public function testUpdateContentEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentUpdateStruct::class), + self::createStub(VersionInfo::class), + self::createStub(ContentUpdateStruct::class), ]; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContent')->willReturn($content); @@ -288,12 +288,12 @@ public function testReturnUpdateContentResultInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentUpdateStruct::class), + self::createStub(VersionInfo::class), + self::createStub(ContentUpdateStruct::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContent')->willReturn($content); @@ -323,12 +323,12 @@ public function testUpdateContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentUpdateStruct::class), + self::createStub(VersionInfo::class), + self::createStub(ContentUpdateStruct::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContent')->willReturn($content); @@ -361,11 +361,11 @@ public function testDeleteRelationEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $service = new ContentService($innerServiceMock, $traceableEventDispatcher); $service->deleteRelation(...$parameters); @@ -387,11 +387,11 @@ public function testDeleteRelationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteRelationEvent::class, static function (BeforeDeleteRelationEvent $event) { $event->stopPropagation(); @@ -420,11 +420,11 @@ public function testCreateContentEvents() ); $parameters = [ - $this->createMock(ContentCreateStruct::class), + self::createStub(ContentCreateStruct::class), [], ]; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContent')->willReturn($content); @@ -449,12 +449,12 @@ public function testReturnCreateContentResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentCreateStruct::class), + self::createStub(ContentCreateStruct::class), [], ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContent')->willReturn($content); @@ -484,12 +484,12 @@ public function testCreateContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentCreateStruct::class), + self::createStub(ContentCreateStruct::class), [], ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContent')->willReturn($content); @@ -522,10 +522,10 @@ public function testHideContentEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $service = new ContentService($innerServiceMock, $traceableEventDispatcher); $service->hideContent(...$parameters); @@ -547,10 +547,10 @@ public function testHideContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $traceableEventDispatcher->addListener(BeforeHideContentEvent::class, static function (BeforeHideContentEvent $event) { $event->stopPropagation(); @@ -579,10 +579,10 @@ public function testDeleteVersionEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $service = new ContentService($innerServiceMock, $traceableEventDispatcher); $service->deleteVersion(...$parameters); @@ -604,10 +604,10 @@ public function testDeleteVersionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteVersionEvent::class, static function (BeforeDeleteVersionEvent $event) { $event->stopPropagation(); @@ -636,11 +636,11 @@ public function testAddRelationEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $relation = $this->createMock(Relation::class); + $relation = self::createStub(Relation::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('addRelation')->willReturn($relation); @@ -665,12 +665,12 @@ public function testReturnAddRelationResultInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $relation = $this->createMock(Relation::class); - $eventRelation = $this->createMock(Relation::class); + $relation = self::createStub(Relation::class); + $eventRelation = self::createStub(Relation::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('addRelation')->willReturn($relation); @@ -700,12 +700,12 @@ public function testAddRelationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $relation = $this->createMock(Relation::class); - $eventRelation = $this->createMock(Relation::class); + $relation = self::createStub(Relation::class); + $eventRelation = self::createStub(Relation::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('addRelation')->willReturn($relation); @@ -738,11 +738,11 @@ public function testUpdateContentMetadataEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ContentMetadataUpdateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(ContentMetadataUpdateStruct::class), ]; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContentMetadata')->willReturn($content); @@ -767,12 +767,12 @@ public function testReturnUpdateContentMetadataResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ContentMetadataUpdateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(ContentMetadataUpdateStruct::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContentMetadata')->willReturn($content); @@ -802,12 +802,12 @@ public function testUpdateContentMetadataStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ContentMetadataUpdateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(ContentMetadataUpdateStruct::class), ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('updateContentMetadata')->willReturn($content); @@ -840,11 +840,11 @@ public function testDeleteTranslationEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), 'random_value_5cff79c31a2f31.74205767', ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $service = new ContentService($innerServiceMock, $traceableEventDispatcher); $service->deleteTranslation(...$parameters); @@ -866,11 +866,11 @@ public function testDeleteTranslationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), 'random_value_5cff79c31a2fc0.71971617', ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteTranslationEvent::class, static function (BeforeDeleteTranslationEvent $event) { $event->stopPropagation(); @@ -899,11 +899,11 @@ public function testPublishVersionEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), [], ]; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('publishVersion')->willReturn($content); @@ -928,12 +928,12 @@ public function testReturnPublishVersionResultInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), [], ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('publishVersion')->willReturn($content); @@ -963,12 +963,12 @@ public function testPublishVersionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), [], ]; - $content = $this->createMock(Content::class); - $eventContent = $this->createMock(Content::class); + $content = self::createStub(Content::class); + $eventContent = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('publishVersion')->willReturn($content); @@ -1001,12 +1001,12 @@ public function testCreateContentDraftEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(VersionInfo::class), - $this->createMock(User::class), + self::createStub(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(User::class), ]; - $contentDraft = $this->createMock(Content::class); + $contentDraft = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContentDraft')->willReturn($contentDraft); @@ -1031,13 +1031,13 @@ public function testReturnCreateContentDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(VersionInfo::class), - $this->createMock(User::class), + self::createStub(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(User::class), ]; - $contentDraft = $this->createMock(Content::class); - $eventContentDraft = $this->createMock(Content::class); + $contentDraft = self::createStub(Content::class); + $eventContentDraft = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContentDraft')->willReturn($contentDraft); @@ -1067,13 +1067,13 @@ public function testCreateContentDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(VersionInfo::class), - $this->createMock(User::class), + self::createStub(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(User::class), ]; - $contentDraft = $this->createMock(Content::class); - $eventContentDraft = $this->createMock(Content::class); + $contentDraft = self::createStub(Content::class); + $eventContentDraft = self::createStub(Content::class); $innerServiceMock = $this->createMock(ContentServiceInterface::class); $innerServiceMock->method('createContentDraft')->willReturn($contentDraft); @@ -1106,10 +1106,10 @@ public function testRevealContentEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $service = new ContentService($innerServiceMock, $traceableEventDispatcher); $service->revealContent(...$parameters); @@ -1131,10 +1131,10 @@ public function testRevealContentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), ]; - $innerServiceMock = $this->createMock(ContentServiceInterface::class); + $innerServiceMock = self::createStub(ContentServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRevealContentEvent::class, static function (BeforeRevealContentEvent $event) { $event->stopPropagation(); diff --git a/tests/lib/Event/ContentTypeServiceTest.php b/tests/lib/Event/ContentTypeServiceTest.php index 538b51683c..b076aa1e7b 100644 --- a/tests/lib/Event/ContentTypeServiceTest.php +++ b/tests/lib/Event/ContentTypeServiceTest.php @@ -61,11 +61,11 @@ public function testAddFieldDefinitionEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinitionCreateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinitionCreateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->addFieldDefinition(...$parameters); @@ -87,11 +87,11 @@ public function testAddFieldDefinitionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinitionCreateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinitionCreateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAddFieldDefinitionEvent::class, static function (BeforeAddFieldDefinitionEvent $event) { $event->stopPropagation(); @@ -120,10 +120,10 @@ public function testDeleteContentTypeGroupEvents() ); $parameters = [ - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->deleteContentTypeGroup(...$parameters); @@ -145,10 +145,10 @@ public function testDeleteContentTypeGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteContentTypeGroupEvent::class, static function (BeforeDeleteContentTypeGroupEvent $event) { $event->stopPropagation(); @@ -177,10 +177,10 @@ public function testCreateContentTypeDraftEvents() ); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeDraft')->willReturn($contentTypeDraft); @@ -205,11 +205,11 @@ public function testReturnCreateContentTypeDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeDraft')->willReturn($contentTypeDraft); @@ -239,11 +239,11 @@ public function testCreateContentTypeDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeDraft')->willReturn($contentTypeDraft); @@ -276,10 +276,10 @@ public function testCreateContentTypeGroupEvents() ); $parameters = [ - $this->createMock(ContentTypeGroupCreateStruct::class), + self::createStub(ContentTypeGroupCreateStruct::class), ]; - $contentTypeGroup = $this->createMock(ContentTypeGroup::class); + $contentTypeGroup = self::createStub(ContentTypeGroup::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeGroup')->willReturn($contentTypeGroup); @@ -304,11 +304,11 @@ public function testReturnCreateContentTypeGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeGroupCreateStruct::class), + self::createStub(ContentTypeGroupCreateStruct::class), ]; - $contentTypeGroup = $this->createMock(ContentTypeGroup::class); - $eventContentTypeGroup = $this->createMock(ContentTypeGroup::class); + $contentTypeGroup = self::createStub(ContentTypeGroup::class); + $eventContentTypeGroup = self::createStub(ContentTypeGroup::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeGroup')->willReturn($contentTypeGroup); @@ -338,11 +338,11 @@ public function testCreateContentTypeGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeGroupCreateStruct::class), + self::createStub(ContentTypeGroupCreateStruct::class), ]; - $contentTypeGroup = $this->createMock(ContentTypeGroup::class); - $eventContentTypeGroup = $this->createMock(ContentTypeGroup::class); + $contentTypeGroup = self::createStub(ContentTypeGroup::class); + $eventContentTypeGroup = self::createStub(ContentTypeGroup::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentTypeGroup')->willReturn($contentTypeGroup); @@ -375,11 +375,11 @@ public function testUpdateContentTypeGroupEvents() ); $parameters = [ - $this->createMock(ContentTypeGroup::class), - $this->createMock(ContentTypeGroupUpdateStruct::class), + self::createStub(ContentTypeGroup::class), + self::createStub(ContentTypeGroupUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->updateContentTypeGroup(...$parameters); @@ -401,11 +401,11 @@ public function testUpdateContentTypeGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeGroup::class), - $this->createMock(ContentTypeGroupUpdateStruct::class), + self::createStub(ContentTypeGroup::class), + self::createStub(ContentTypeGroupUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeUpdateContentTypeGroupEvent::class, static function (BeforeUpdateContentTypeGroupEvent $event) { $event->stopPropagation(); @@ -434,11 +434,11 @@ public function testCreateContentTypeEvents() ); $parameters = [ - $this->createMock(ContentTypeCreateStruct::class), + self::createStub(ContentTypeCreateStruct::class), [], ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentType')->willReturn($contentTypeDraft); @@ -463,12 +463,12 @@ public function testReturnCreateContentTypeResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeCreateStruct::class), + self::createStub(ContentTypeCreateStruct::class), [], ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentType')->willReturn($contentTypeDraft); @@ -498,12 +498,12 @@ public function testCreateContentTypeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeCreateStruct::class), + self::createStub(ContentTypeCreateStruct::class), [], ]; - $contentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $contentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('createContentType')->willReturn($contentTypeDraft); @@ -536,11 +536,11 @@ public function testRemoveContentTypeTranslationEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), 'random_value_5cff79c318f864.57583321', ]; - $newContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $newContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('removeContentTypeTranslation')->willReturn($newContentTypeDraft); @@ -565,12 +565,12 @@ public function testReturnRemoveContentTypeTranslationResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), 'random_value_5cff79c318f913.11826610', ]; - $newContentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventNewContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $newContentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventNewContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('removeContentTypeTranslation')->willReturn($newContentTypeDraft); @@ -600,12 +600,12 @@ public function testRemoveContentTypeTranslationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), 'random_value_5cff79c318f983.61112462', ]; - $newContentTypeDraft = $this->createMock(ContentTypeDraft::class); - $eventNewContentTypeDraft = $this->createMock(ContentTypeDraft::class); + $newContentTypeDraft = self::createStub(ContentTypeDraft::class); + $eventNewContentTypeDraft = self::createStub(ContentTypeDraft::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('removeContentTypeTranslation')->willReturn($newContentTypeDraft); @@ -638,11 +638,11 @@ public function testUnassignContentTypeGroupEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->unassignContentTypeGroup(...$parameters); @@ -664,11 +664,11 @@ public function testUnassignContentTypeGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeUnassignContentTypeGroupEvent::class, static function (BeforeUnassignContentTypeGroupEvent $event) { $event->stopPropagation(); @@ -697,10 +697,10 @@ public function testPublishContentTypeDraftEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->publishContentTypeDraft(...$parameters); @@ -722,10 +722,10 @@ public function testPublishContentTypeDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforePublishContentTypeDraftEvent::class, static function (BeforePublishContentTypeDraftEvent $event) { $event->stopPropagation(); @@ -754,12 +754,12 @@ public function testUpdateFieldDefinitionEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), - $this->createMock(FieldDefinitionUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), + self::createStub(FieldDefinitionUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->updateFieldDefinition(...$parameters); @@ -781,12 +781,12 @@ public function testUpdateFieldDefinitionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), - $this->createMock(FieldDefinitionUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), + self::createStub(FieldDefinitionUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeUpdateFieldDefinitionEvent::class, static function (BeforeUpdateFieldDefinitionEvent $event) { $event->stopPropagation(); @@ -815,11 +815,11 @@ public function testRemoveFieldDefinitionEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->removeFieldDefinition(...$parameters); @@ -841,11 +841,11 @@ public function testRemoveFieldDefinitionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRemoveFieldDefinitionEvent::class, static function (BeforeRemoveFieldDefinitionEvent $event) { $event->stopPropagation(); @@ -874,11 +874,11 @@ public function testAssignContentTypeGroupEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->assignContentTypeGroup(...$parameters); @@ -900,11 +900,11 @@ public function testAssignContentTypeGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignContentTypeGroupEvent::class, static function (BeforeAssignContentTypeGroupEvent $event) { $event->stopPropagation(); @@ -933,11 +933,11 @@ public function testUpdateContentTypeDraftEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(ContentTypeUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(ContentTypeUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->updateContentTypeDraft(...$parameters); @@ -959,11 +959,11 @@ public function testUpdateContentTypeDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(ContentTypeUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(ContentTypeUpdateStruct::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeUpdateContentTypeDraftEvent::class, static function (BeforeUpdateContentTypeDraftEvent $event) { $event->stopPropagation(); @@ -992,10 +992,10 @@ public function testDeleteContentTypeEvents() ); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $service = new ContentTypeService($innerServiceMock, $traceableEventDispatcher); $service->deleteContentType(...$parameters); @@ -1017,10 +1017,10 @@ public function testDeleteContentTypeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; - $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); + $innerServiceMock = self::createStub(ContentTypeServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteContentTypeEvent::class, static function (BeforeDeleteContentTypeEvent $event) { $event->stopPropagation(); @@ -1049,11 +1049,11 @@ public function testCopyContentTypeEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(User::class), + self::createStub(ContentType::class), + self::createStub(User::class), ]; - $contentTypeCopy = $this->createMock(ContentType::class); + $contentTypeCopy = self::createStub(ContentType::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('copyContentType')->willReturn($contentTypeCopy); @@ -1078,12 +1078,12 @@ public function testReturnCopyContentTypeResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(User::class), + self::createStub(ContentType::class), + self::createStub(User::class), ]; - $contentTypeCopy = $this->createMock(ContentType::class); - $eventContentTypeCopy = $this->createMock(ContentType::class); + $contentTypeCopy = self::createStub(ContentType::class); + $eventContentTypeCopy = self::createStub(ContentType::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('copyContentType')->willReturn($contentTypeCopy); @@ -1113,12 +1113,12 @@ public function testCopyContentTypeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(User::class), + self::createStub(ContentType::class), + self::createStub(User::class), ]; - $contentTypeCopy = $this->createMock(ContentType::class); - $eventContentTypeCopy = $this->createMock(ContentType::class); + $contentTypeCopy = self::createStub(ContentType::class); + $eventContentTypeCopy = self::createStub(ContentType::class); $innerServiceMock = $this->createMock(ContentTypeServiceInterface::class); $innerServiceMock->method('copyContentType')->willReturn($contentTypeCopy); diff --git a/tests/lib/Event/LanguageServiceTest.php b/tests/lib/Event/LanguageServiceTest.php index b17a42c823..280460455f 100644 --- a/tests/lib/Event/LanguageServiceTest.php +++ b/tests/lib/Event/LanguageServiceTest.php @@ -32,10 +32,10 @@ public function testDeleteLanguageEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $innerServiceMock = $this->createMock(LanguageServiceInterface::class); + $innerServiceMock = self::createStub(LanguageServiceInterface::class); $service = new LanguageService($innerServiceMock, $traceableEventDispatcher); $service->deleteLanguage(...$parameters); @@ -57,10 +57,10 @@ public function testDeleteLanguageStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $innerServiceMock = $this->createMock(LanguageServiceInterface::class); + $innerServiceMock = self::createStub(LanguageServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteLanguageEvent::class, static function (BeforeDeleteLanguageEvent $event) { $event->stopPropagation(); @@ -89,10 +89,10 @@ public function testCreateLanguageEvents() ); $parameters = [ - $this->createMock(LanguageCreateStruct::class), + self::createStub(LanguageCreateStruct::class), ]; - $language = $this->createMock(Language::class); + $language = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('createLanguage')->willReturn($language); @@ -117,11 +117,11 @@ public function testReturnCreateLanguageResultInBeforeEvents() ); $parameters = [ - $this->createMock(LanguageCreateStruct::class), + self::createStub(LanguageCreateStruct::class), ]; - $language = $this->createMock(Language::class); - $eventLanguage = $this->createMock(Language::class); + $language = self::createStub(Language::class); + $eventLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('createLanguage')->willReturn($language); @@ -151,11 +151,11 @@ public function testCreateLanguageStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(LanguageCreateStruct::class), + self::createStub(LanguageCreateStruct::class), ]; - $language = $this->createMock(Language::class); - $eventLanguage = $this->createMock(Language::class); + $language = self::createStub(Language::class); + $eventLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('createLanguage')->willReturn($language); @@ -188,11 +188,11 @@ public function testUpdateLanguageNameEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), 'random_value_5cff79c3161276.87987683', ]; - $updatedLanguage = $this->createMock(Language::class); + $updatedLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('updateLanguageName')->willReturn($updatedLanguage); @@ -217,12 +217,12 @@ public function testReturnUpdateLanguageNameResultInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), 'random_value_5cff79c3161312.94068030', ]; - $updatedLanguage = $this->createMock(Language::class); - $eventUpdatedLanguage = $this->createMock(Language::class); + $updatedLanguage = self::createStub(Language::class); + $eventUpdatedLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('updateLanguageName')->willReturn($updatedLanguage); @@ -252,12 +252,12 @@ public function testUpdateLanguageNameStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), 'random_value_5cff79c3161386.01414999', ]; - $updatedLanguage = $this->createMock(Language::class); - $eventUpdatedLanguage = $this->createMock(Language::class); + $updatedLanguage = self::createStub(Language::class); + $eventUpdatedLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('updateLanguageName')->willReturn($updatedLanguage); @@ -290,10 +290,10 @@ public function testDisableLanguageEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $disabledLanguage = $this->createMock(Language::class); + $disabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('disableLanguage')->willReturn($disabledLanguage); @@ -318,11 +318,11 @@ public function testReturnDisableLanguageResultInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $disabledLanguage = $this->createMock(Language::class); - $eventDisabledLanguage = $this->createMock(Language::class); + $disabledLanguage = self::createStub(Language::class); + $eventDisabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('disableLanguage')->willReturn($disabledLanguage); @@ -352,11 +352,11 @@ public function testDisableLanguageStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $disabledLanguage = $this->createMock(Language::class); - $eventDisabledLanguage = $this->createMock(Language::class); + $disabledLanguage = self::createStub(Language::class); + $eventDisabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('disableLanguage')->willReturn($disabledLanguage); @@ -389,10 +389,10 @@ public function testEnableLanguageEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $enabledLanguage = $this->createMock(Language::class); + $enabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('enableLanguage')->willReturn($enabledLanguage); @@ -417,11 +417,11 @@ public function testReturnEnableLanguageResultInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $enabledLanguage = $this->createMock(Language::class); - $eventEnabledLanguage = $this->createMock(Language::class); + $enabledLanguage = self::createStub(Language::class); + $eventEnabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('enableLanguage')->willReturn($enabledLanguage); @@ -451,11 +451,11 @@ public function testEnableLanguageStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), ]; - $enabledLanguage = $this->createMock(Language::class); - $eventEnabledLanguage = $this->createMock(Language::class); + $enabledLanguage = self::createStub(Language::class); + $eventEnabledLanguage = self::createStub(Language::class); $innerServiceMock = $this->createMock(LanguageServiceInterface::class); $innerServiceMock->method('enableLanguage')->willReturn($enabledLanguage); diff --git a/tests/lib/Event/LocationServiceTest.php b/tests/lib/Event/LocationServiceTest.php index 97957243e0..f0c7a3354d 100644 --- a/tests/lib/Event/LocationServiceTest.php +++ b/tests/lib/Event/LocationServiceTest.php @@ -40,11 +40,11 @@ public function testCopySubtreeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); + $location = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('copySubtree')->willReturn($location); @@ -69,12 +69,12 @@ public function testReturnCopySubtreeResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('copySubtree')->willReturn($location); @@ -104,12 +104,12 @@ public function testCopySubtreeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('copySubtree')->willReturn($location); @@ -142,10 +142,10 @@ public function testDeleteLocationEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $service = new LocationService($innerServiceMock, $traceableEventDispatcher); $service->deleteLocation(...$parameters); @@ -167,10 +167,10 @@ public function testDeleteLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteLocationEvent::class, static function (BeforeDeleteLocationEvent $event) { $event->stopPropagation(); @@ -199,10 +199,10 @@ public function testUnhideLocationEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $revealedLocation = $this->createMock(Location::class); + $revealedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('unhideLocation')->willReturn($revealedLocation); @@ -227,11 +227,11 @@ public function testReturnUnhideLocationResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $revealedLocation = $this->createMock(Location::class); - $eventRevealedLocation = $this->createMock(Location::class); + $revealedLocation = self::createStub(Location::class); + $eventRevealedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('unhideLocation')->willReturn($revealedLocation); @@ -261,11 +261,11 @@ public function testUnhideLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $revealedLocation = $this->createMock(Location::class); - $eventRevealedLocation = $this->createMock(Location::class); + $revealedLocation = self::createStub(Location::class); + $eventRevealedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('unhideLocation')->willReturn($revealedLocation); @@ -298,10 +298,10 @@ public function testHideLocationEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $hiddenLocation = $this->createMock(Location::class); + $hiddenLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('hideLocation')->willReturn($hiddenLocation); @@ -326,11 +326,11 @@ public function testReturnHideLocationResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $hiddenLocation = $this->createMock(Location::class); - $eventHiddenLocation = $this->createMock(Location::class); + $hiddenLocation = self::createStub(Location::class); + $eventHiddenLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('hideLocation')->willReturn($hiddenLocation); @@ -360,11 +360,11 @@ public function testHideLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $hiddenLocation = $this->createMock(Location::class); - $eventHiddenLocation = $this->createMock(Location::class); + $hiddenLocation = self::createStub(Location::class); + $eventHiddenLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('hideLocation')->willReturn($hiddenLocation); @@ -397,11 +397,11 @@ public function testSwapLocationEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $service = new LocationService($innerServiceMock, $traceableEventDispatcher); $service->swapLocation(...$parameters); @@ -423,11 +423,11 @@ public function testSwapLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $traceableEventDispatcher->addListener(BeforeSwapLocationEvent::class, static function (BeforeSwapLocationEvent $event) { $event->stopPropagation(); @@ -456,11 +456,11 @@ public function testMoveSubtreeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $service = new LocationService($innerServiceMock, $traceableEventDispatcher); $service->moveSubtree(...$parameters); @@ -482,11 +482,11 @@ public function testMoveSubtreeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(LocationServiceInterface::class); + $innerServiceMock = self::createStub(LocationServiceInterface::class); $traceableEventDispatcher->addListener(BeforeMoveSubtreeEvent::class, static function (BeforeMoveSubtreeEvent $event) { $event->stopPropagation(); @@ -515,11 +515,11 @@ public function testUpdateLocationEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(LocationUpdateStruct::class), + self::createStub(Location::class), + self::createStub(LocationUpdateStruct::class), ]; - $updatedLocation = $this->createMock(Location::class); + $updatedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('updateLocation')->willReturn($updatedLocation); @@ -544,12 +544,12 @@ public function testReturnUpdateLocationResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(LocationUpdateStruct::class), + self::createStub(Location::class), + self::createStub(LocationUpdateStruct::class), ]; - $updatedLocation = $this->createMock(Location::class); - $eventUpdatedLocation = $this->createMock(Location::class); + $updatedLocation = self::createStub(Location::class); + $eventUpdatedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('updateLocation')->willReturn($updatedLocation); @@ -579,12 +579,12 @@ public function testUpdateLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(LocationUpdateStruct::class), + self::createStub(Location::class), + self::createStub(LocationUpdateStruct::class), ]; - $updatedLocation = $this->createMock(Location::class); - $eventUpdatedLocation = $this->createMock(Location::class); + $updatedLocation = self::createStub(Location::class); + $eventUpdatedLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('updateLocation')->willReturn($updatedLocation); @@ -617,11 +617,11 @@ public function testCreateLocationEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), ]; - $location = $this->createMock(Location::class); + $location = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('createLocation')->willReturn($location); @@ -646,12 +646,12 @@ public function testReturnCreateLocationResultInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('createLocation')->willReturn($location); @@ -681,12 +681,12 @@ public function testCreateLocationStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(LocationServiceInterface::class); $innerServiceMock->method('createLocation')->willReturn($location); diff --git a/tests/lib/Event/NotificationServiceTest.php b/tests/lib/Event/NotificationServiceTest.php index 291fd52076..bff889a578 100644 --- a/tests/lib/Event/NotificationServiceTest.php +++ b/tests/lib/Event/NotificationServiceTest.php @@ -30,10 +30,10 @@ public function testCreateNotificationEvents(): void ); $parameters = [ - $this->createMock(CreateStruct::class), + self::createStub(CreateStruct::class), ]; - $notification = $this->createMock(Notification::class); + $notification = self::createStub(Notification::class); $innerServiceMock = $this->createMock(NotificationServiceInterface::class); $innerServiceMock->method('createNotification')->willReturn($notification); @@ -58,11 +58,11 @@ public function testReturnCreateNotificationResultInBeforeEvents(): void ); $parameters = [ - $this->createMock(CreateStruct::class), + self::createStub(CreateStruct::class), ]; - $notification = $this->createMock(Notification::class); - $eventNotification = $this->createMock(Notification::class); + $notification = self::createStub(Notification::class); + $eventNotification = self::createStub(Notification::class); $innerServiceMock = $this->createMock(NotificationServiceInterface::class); $innerServiceMock->method('createNotification')->willReturn($notification); @@ -96,11 +96,11 @@ public function testCreateNotificationStopPropagationInBeforeEvents(): void ); $parameters = [ - $this->createMock(CreateStruct::class), + self::createStub(CreateStruct::class), ]; - $notification = $this->createMock(Notification::class); - $eventNotification = $this->createMock(Notification::class); + $notification = self::createStub(Notification::class); + $eventNotification = self::createStub(Notification::class); $innerServiceMock = $this->createMock(NotificationServiceInterface::class); $innerServiceMock->method('createNotification')->willReturn($notification); @@ -137,10 +137,10 @@ public function testDeleteNotificationEvents(): void ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $service = new NotificationService($innerServiceMock, $traceableEventDispatcher); $service->deleteNotification(...$parameters); @@ -162,10 +162,10 @@ public function testDeleteNotificationStopPropagationInBeforeEvents(): void ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $traceableEventDispatcher->addListener( BeforeDeleteNotificationEvent::class, @@ -198,10 +198,10 @@ public function testMarkNotificationAsReadEvents(): void ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $service = new NotificationService($innerServiceMock, $traceableEventDispatcher); $service->markNotificationAsRead(...$parameters); @@ -223,10 +223,10 @@ public function testMarkNotificationAsUnreadEvents(): void ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $service = new NotificationService($innerServiceMock, $traceableEventDispatcher); $service->markNotificationAsUnread(...$parameters); @@ -248,10 +248,10 @@ public function testMarkNotificationAsReadStopPropagationInBeforeEvents(): void ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $traceableEventDispatcher->addListener( BeforeMarkNotificationAsReadEvent::class, @@ -284,10 +284,10 @@ public function testMarkNotificationAsUnreadStopPropagationInBeforeEvents(): voi ); $parameters = [ - $this->createMock(Notification::class), + self::createStub(Notification::class), ]; - $innerServiceMock = $this->createMock(NotificationServiceInterface::class); + $innerServiceMock = self::createStub(NotificationServiceInterface::class); $traceableEventDispatcher->addListener( BeforeMarkNotificationAsUnreadEvent::class, diff --git a/tests/lib/Event/ObjectStateServiceTest.php b/tests/lib/Event/ObjectStateServiceTest.php index 616d561137..de10e22bbe 100644 --- a/tests/lib/Event/ObjectStateServiceTest.php +++ b/tests/lib/Event/ObjectStateServiceTest.php @@ -43,12 +43,12 @@ public function testSetContentStateEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectState::class), + self::createStub(ContentInfo::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectState::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher); $service->setContentState(...$parameters); @@ -70,12 +70,12 @@ public function testSetContentStateStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectState::class), + self::createStub(ContentInfo::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectState::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $traceableEventDispatcher->addListener(BeforeSetContentStateEvent::class, static function (BeforeSetContentStateEvent $event) { $event->stopPropagation(); @@ -104,10 +104,10 @@ public function testCreateObjectStateGroupEvents() ); $parameters = [ - $this->createMock(ObjectStateGroupCreateStruct::class), + self::createStub(ObjectStateGroupCreateStruct::class), ]; - $objectStateGroup = $this->createMock(ObjectStateGroup::class); + $objectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectStateGroup')->willReturn($objectStateGroup); @@ -132,11 +132,11 @@ public function testReturnCreateObjectStateGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroupCreateStruct::class), + self::createStub(ObjectStateGroupCreateStruct::class), ]; - $objectStateGroup = $this->createMock(ObjectStateGroup::class); - $eventObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $objectStateGroup = self::createStub(ObjectStateGroup::class); + $eventObjectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectStateGroup')->willReturn($objectStateGroup); @@ -166,11 +166,11 @@ public function testCreateObjectStateGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroupCreateStruct::class), + self::createStub(ObjectStateGroupCreateStruct::class), ]; - $objectStateGroup = $this->createMock(ObjectStateGroup::class); - $eventObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $objectStateGroup = self::createStub(ObjectStateGroup::class); + $eventObjectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectStateGroup')->willReturn($objectStateGroup); @@ -203,11 +203,11 @@ public function testUpdateObjectStateEvents() ); $parameters = [ - $this->createMock(ObjectState::class), - $this->createMock(ObjectStateUpdateStruct::class), + self::createStub(ObjectState::class), + self::createStub(ObjectStateUpdateStruct::class), ]; - $updatedObjectState = $this->createMock(ObjectState::class); + $updatedObjectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectState')->willReturn($updatedObjectState); @@ -232,12 +232,12 @@ public function testReturnUpdateObjectStateResultInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectState::class), - $this->createMock(ObjectStateUpdateStruct::class), + self::createStub(ObjectState::class), + self::createStub(ObjectStateUpdateStruct::class), ]; - $updatedObjectState = $this->createMock(ObjectState::class); - $eventUpdatedObjectState = $this->createMock(ObjectState::class); + $updatedObjectState = self::createStub(ObjectState::class); + $eventUpdatedObjectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectState')->willReturn($updatedObjectState); @@ -267,12 +267,12 @@ public function testUpdateObjectStateStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectState::class), - $this->createMock(ObjectStateUpdateStruct::class), + self::createStub(ObjectState::class), + self::createStub(ObjectStateUpdateStruct::class), ]; - $updatedObjectState = $this->createMock(ObjectState::class); - $eventUpdatedObjectState = $this->createMock(ObjectState::class); + $updatedObjectState = self::createStub(ObjectState::class); + $eventUpdatedObjectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectState')->willReturn($updatedObjectState); @@ -305,11 +305,11 @@ public function testCreateObjectStateEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateCreateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateCreateStruct::class), ]; - $objectState = $this->createMock(ObjectState::class); + $objectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectState')->willReturn($objectState); @@ -334,12 +334,12 @@ public function testReturnCreateObjectStateResultInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateCreateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateCreateStruct::class), ]; - $objectState = $this->createMock(ObjectState::class); - $eventObjectState = $this->createMock(ObjectState::class); + $objectState = self::createStub(ObjectState::class); + $eventObjectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectState')->willReturn($objectState); @@ -369,12 +369,12 @@ public function testCreateObjectStateStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateCreateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateCreateStruct::class), ]; - $objectState = $this->createMock(ObjectState::class); - $eventObjectState = $this->createMock(ObjectState::class); + $objectState = self::createStub(ObjectState::class); + $eventObjectState = self::createStub(ObjectState::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('createObjectState')->willReturn($objectState); @@ -407,11 +407,11 @@ public function testUpdateObjectStateGroupEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateGroupUpdateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateGroupUpdateStruct::class), ]; - $updatedObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $updatedObjectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectStateGroup')->willReturn($updatedObjectStateGroup); @@ -436,12 +436,12 @@ public function testReturnUpdateObjectStateGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateGroupUpdateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateGroupUpdateStruct::class), ]; - $updatedObjectStateGroup = $this->createMock(ObjectStateGroup::class); - $eventUpdatedObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $updatedObjectStateGroup = self::createStub(ObjectStateGroup::class); + $eventUpdatedObjectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectStateGroup')->willReturn($updatedObjectStateGroup); @@ -471,12 +471,12 @@ public function testUpdateObjectStateGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateGroupUpdateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateGroupUpdateStruct::class), ]; - $updatedObjectStateGroup = $this->createMock(ObjectStateGroup::class); - $eventUpdatedObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $updatedObjectStateGroup = self::createStub(ObjectStateGroup::class); + $eventUpdatedObjectStateGroup = self::createStub(ObjectStateGroup::class); $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); $innerServiceMock->method('updateObjectStateGroup')->willReturn($updatedObjectStateGroup); @@ -509,11 +509,11 @@ public function testSetPriorityOfObjectStateEvents() ); $parameters = [ - $this->createMock(ObjectState::class), + self::createStub(ObjectState::class), 100, ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher); $service->setPriorityOfObjectState(...$parameters); @@ -535,11 +535,11 @@ public function testSetPriorityOfObjectStateStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectState::class), + self::createStub(ObjectState::class), 100, ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $traceableEventDispatcher->addListener(BeforeSetPriorityOfObjectStateEvent::class, static function (BeforeSetPriorityOfObjectStateEvent $event) { $event->stopPropagation(); @@ -568,10 +568,10 @@ public function testDeleteObjectStateGroupEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), + self::createStub(ObjectStateGroup::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher); $service->deleteObjectStateGroup(...$parameters); @@ -593,10 +593,10 @@ public function testDeleteObjectStateGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectStateGroup::class), + self::createStub(ObjectStateGroup::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteObjectStateGroupEvent::class, static function (BeforeDeleteObjectStateGroupEvent $event) { $event->stopPropagation(); @@ -625,10 +625,10 @@ public function testDeleteObjectStateEvents() ); $parameters = [ - $this->createMock(ObjectState::class), + self::createStub(ObjectState::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $service = new ObjectStateService($innerServiceMock, $traceableEventDispatcher); $service->deleteObjectState(...$parameters); @@ -650,10 +650,10 @@ public function testDeleteObjectStateStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ObjectState::class), + self::createStub(ObjectState::class), ]; - $innerServiceMock = $this->createMock(ObjectStateServiceInterface::class); + $innerServiceMock = self::createStub(ObjectStateServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteObjectStateEvent::class, static function (BeforeDeleteObjectStateEvent $event) { $event->stopPropagation(); diff --git a/tests/lib/Event/RoleServiceTest.php b/tests/lib/Event/RoleServiceTest.php index 1538ecc5dc..2787ae236a 100644 --- a/tests/lib/Event/RoleServiceTest.php +++ b/tests/lib/Event/RoleServiceTest.php @@ -55,10 +55,10 @@ public function testPublishRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), + self::createStub(RoleDraft::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->publishRoleDraft(...$parameters); @@ -80,10 +80,10 @@ public function testPublishRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), + self::createStub(RoleDraft::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforePublishRoleDraftEvent::class, static function (BeforePublishRoleDraftEvent $event) { $event->stopPropagation(); @@ -112,12 +112,12 @@ public function testAssignRoleToUserEvents() ); $parameters = [ - $this->createMock(Role::class), - $this->createMock(User::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(User::class), + self::createStub(RoleLimitation::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->assignRoleToUser(...$parameters); @@ -139,12 +139,12 @@ public function testAssignRoleToUserStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Role::class), - $this->createMock(User::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(User::class), + self::createStub(RoleLimitation::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignRoleToUserEvent::class, static function (BeforeAssignRoleToUserEvent $event) { $event->stopPropagation(); @@ -173,11 +173,11 @@ public function testUpdateRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(RoleUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(RoleUpdateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updateRoleDraft')->willReturn($updatedRoleDraft); @@ -202,12 +202,12 @@ public function testReturnUpdateRoleDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(RoleUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(RoleUpdateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updateRoleDraft')->willReturn($updatedRoleDraft); @@ -237,12 +237,12 @@ public function testUpdateRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(RoleUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(RoleUpdateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updateRoleDraft')->willReturn($updatedRoleDraft); @@ -275,12 +275,12 @@ public function testAssignRoleToUserGroupEvents() ); $parameters = [ - $this->createMock(Role::class), - $this->createMock(UserGroup::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(UserGroup::class), + self::createStub(RoleLimitation::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->assignRoleToUserGroup(...$parameters); @@ -302,12 +302,12 @@ public function testAssignRoleToUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Role::class), - $this->createMock(UserGroup::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(UserGroup::class), + self::createStub(RoleLimitation::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignRoleToUserGroupEvent::class, static function (BeforeAssignRoleToUserGroupEvent $event) { $event->stopPropagation(); @@ -336,12 +336,12 @@ public function testUpdatePolicyByRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), - $this->createMock(PolicyUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), + self::createStub(PolicyUpdateStruct::class), ]; - $updatedPolicyDraft = $this->createMock(PolicyDraft::class); + $updatedPolicyDraft = self::createStub(PolicyDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updatePolicyByRoleDraft')->willReturn($updatedPolicyDraft); @@ -366,13 +366,13 @@ public function testReturnUpdatePolicyByRoleDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), - $this->createMock(PolicyUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), + self::createStub(PolicyUpdateStruct::class), ]; - $updatedPolicyDraft = $this->createMock(PolicyDraft::class); - $eventUpdatedPolicyDraft = $this->createMock(PolicyDraft::class); + $updatedPolicyDraft = self::createStub(PolicyDraft::class); + $eventUpdatedPolicyDraft = self::createStub(PolicyDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updatePolicyByRoleDraft')->willReturn($updatedPolicyDraft); @@ -402,13 +402,13 @@ public function testUpdatePolicyByRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), - $this->createMock(PolicyUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), + self::createStub(PolicyUpdateStruct::class), ]; - $updatedPolicyDraft = $this->createMock(PolicyDraft::class); - $eventUpdatedPolicyDraft = $this->createMock(PolicyDraft::class); + $updatedPolicyDraft = self::createStub(PolicyDraft::class); + $eventUpdatedPolicyDraft = self::createStub(PolicyDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('updatePolicyByRoleDraft')->willReturn($updatedPolicyDraft); @@ -441,10 +441,10 @@ public function testCreateRoleEvents() ); $parameters = [ - $this->createMock(RoleCreateStruct::class), + self::createStub(RoleCreateStruct::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRole')->willReturn($roleDraft); @@ -469,11 +469,11 @@ public function testReturnCreateRoleResultInBeforeEvents() ); $parameters = [ - $this->createMock(RoleCreateStruct::class), + self::createStub(RoleCreateStruct::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); - $eventRoleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); + $eventRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRole')->willReturn($roleDraft); @@ -503,11 +503,11 @@ public function testCreateRoleStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleCreateStruct::class), + self::createStub(RoleCreateStruct::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); - $eventRoleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); + $eventRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRole')->willReturn($roleDraft); @@ -540,11 +540,11 @@ public function testRemovePolicyByRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('removePolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -569,12 +569,12 @@ public function testReturnRemovePolicyByRoleDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('removePolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -604,12 +604,12 @@ public function testRemovePolicyByRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('removePolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -642,11 +642,11 @@ public function testAddPolicyByRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyCreateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyCreateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('addPolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -671,12 +671,12 @@ public function testReturnAddPolicyByRoleDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyCreateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyCreateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('addPolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -706,12 +706,12 @@ public function testAddPolicyByRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyCreateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyCreateStruct::class), ]; - $updatedRoleDraft = $this->createMock(RoleDraft::class); - $eventUpdatedRoleDraft = $this->createMock(RoleDraft::class); + $updatedRoleDraft = self::createStub(RoleDraft::class); + $eventUpdatedRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('addPolicyByRoleDraft')->willReturn($updatedRoleDraft); @@ -744,10 +744,10 @@ public function testDeleteRoleEvents() ); $parameters = [ - $this->createMock(Role::class), + self::createStub(Role::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->deleteRole(...$parameters); @@ -769,10 +769,10 @@ public function testDeleteRoleStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Role::class), + self::createStub(Role::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteRoleEvent::class, static function (BeforeDeleteRoleEvent $event) { $event->stopPropagation(); @@ -801,10 +801,10 @@ public function testDeleteRoleDraftEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), + self::createStub(RoleDraft::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->deleteRoleDraft(...$parameters); @@ -826,10 +826,10 @@ public function testDeleteRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleDraft::class), + self::createStub(RoleDraft::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteRoleDraftEvent::class, static function (BeforeDeleteRoleDraftEvent $event) { $event->stopPropagation(); @@ -858,10 +858,10 @@ public function testRemoveRoleAssignmentEvents() ); $parameters = [ - $this->createMock(RoleAssignment::class), + self::createStub(RoleAssignment::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $service = new RoleService($innerServiceMock, $traceableEventDispatcher); $service->removeRoleAssignment(...$parameters); @@ -883,10 +883,10 @@ public function testRemoveRoleAssignmentStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(RoleAssignment::class), + self::createStub(RoleAssignment::class), ]; - $innerServiceMock = $this->createMock(RoleServiceInterface::class); + $innerServiceMock = self::createStub(RoleServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRemoveRoleAssignmentEvent::class, static function (BeforeRemoveRoleAssignmentEvent $event) { $event->stopPropagation(); @@ -915,10 +915,10 @@ public function testCreateRoleDraftEvents() ); $parameters = [ - $this->createMock(Role::class), + self::createStub(Role::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRoleDraft')->willReturn($roleDraft); @@ -943,11 +943,11 @@ public function testReturnCreateRoleDraftResultInBeforeEvents() ); $parameters = [ - $this->createMock(Role::class), + self::createStub(Role::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); - $eventRoleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); + $eventRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRoleDraft')->willReturn($roleDraft); @@ -977,11 +977,11 @@ public function testCreateRoleDraftStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Role::class), + self::createStub(Role::class), ]; - $roleDraft = $this->createMock(RoleDraft::class); - $eventRoleDraft = $this->createMock(RoleDraft::class); + $roleDraft = self::createStub(RoleDraft::class); + $eventRoleDraft = self::createStub(RoleDraft::class); $innerServiceMock = $this->createMock(RoleServiceInterface::class); $innerServiceMock->method('createRoleDraft')->willReturn($roleDraft); diff --git a/tests/lib/Event/SectionServiceTest.php b/tests/lib/Event/SectionServiceTest.php index 1b1784f60f..94d7fe0397 100644 --- a/tests/lib/Event/SectionServiceTest.php +++ b/tests/lib/Event/SectionServiceTest.php @@ -35,11 +35,11 @@ public function testAssignSectionEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(Section::class), + self::createStub(ContentInfo::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $service = new SectionService($innerServiceMock, $traceableEventDispatcher); $service->assignSection(...$parameters); @@ -61,11 +61,11 @@ public function testAssignSectionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(Section::class), + self::createStub(ContentInfo::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignSectionEvent::class, static function (BeforeAssignSectionEvent $event) { $event->stopPropagation(); @@ -94,11 +94,11 @@ public function testUpdateSectionEvents() ); $parameters = [ - $this->createMock(Section::class), - $this->createMock(SectionUpdateStruct::class), + self::createStub(Section::class), + self::createStub(SectionUpdateStruct::class), ]; - $updatedSection = $this->createMock(Section::class); + $updatedSection = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('updateSection')->willReturn($updatedSection); @@ -123,12 +123,12 @@ public function testReturnUpdateSectionResultInBeforeEvents() ); $parameters = [ - $this->createMock(Section::class), - $this->createMock(SectionUpdateStruct::class), + self::createStub(Section::class), + self::createStub(SectionUpdateStruct::class), ]; - $updatedSection = $this->createMock(Section::class); - $eventUpdatedSection = $this->createMock(Section::class); + $updatedSection = self::createStub(Section::class); + $eventUpdatedSection = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('updateSection')->willReturn($updatedSection); @@ -158,12 +158,12 @@ public function testUpdateSectionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Section::class), - $this->createMock(SectionUpdateStruct::class), + self::createStub(Section::class), + self::createStub(SectionUpdateStruct::class), ]; - $updatedSection = $this->createMock(Section::class); - $eventUpdatedSection = $this->createMock(Section::class); + $updatedSection = self::createStub(Section::class); + $eventUpdatedSection = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('updateSection')->willReturn($updatedSection); @@ -196,11 +196,11 @@ public function testAssignSectionToSubtreeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Section::class), + self::createStub(Location::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $service = new SectionService($innerServiceMock, $traceableEventDispatcher); $service->assignSectionToSubtree(...$parameters); @@ -222,11 +222,11 @@ public function testAssignSectionToSubtreeStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Section::class), + self::createStub(Location::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignSectionToSubtreeEvent::class, static function (BeforeAssignSectionToSubtreeEvent $event) { $event->stopPropagation(); @@ -255,10 +255,10 @@ public function testDeleteSectionEvents() ); $parameters = [ - $this->createMock(Section::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $service = new SectionService($innerServiceMock, $traceableEventDispatcher); $service->deleteSection(...$parameters); @@ -280,10 +280,10 @@ public function testDeleteSectionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Section::class), + self::createStub(Section::class), ]; - $innerServiceMock = $this->createMock(SectionServiceInterface::class); + $innerServiceMock = self::createStub(SectionServiceInterface::class); $traceableEventDispatcher->addListener(BeforeDeleteSectionEvent::class, static function (BeforeDeleteSectionEvent $event) { $event->stopPropagation(); @@ -312,10 +312,10 @@ public function testCreateSectionEvents() ); $parameters = [ - $this->createMock(SectionCreateStruct::class), + self::createStub(SectionCreateStruct::class), ]; - $section = $this->createMock(Section::class); + $section = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('createSection')->willReturn($section); @@ -340,11 +340,11 @@ public function testReturnCreateSectionResultInBeforeEvents() ); $parameters = [ - $this->createMock(SectionCreateStruct::class), + self::createStub(SectionCreateStruct::class), ]; - $section = $this->createMock(Section::class); - $eventSection = $this->createMock(Section::class); + $section = self::createStub(Section::class); + $eventSection = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('createSection')->willReturn($section); @@ -374,11 +374,11 @@ public function testCreateSectionStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(SectionCreateStruct::class), + self::createStub(SectionCreateStruct::class), ]; - $section = $this->createMock(Section::class); - $eventSection = $this->createMock(Section::class); + $section = self::createStub(Section::class); + $eventSection = self::createStub(Section::class); $innerServiceMock = $this->createMock(SectionServiceInterface::class); $innerServiceMock->method('createSection')->willReturn($section); diff --git a/tests/lib/Event/SettingServiceTest.php b/tests/lib/Event/SettingServiceTest.php index f74c5c3860..200804afac 100644 --- a/tests/lib/Event/SettingServiceTest.php +++ b/tests/lib/Event/SettingServiceTest.php @@ -28,7 +28,7 @@ public function testUpdateSettingEvents(): void BeforeUpdateSettingEvent::class, UpdateSettingEvent::class ); - $updatedSetting = $this->createMock(Setting::class); + $updatedSetting = self::createStub(Setting::class); $result = $this->updateSetting($updatedSetting, $traceableEventDispatcher); @@ -53,7 +53,7 @@ public function testReturnUpdateSettingResultInBeforeEvents(): void BeforeUpdateSettingEvent::class, UpdateSettingEvent::class ); - $eventUpdatedSetting = $this->createMock(Setting::class); + $eventUpdatedSetting = self::createStub(Setting::class); $traceableEventDispatcher->addListener( BeforeUpdateSettingEvent::class, @@ -62,7 +62,7 @@ static function (BeforeUpdateSettingEvent $event) use ($eventUpdatedSetting) { }, 10 ); - $updatedSetting = $this->createMock(Setting::class); + $updatedSetting = self::createStub(Setting::class); $result = $this->updateSetting($updatedSetting, $traceableEventDispatcher); @@ -88,7 +88,7 @@ public function testUpdateSettingStopPropagationInBeforeEvents(): void BeforeUpdateSettingEvent::class, UpdateSettingEvent::class ); - $eventUpdatedSetting = $this->createMock(Setting::class); + $eventUpdatedSetting = self::createStub(Setting::class); $traceableEventDispatcher->addListener( BeforeUpdateSettingEvent::class, static function (BeforeUpdateSettingEvent $event) use ($eventUpdatedSetting) { @@ -97,7 +97,7 @@ static function (BeforeUpdateSettingEvent $event) use ($eventUpdatedSetting) { }, 10 ); - $updatedSetting = $this->createMock(Setting::class); + $updatedSetting = self::createStub(Setting::class); $result = $this->updateSetting($updatedSetting, $traceableEventDispatcher); @@ -132,10 +132,10 @@ public function testDeleteSettingEvents(): void ); $parameters = [ - $this->createMock(Setting::class), + self::createStub(Setting::class), ]; - $innerServiceMock = $this->createMock(SettingServiceInterface::class); + $innerServiceMock = self::createStub(SettingServiceInterface::class); $service = new SettingService($innerServiceMock, $traceableEventDispatcher); $service->deleteSetting(...$parameters); @@ -162,10 +162,10 @@ public function testDeleteSettingStopPropagationInBeforeEvents(): void ); $parameters = [ - $this->createMock(Setting::class), + self::createStub(Setting::class), ]; - $innerServiceMock = $this->createMock(SettingServiceInterface::class); + $innerServiceMock = self::createStub(SettingServiceInterface::class); $traceableEventDispatcher->addListener( BeforeDeleteSettingEvent::class, @@ -206,7 +206,7 @@ public function testCreateSettingEvents(): void BeforeCreateSettingEvent::class, CreateSettingEvent::class ); - $setting = $this->createMock(Setting::class); + $setting = self::createStub(Setting::class); $result = $this->createSetting($setting, $traceableEventDispatcher); @@ -231,8 +231,8 @@ public function testReturnCreateSettingResultInBeforeEvents(): void BeforeCreateSettingEvent::class, CreateSettingEvent::class ); - $eventSetting = $this->createMock(Setting::class); - $setting = $this->createMock(Setting::class); + $eventSetting = self::createStub(Setting::class); + $setting = self::createStub(Setting::class); $traceableEventDispatcher->addListener( BeforeCreateSettingEvent::class, static function (BeforeCreateSettingEvent $event) use ($eventSetting) { @@ -265,8 +265,8 @@ public function testCreateSettingStopPropagationInBeforeEvents(): void BeforeCreateSettingEvent::class, CreateSettingEvent::class ); - $eventSetting = $this->createMock(Setting::class); - $setting = $this->createMock(Setting::class); + $eventSetting = self::createStub(Setting::class); + $setting = self::createStub(Setting::class); $traceableEventDispatcher->addListener( BeforeCreateSettingEvent::class, static function (BeforeCreateSettingEvent $event) use ($eventSetting) { @@ -306,7 +306,7 @@ private function createSetting( TraceableEventDispatcher $traceableEventDispatcher ): Setting { $parameters = [ - $this->createMock(SettingCreateStruct::class), + self::createStub(SettingCreateStruct::class), ]; $innerServiceMock = $this->createMock(SettingServiceInterface::class); $innerServiceMock->method('createSetting')->willReturn($setting); @@ -320,8 +320,8 @@ private function updateSetting( TraceableEventDispatcher $traceableEventDispatcher ): Setting { $parameters = [ - $this->createMock(Setting::class), - $this->createMock(SettingUpdateStruct::class), + self::createStub(Setting::class), + self::createStub(SettingUpdateStruct::class), ]; $innerServiceMock = $this->createMock(SettingServiceInterface::class); $innerServiceMock->method('updateSetting')->willReturn($updatedSetting); diff --git a/tests/lib/Event/TrashServiceTest.php b/tests/lib/Event/TrashServiceTest.php index c4e2580c53..a4af97b03c 100644 --- a/tests/lib/Event/TrashServiceTest.php +++ b/tests/lib/Event/TrashServiceTest.php @@ -34,7 +34,7 @@ public function testEmptyTrashEvents() $parameters = [ ]; - $resultList = $this->createMock(TrashItemDeleteResultList::class); + $resultList = self::createStub(TrashItemDeleteResultList::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('emptyTrash')->willReturn($resultList); @@ -61,8 +61,8 @@ public function testReturnEmptyTrashResultInBeforeEvents() $parameters = [ ]; - $resultList = $this->createMock(TrashItemDeleteResultList::class); - $eventResultList = $this->createMock(TrashItemDeleteResultList::class); + $resultList = self::createStub(TrashItemDeleteResultList::class); + $eventResultList = self::createStub(TrashItemDeleteResultList::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('emptyTrash')->willReturn($resultList); @@ -94,8 +94,8 @@ public function testEmptyTrashStopPropagationInBeforeEvents() $parameters = [ ]; - $resultList = $this->createMock(TrashItemDeleteResultList::class); - $eventResultList = $this->createMock(TrashItemDeleteResultList::class); + $resultList = self::createStub(TrashItemDeleteResultList::class); + $eventResultList = self::createStub(TrashItemDeleteResultList::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('emptyTrash')->willReturn($resultList); @@ -128,10 +128,10 @@ public function testTrashEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $trashItem = $this->createMock(TrashItem::class); + $trashItem = self::createStub(TrashItem::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('trash')->willReturn($trashItem); @@ -156,11 +156,11 @@ public function testReturnTrashResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $trashItem = $this->createMock(TrashItem::class); - $eventTrashItem = $this->createMock(TrashItem::class); + $trashItem = self::createStub(TrashItem::class); + $eventTrashItem = self::createStub(TrashItem::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('trash')->willReturn($trashItem); @@ -190,11 +190,11 @@ public function testTrashStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $trashItem = $this->createMock(TrashItem::class); - $eventTrashItem = $this->createMock(TrashItem::class); + $trashItem = self::createStub(TrashItem::class); + $eventTrashItem = self::createStub(TrashItem::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('trash')->willReturn($trashItem); @@ -227,7 +227,7 @@ public function testTrashStopPropagationInBeforeEventsSetsNullResult(): void ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; $innerServiceMock = $this->createMock(TrashServiceInterface::class); @@ -262,11 +262,11 @@ public function testRecoverEvents() ); $parameters = [ - $this->createMock(TrashItem::class), - $this->createMock(Location::class), + self::createStub(TrashItem::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); + $location = self::createStub(Location::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('recover')->willReturn($location); @@ -291,12 +291,12 @@ public function testReturnRecoverResultInBeforeEvents() ); $parameters = [ - $this->createMock(TrashItem::class), - $this->createMock(Location::class), + self::createStub(TrashItem::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('recover')->willReturn($location); @@ -326,12 +326,12 @@ public function testRecoverStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(TrashItem::class), - $this->createMock(Location::class), + self::createStub(TrashItem::class), + self::createStub(Location::class), ]; - $location = $this->createMock(Location::class); - $eventLocation = $this->createMock(Location::class); + $location = self::createStub(Location::class); + $eventLocation = self::createStub(Location::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('recover')->willReturn($location); @@ -364,10 +364,10 @@ public function testDeleteTrashItemEvents() ); $parameters = [ - $this->createMock(TrashItem::class), + self::createStub(TrashItem::class), ]; - $result = $this->createMock(TrashItemDeleteResult::class); + $result = self::createStub(TrashItemDeleteResult::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('deleteTrashItem')->willReturn($result); @@ -392,11 +392,11 @@ public function testReturnDeleteTrashItemResultInBeforeEvents() ); $parameters = [ - $this->createMock(TrashItem::class), + self::createStub(TrashItem::class), ]; - $result = $this->createMock(TrashItemDeleteResult::class); - $eventResult = $this->createMock(TrashItemDeleteResult::class); + $result = self::createStub(TrashItemDeleteResult::class); + $eventResult = self::createStub(TrashItemDeleteResult::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('deleteTrashItem')->willReturn($result); @@ -426,11 +426,11 @@ public function testDeleteTrashItemStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(TrashItem::class), + self::createStub(TrashItem::class), ]; - $result = $this->createMock(TrashItemDeleteResult::class); - $eventResult = $this->createMock(TrashItemDeleteResult::class); + $result = self::createStub(TrashItemDeleteResult::class); + $eventResult = self::createStub(TrashItemDeleteResult::class); $innerServiceMock = $this->createMock(TrashServiceInterface::class); $innerServiceMock->method('deleteTrashItem')->willReturn($result); diff --git a/tests/lib/Event/URLAliasServiceTest.php b/tests/lib/Event/URLAliasServiceTest.php index 10b916c0cb..0a20185192 100644 --- a/tests/lib/Event/URLAliasServiceTest.php +++ b/tests/lib/Event/URLAliasServiceTest.php @@ -37,7 +37,7 @@ public function testCreateGlobalUrlAliasEvents() 'random_value_5cff79c31834c3.69513526', ]; - $urlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createGlobalUrlAlias')->willReturn($urlAlias); @@ -69,8 +69,8 @@ public function testReturnCreateGlobalUrlAliasResultInBeforeEvents() 'random_value_5cff79c31839d9.22502123', ]; - $urlAlias = $this->createMock(URLAlias::class); - $eventUrlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); + $eventUrlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createGlobalUrlAlias')->willReturn($urlAlias); @@ -107,8 +107,8 @@ public function testCreateGlobalUrlAliasStopPropagationInBeforeEvents() 'random_value_5cff79c3183a85.16422549', ]; - $urlAlias = $this->createMock(URLAlias::class); - $eventUrlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); + $eventUrlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createGlobalUrlAlias')->willReturn($urlAlias); @@ -141,10 +141,10 @@ public function testRefreshSystemUrlAliasesForLocationEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); + $innerServiceMock = self::createStub(URLAliasServiceInterface::class); $service = new URLAliasService($innerServiceMock, $traceableEventDispatcher); $service->refreshSystemUrlAliasesForLocation(...$parameters); @@ -166,10 +166,10 @@ public function testRefreshSystemUrlAliasesForLocationStopPropagationInBeforeEve ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), ]; - $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); + $innerServiceMock = self::createStub(URLAliasServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRefreshSystemUrlAliasesForLocationEvent::class, static function (BeforeRefreshSystemUrlAliasesForLocationEvent $event) { $event->stopPropagation(); @@ -198,14 +198,14 @@ public function testCreateUrlAliasEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), 'random_value_5cff79c3184f05.03459159', 'random_value_5cff79c3184f14.18292216', 'random_value_5cff79c3184f24.01158164', 'random_value_5cff79c3184f32.03833593', ]; - $urlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createUrlAlias')->willReturn($urlAlias); @@ -230,15 +230,15 @@ public function testReturnCreateUrlAliasResultInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), 'random_value_5cff79c3184fd7.07408772', 'random_value_5cff79c3184fe2.98616568', 'random_value_5cff79c3184ff0.62652505', 'random_value_5cff79c3185003.87499400', ]; - $urlAlias = $this->createMock(URLAlias::class); - $eventUrlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); + $eventUrlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createUrlAlias')->willReturn($urlAlias); @@ -268,15 +268,15 @@ public function testCreateUrlAliasStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), 'random_value_5cff79c3185072.24449261', 'random_value_5cff79c3185080.62311461', 'random_value_5cff79c3185095.31877612', 'random_value_5cff79c31850a4.20254218', ]; - $urlAlias = $this->createMock(URLAlias::class); - $eventUrlAlias = $this->createMock(URLAlias::class); + $urlAlias = self::createStub(URLAlias::class); + $eventUrlAlias = self::createStub(URLAlias::class); $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); $innerServiceMock->method('createUrlAlias')->willReturn($urlAlias); @@ -312,7 +312,7 @@ public function testRemoveAliasesEvents() [], ]; - $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); + $innerServiceMock = self::createStub(URLAliasServiceInterface::class); $service = new URLAliasService($innerServiceMock, $traceableEventDispatcher); $service->removeAliases(...$parameters); @@ -337,7 +337,7 @@ public function testRemoveAliasesStopPropagationInBeforeEvents() [], ]; - $innerServiceMock = $this->createMock(URLAliasServiceInterface::class); + $innerServiceMock = self::createStub(URLAliasServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRemoveAliasesEvent::class, static function (BeforeRemoveAliasesEvent $event) { $event->stopPropagation(); diff --git a/tests/lib/Event/URLServiceTest.php b/tests/lib/Event/URLServiceTest.php index 8aea966dcc..9f55b6b859 100644 --- a/tests/lib/Event/URLServiceTest.php +++ b/tests/lib/Event/URLServiceTest.php @@ -24,11 +24,11 @@ public function testUpdateUrlEvents() ); $parameters = [ - $this->createMock(URL::class), - $this->createMock(URLUpdateStruct::class), + self::createStub(URL::class), + self::createStub(URLUpdateStruct::class), ]; - $updatedUrl = $this->createMock(URL::class); + $updatedUrl = self::createStub(URL::class); $innerServiceMock = $this->createMock(URLServiceInterface::class); $innerServiceMock->method('updateUrl')->willReturn($updatedUrl); @@ -53,12 +53,12 @@ public function testReturnUpdateUrlResultInBeforeEvents() ); $parameters = [ - $this->createMock(URL::class), - $this->createMock(URLUpdateStruct::class), + self::createStub(URL::class), + self::createStub(URLUpdateStruct::class), ]; - $updatedUrl = $this->createMock(URL::class); - $eventUpdatedUrl = $this->createMock(URL::class); + $updatedUrl = self::createStub(URL::class); + $eventUpdatedUrl = self::createStub(URL::class); $innerServiceMock = $this->createMock(URLServiceInterface::class); $innerServiceMock->method('updateUrl')->willReturn($updatedUrl); @@ -88,12 +88,12 @@ public function testUpdateUrlStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(URL::class), - $this->createMock(URLUpdateStruct::class), + self::createStub(URL::class), + self::createStub(URLUpdateStruct::class), ]; - $updatedUrl = $this->createMock(URL::class); - $eventUpdatedUrl = $this->createMock(URL::class); + $updatedUrl = self::createStub(URL::class); + $eventUpdatedUrl = self::createStub(URL::class); $innerServiceMock = $this->createMock(URLServiceInterface::class); $innerServiceMock->method('updateUrl')->willReturn($updatedUrl); diff --git a/tests/lib/Event/URLWildcardServiceTest.php b/tests/lib/Event/URLWildcardServiceTest.php index 5ad3ca9023..4925d738f5 100644 --- a/tests/lib/Event/URLWildcardServiceTest.php +++ b/tests/lib/Event/URLWildcardServiceTest.php @@ -34,10 +34,10 @@ public function testRemoveEvents() ); $parameters = [ - $this->createMock(URLWildcard::class), + self::createStub(URLWildcard::class), ]; - $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); + $innerServiceMock = self::createStub(URLWildcardServiceInterface::class); $service = new URLWildcardService($innerServiceMock, $traceableEventDispatcher); $service->remove(...$parameters); @@ -62,10 +62,10 @@ public function testRemoveStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(URLWildcard::class), + self::createStub(URLWildcard::class), ]; - $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); + $innerServiceMock = self::createStub(URLWildcardServiceInterface::class); $traceableEventDispatcher->addListener(BeforeRemoveEvent::class, static function (BeforeRemoveEvent $event) { $event->stopPropagation(); @@ -99,11 +99,11 @@ public function testUpdateEvents(): void UpdateEvent::class ); - $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); + $innerServiceMock = self::createStub(URLWildcardServiceInterface::class); $service = new URLWildcardService($innerServiceMock, $traceableEventDispatcher); $service->update( - $this->createMock(URLWildcard::class), + self::createStub(URLWildcard::class), new URLWildcardUpdateStruct() ); @@ -126,7 +126,7 @@ public function testUpdateStopPropagationInBeforeEvents(): void UpdateEvent::class ); - $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); + $innerServiceMock = self::createStub(URLWildcardServiceInterface::class); $traceableEventDispatcher->addListener( BeforeUpdateEvent::class, @@ -138,7 +138,7 @@ static function (BeforeUpdateEvent $event) { $service = new URLWildcardService($innerServiceMock, $traceableEventDispatcher); $service->update( - $this->createMock(URLWildcard::class), + self::createStub(URLWildcard::class), new URLWildcardUpdateStruct() ); @@ -172,7 +172,7 @@ public function testCreateEvents() 'random_value_5cff79c316c237.08397355', ]; - $urlWildcard = $this->createMock(URLWildcard::class); + $urlWildcard = self::createStub(URLWildcard::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('create')->willReturn($urlWildcard); @@ -202,8 +202,8 @@ public function testReturnCreateResultInBeforeEvents() 'random_value_5cff79c316c2f8.59874187', ]; - $urlWildcard = $this->createMock(URLWildcard::class); - $eventUrlWildcard = $this->createMock(URLWildcard::class); + $urlWildcard = self::createStub(URLWildcard::class); + $eventUrlWildcard = self::createStub(URLWildcard::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('create')->willReturn($urlWildcard); @@ -238,8 +238,8 @@ public function testCreateStopPropagationInBeforeEvents() 'random_value_5cff79c316c374.82657815', ]; - $urlWildcard = $this->createMock(URLWildcard::class); - $eventUrlWildcard = $this->createMock(URLWildcard::class); + $urlWildcard = self::createStub(URLWildcard::class); + $eventUrlWildcard = self::createStub(URLWildcard::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('create')->willReturn($urlWildcard); @@ -275,7 +275,7 @@ public function testTranslateEvents() 'random_value_5cff79c316cfa7.72466150', ]; - $result = $this->createMock(URLWildcardTranslationResult::class); + $result = self::createStub(URLWildcardTranslationResult::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('translate')->willReturn($result); @@ -303,8 +303,8 @@ public function testReturnTranslateResultInBeforeEvents() 'random_value_5cff79c316d370.25863709', ]; - $result = $this->createMock(URLWildcardTranslationResult::class); - $eventResult = $this->createMock(URLWildcardTranslationResult::class); + $result = self::createStub(URLWildcardTranslationResult::class); + $eventResult = self::createStub(URLWildcardTranslationResult::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('translate')->willReturn($result); @@ -337,8 +337,8 @@ public function testTranslateStopPropagationInBeforeEvents() 'random_value_5cff79c316d3f9.73226122', ]; - $result = $this->createMock(URLWildcardTranslationResult::class); - $eventResult = $this->createMock(URLWildcardTranslationResult::class); + $result = self::createStub(URLWildcardTranslationResult::class); + $eventResult = self::createStub(URLWildcardTranslationResult::class); $innerServiceMock = $this->createMock(URLWildcardServiceInterface::class); $innerServiceMock->method('translate')->willReturn($result); diff --git a/tests/lib/Event/UserPreferenceServiceTest.php b/tests/lib/Event/UserPreferenceServiceTest.php index f0ea11b649..9e81b176d8 100644 --- a/tests/lib/Event/UserPreferenceServiceTest.php +++ b/tests/lib/Event/UserPreferenceServiceTest.php @@ -25,7 +25,7 @@ public function testSetUserPreferenceEvents() [], ]; - $innerServiceMock = $this->createMock(UserPreferenceServiceInterface::class); + $innerServiceMock = self::createStub(UserPreferenceServiceInterface::class); $service = new UserPreferenceService($innerServiceMock, $traceableEventDispatcher); $service->setUserPreference(...$parameters); @@ -50,7 +50,7 @@ public function testSetUserPreferenceStopPropagationInBeforeEvents() [], ]; - $innerServiceMock = $this->createMock(UserPreferenceServiceInterface::class); + $innerServiceMock = self::createStub(UserPreferenceServiceInterface::class); $traceableEventDispatcher->addListener(BeforeSetUserPreferenceEvent::class, static function (BeforeSetUserPreferenceEvent $event) { $event->stopPropagation(); diff --git a/tests/lib/Event/UserServiceTest.php b/tests/lib/Event/UserServiceTest.php index 50605257d4..13390c1d9f 100644 --- a/tests/lib/Event/UserServiceTest.php +++ b/tests/lib/Event/UserServiceTest.php @@ -47,11 +47,11 @@ public function testUpdateUserGroupEvents() ); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroupUpdateStruct::class), + self::createStub(UserGroup::class), + self::createStub(UserGroupUpdateStruct::class), ]; - $updatedUserGroup = $this->createMock(UserGroup::class); + $updatedUserGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserGroup')->willReturn($updatedUserGroup); @@ -76,12 +76,12 @@ public function testReturnUpdateUserGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroupUpdateStruct::class), + self::createStub(UserGroup::class), + self::createStub(UserGroupUpdateStruct::class), ]; - $updatedUserGroup = $this->createMock(UserGroup::class); - $eventUpdatedUserGroup = $this->createMock(UserGroup::class); + $updatedUserGroup = self::createStub(UserGroup::class); + $eventUpdatedUserGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserGroup')->willReturn($updatedUserGroup); @@ -111,12 +111,12 @@ public function testUpdateUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroupUpdateStruct::class), + self::createStub(UserGroup::class), + self::createStub(UserGroupUpdateStruct::class), ]; - $updatedUserGroup = $this->createMock(UserGroup::class); - $eventUpdatedUserGroup = $this->createMock(UserGroup::class); + $updatedUserGroup = self::createStub(UserGroup::class); + $eventUpdatedUserGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserGroup')->willReturn($updatedUserGroup); @@ -149,11 +149,11 @@ public function testUpdateUserEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUser')->willReturn($updatedUser); @@ -178,12 +178,12 @@ public function testReturnUpdateUserResultInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); - $eventUpdatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); + $eventUpdatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUser')->willReturn($updatedUser); @@ -213,12 +213,12 @@ public function testUpdateUserStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); - $eventUpdatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); + $eventUpdatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUser')->willReturn($updatedUser); @@ -251,11 +251,11 @@ public function testUnAssignUserFromUserGroupEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $service = new UserService($innerServiceMock, $traceableEventDispatcher); $service->unAssignUserFromUserGroup(...$parameters); @@ -277,11 +277,11 @@ public function testUnAssignUserFromUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $traceableEventDispatcher->addListener(BeforeUnAssignUserFromUserGroupEvent::class, static function (BeforeUnAssignUserFromUserGroupEvent $event) { $event->stopPropagation(); @@ -310,7 +310,7 @@ public function testDeleteUserGroupEvents() ); $parameters = [ - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), ]; $locations = []; @@ -338,7 +338,7 @@ public function testReturnDeleteUserGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), ]; $locations = []; @@ -372,7 +372,7 @@ public function testDeleteUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), ]; $locations = []; @@ -409,11 +409,11 @@ public function testAssignUserToUserGroupEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $service = new UserService($innerServiceMock, $traceableEventDispatcher); $service->assignUserToUserGroup(...$parameters); @@ -435,11 +435,11 @@ public function testAssignUserToUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $traceableEventDispatcher->addListener(BeforeAssignUserToUserGroupEvent::class, static function (BeforeAssignUserToUserGroupEvent $event) { $event->stopPropagation(); @@ -468,7 +468,7 @@ public function testDeleteUserEvents() ); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), ]; $locations = []; @@ -496,7 +496,7 @@ public function testReturnDeleteUserResultInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), ]; $locations = []; @@ -530,7 +530,7 @@ public function testDeleteUserStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), ]; $locations = []; @@ -567,11 +567,11 @@ public function testMoveUserGroupEvents() ); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $service = new UserService($innerServiceMock, $traceableEventDispatcher); $service->moveUserGroup(...$parameters); @@ -593,11 +593,11 @@ public function testMoveUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), + self::createStub(UserGroup::class), ]; - $innerServiceMock = $this->createMock(UserServiceInterface::class); + $innerServiceMock = self::createStub(UserServiceInterface::class); $traceableEventDispatcher->addListener(BeforeMoveUserGroupEvent::class, static function (BeforeMoveUserGroupEvent $event) { $event->stopPropagation(); @@ -626,11 +626,11 @@ public function testCreateUserEvents() ); $parameters = [ - $this->createMock(UserCreateStruct::class), + self::createStub(UserCreateStruct::class), [], ]; - $user = $this->createMock(User::class); + $user = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUser')->willReturn($user); @@ -655,12 +655,12 @@ public function testReturnCreateUserResultInBeforeEvents() ); $parameters = [ - $this->createMock(UserCreateStruct::class), + self::createStub(UserCreateStruct::class), [], ]; - $user = $this->createMock(User::class); - $eventUser = $this->createMock(User::class); + $user = self::createStub(User::class); + $eventUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUser')->willReturn($user); @@ -690,12 +690,12 @@ public function testCreateUserStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(UserCreateStruct::class), + self::createStub(UserCreateStruct::class), [], ]; - $user = $this->createMock(User::class); - $eventUser = $this->createMock(User::class); + $user = self::createStub(User::class); + $eventUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUser')->willReturn($user); @@ -728,11 +728,11 @@ public function testCreateUserGroupEvents() ); $parameters = [ - $this->createMock(UserGroupCreateStruct::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroupCreateStruct::class), + self::createStub(UserGroup::class), ]; - $userGroup = $this->createMock(UserGroup::class); + $userGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUserGroup')->willReturn($userGroup); @@ -757,12 +757,12 @@ public function testReturnCreateUserGroupResultInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroupCreateStruct::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroupCreateStruct::class), + self::createStub(UserGroup::class), ]; - $userGroup = $this->createMock(UserGroup::class); - $eventUserGroup = $this->createMock(UserGroup::class); + $userGroup = self::createStub(UserGroup::class); + $eventUserGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUserGroup')->willReturn($userGroup); @@ -792,12 +792,12 @@ public function testCreateUserGroupStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(UserGroupCreateStruct::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroupCreateStruct::class), + self::createStub(UserGroup::class), ]; - $userGroup = $this->createMock(UserGroup::class); - $eventUserGroup = $this->createMock(UserGroup::class); + $userGroup = self::createStub(UserGroup::class); + $eventUserGroup = self::createStub(UserGroup::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('createUserGroup')->willReturn($userGroup); @@ -830,11 +830,11 @@ public function testUpdateUserTokenEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserTokenUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserTokenUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserToken')->willReturn($updatedUser); @@ -859,12 +859,12 @@ public function testReturnUpdateUserTokenResultInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserTokenUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserTokenUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); - $eventUpdatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); + $eventUpdatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserToken')->willReturn($updatedUser); @@ -894,12 +894,12 @@ public function testUpdateUserTokenStopPropagationInBeforeEvents() ); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserTokenUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserTokenUpdateStruct::class), ]; - $updatedUser = $this->createMock(User::class); - $eventUpdatedUser = $this->createMock(User::class); + $updatedUser = self::createStub(User::class); + $eventUpdatedUser = self::createStub(User::class); $innerServiceMock = $this->createMock(UserServiceInterface::class); $innerServiceMock->method('updateUserToken')->willReturn($updatedUser); diff --git a/tests/lib/FieldType/APIFieldTypeTest.php b/tests/lib/FieldType/APIFieldTypeTest.php index 8f5fbd89cf..dcc073adf8 100644 --- a/tests/lib/FieldType/APIFieldTypeTest.php +++ b/tests/lib/FieldType/APIFieldTypeTest.php @@ -46,9 +46,9 @@ public function testValidateValidatorConfiguration() { $validatorConfig = ['foo' => 'bar']; $validationErrors = [ - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), ]; $this->innerFieldType ->expects(self::once()) @@ -76,9 +76,9 @@ public function testValidateFieldSettings() { $fieldSettings = ['foo' => 'bar']; $validationErrors = [ - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), ]; $this->innerFieldType ->expects(self::once()) @@ -108,9 +108,9 @@ public function testValidateValue() $fieldDefinition = $this->getMockForAbstractClass(APIFieldDefinition::class); $value = $this->getMockForAbstractClass(Value::class); $validationErrors = [ - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), - $this->createMock(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), + self::createStub(ValidationError::class), ]; $this->innerFieldType ->expects(self::once()) diff --git a/tests/lib/FieldType/AuthorTest.php b/tests/lib/FieldType/AuthorTest.php index c9528a517e..649a1d15b1 100644 --- a/tests/lib/FieldType/AuthorTest.php +++ b/tests/lib/FieldType/AuthorTest.php @@ -13,11 +13,12 @@ use Ibexa\Core\FieldType\Author\Type as AuthorType; use Ibexa\Core\FieldType\Author\Value as AuthorValue; use Ibexa\Core\FieldType\Value; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_author - */ +#[CoversMethod(AuthorCollection::class, 'removeAuthorsById')] +#[Group('fieldType')] +#[Group('ibexa_author')] class AuthorTest extends FieldTypeTestCase { /** @var \Ibexa\Core\FieldType\Author\Author[] */ @@ -61,7 +62,7 @@ protected function getEmptyValueExpectation(): AuthorValue return new AuthorValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -79,7 +80,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'empty array' => [ [], @@ -111,7 +112,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -143,7 +144,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -175,7 +176,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -194,7 +195,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -232,7 +233,7 @@ public function testAcceptValueInvalidType(): void $ft = $this->createFieldTypeUnderTest(); $this->expectException(InvalidArgumentException::class); - $ft->acceptValue($this->createMock(Value::class)); + $ft->acceptValue(self::createStub(Value::class)); } public function testAcceptValueInvalidFormat(): void @@ -301,8 +302,6 @@ public function testAddAuthor(): void } /** - * @covers \Ibexa\Core\FieldType\Author\AuthorCollection::removeAuthorsById - * * @throws \Random\RandomException */ public function testRemoveAuthors(): void @@ -328,7 +327,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_author'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { $authorList = new AuthorValue( [ @@ -338,7 +337,7 @@ public function provideDataForGetName(): array ); return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new AuthorValue(), '', [], 'en_GB'], [$authorList, 'Boba Fett', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/BaseFieldTypeTestCase.php b/tests/lib/FieldType/BaseFieldTypeTestCase.php index 68b92b036a..53b64b078a 100644 --- a/tests/lib/FieldType/BaseFieldTypeTestCase.php +++ b/tests/lib/FieldType/BaseFieldTypeTestCase.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\FieldType\ValidationError; use Ibexa\Contracts\Core\FieldType\Value as FieldTypeValue; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition as APIFieldDefinition; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -79,7 +80,7 @@ abstract protected function getEmptyValueExpectation(): FieldTypeValue; * class-string<\Throwable> * }> */ - abstract public function provideInvalidInputForAcceptValue(): iterable; + abstract public static function provideInvalidInputForAcceptValue(): iterable; /** * Data provider for valid input to acceptValue(). @@ -107,7 +108,7 @@ abstract public function provideInvalidInputForAcceptValue(): iterable; * * @phpstan-return iterable */ - abstract public function provideValidInputForAcceptValue(): iterable; + abstract public static function provideValidInputForAcceptValue(): iterable; /** * Provide input for the toHash() method. @@ -142,7 +143,7 @@ abstract public function provideValidInputForAcceptValue(): iterable; * * @phpstan-return iterable */ - abstract public function provideInputForToHash(): iterable; + abstract public static function provideInputForToHash(): iterable; /** * Provide input to fromHash() method. @@ -176,7 +177,7 @@ abstract public function provideInputForToHash(): iterable; * * @phpstan-return iterable */ - abstract public function provideInputForFromHash(): iterable; + abstract public static function provideInputForFromHash(): iterable; /** * Provides data for the getName() test. @@ -188,7 +189,7 @@ abstract public function provideInputForFromHash(): iterable; * 3?: string * }> */ - abstract public function provideDataForGetName(): array; + abstract public static function provideDataForGetName(): array; /** * Provide data sets with field settings which are considered invalid by the @@ -216,7 +217,7 @@ abstract public function provideDataForGetName(): array; * * @phpstan-return array */ - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -246,7 +247,7 @@ public function provideInValidFieldSettings(): array * * @phpstan-return iterable */ - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -286,7 +287,7 @@ public function provideValidFieldSettings(): iterable * * @phpstan-return array */ - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -330,7 +331,7 @@ public function provideValidValidatorConfiguration(): array * * @phpstan-return array */ - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -381,11 +382,16 @@ public function provideInvalidValidatorConfiguration(): array * * @phpstan-return iterable, \Ibexa\Contracts\Core\FieldType\Value}> */ - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'empty field definition data' => [ [], - $this->createMock(FieldTypeValue::class), + new class() implements FieldTypeValue { + public function __toString(): string + { + return ''; + } + }, ]; } @@ -454,11 +460,16 @@ public function provideValidDataForValidate(): iterable * array<\Ibexa\Contracts\Core\FieldType\ValidationError> * }> */ - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'invalid field definition data with no errors' => [ [], - $this->createMock(FieldTypeValue::class), + new class() implements FieldTypeValue { + public function __toString(): string + { + return ''; + } + }, [], ]; } @@ -486,10 +497,9 @@ public function testGetFieldTypeIdentifier(): void } /** - * @dataProvider provideDataForGetName - * * @param array $fieldSettings */ + #[DataProvider('provideDataForGetName')] public function testGetName( FieldTypeValue $value, string $expected, @@ -537,10 +547,9 @@ public function testEmptyValue(): void } /** - * @dataProvider provideValidInputForAcceptValue - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideValidInputForAcceptValue')] public function testAcceptValue(mixed $inputValue, FieldTypeValue $expectedOutputValue): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -574,12 +583,11 @@ public function testAcceptGetEmptyValue(): void } /** - * @dataProvider provideInvalidInputForAcceptValue - * * @phpstan-param class-string<\Throwable> $expectedException * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideInvalidInputForAcceptValue')] public function testAcceptValueFailsOnInvalidValues( mixed $inputValue, string $expectedException @@ -590,9 +598,7 @@ public function testAcceptValueFailsOnInvalidValues( $fieldType->acceptValue($inputValue); } - /** - * @dataProvider provideInputForToHash - */ + #[DataProvider('provideInputForToHash')] public function testToHash(FieldTypeValue $inputValue, mixed $expectedResult): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -617,10 +623,9 @@ public function testToHash(FieldTypeValue $inputValue, mixed $expectedResult): v } /** - * @dataProvider provideInputForFromHash - * * @param array|null $inputHash */ + #[DataProvider('provideInputForFromHash')] public function testFromHash(mixed $inputHash, mixed $expectedResult): void { $this->assertIsValidHashValue($inputHash); @@ -653,9 +658,7 @@ public function testEmptyValueIsEmpty(): void ); } - /** - * @dataProvider provideValidFieldSettings - */ + #[DataProvider('provideValidFieldSettings')] public function testValidateFieldSettingsValid(mixed $inputSettings): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -673,9 +676,7 @@ public function testValidateFieldSettingsValid(mixed $inputSettings): void ); } - /** - * @dataProvider provideInvalidFieldSettings - */ + #[DataProvider('provideInvalidFieldSettings')] public function testValidateFieldSettingsInvalid(mixed $inputSettings): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -702,9 +703,7 @@ public function testValidateFieldSettingsInvalid(mixed $inputSettings): void } } - /** - * @dataProvider provideValidValidatorConfiguration - */ + #[DataProvider('provideValidValidatorConfiguration')] public function testValidateValidatorConfigurationValid(mixed $inputConfiguration): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -722,9 +721,7 @@ public function testValidateValidatorConfigurationValid(mixed $inputConfiguratio ); } - /** - * @dataProvider provideInvalidValidatorConfiguration - */ + #[DataProvider('provideInvalidValidatorConfiguration')] public function testValidateValidatorConfigurationInvalid(mixed $inputConfiguration): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -751,9 +748,7 @@ public function testValidateValidatorConfigurationInvalid(mixed $inputConfigurat } } - /** - * @dataProvider provideValidFieldSettings - */ + #[DataProvider('provideValidFieldSettings')] public function testFieldSettingsToHash(mixed $inputSettings): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -763,9 +758,7 @@ public function testFieldSettingsToHash(mixed $inputSettings): void $this->assertIsValidHashValue($hash); } - /** - * @dataProvider provideValidValidatorConfiguration - */ + #[DataProvider('provideValidValidatorConfiguration')] public function testValidatorConfigurationToHash(mixed $inputConfiguration): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -775,9 +768,7 @@ public function testValidatorConfigurationToHash(mixed $inputConfiguration): voi $this->assertIsValidHashValue($hash); } - /** - * @dataProvider provideValidFieldSettings - */ + #[DataProvider('provideValidFieldSettings')] public function testFieldSettingsFromHash(mixed $inputSettings): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -788,9 +779,7 @@ public function testFieldSettingsFromHash(mixed $inputSettings): void self::assertEquals($inputSettings, $restoredSettings); } - /** - * @dataProvider provideValidValidatorConfiguration - */ + #[DataProvider('provideValidValidatorConfiguration')] public function testValidatorConfigurationFromHash(mixed $inputConfiguration): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -839,14 +828,17 @@ protected function assertIsValidHashValue(mixed $actualHash, array $keyChain = [ } /** - * @dataProvider provideValidDataForValidate - * * @param array $fieldDefinitionData * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideValidDataForValidate')] public function testValidateValid(array $fieldDefinitionData, FieldTypeValue $value): void { + if (isset($fieldDefinitionData['__no_data__'])) { + self::markTestSkipped($fieldDefinitionData['__no_data__']); + } + $validationErrors = $this->doValidate($fieldDefinitionData, $value); self::assertIsArray($validationErrors); @@ -854,15 +846,18 @@ public function testValidateValid(array $fieldDefinitionData, FieldTypeValue $va } /** - * @dataProvider provideInvalidDataForValidate - * * @param array $fieldDefinitionData * @param \Ibexa\Contracts\Core\FieldType\ValidationError[] $errors * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideInvalidDataForValidate')] public function testValidateInvalid(array $fieldDefinitionData, FieldTypeValue $value, array $errors): void { + if (isset($fieldDefinitionData['__no_data__'])) { + self::markTestSkipped($fieldDefinitionData['__no_data__']); + } + $validationErrors = $this->doValidate($fieldDefinitionData, $value); self::assertIsArray($validationErrors); diff --git a/tests/lib/FieldType/BinaryBaseTestCase.php b/tests/lib/FieldType/BinaryBaseTestCase.php index aa48bd279f..829cc4d499 100644 --- a/tests/lib/FieldType/BinaryBaseTestCase.php +++ b/tests/lib/FieldType/BinaryBaseTestCase.php @@ -11,17 +11,17 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Validator\FileExtensionBlackListValidator; use Ibexa\Core\FieldType\Value; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; /** * Base class for binary field types. - * - * @group fieldType */ +#[Group('fieldType')] abstract class BinaryBaseTestCase extends FieldTypeTestCase { /** @var string[] */ - protected array $blackListedExtensions = [ + protected const array BLACK_LISTED_EXTENSIONS = [ 'php', 'php3', 'phar', @@ -31,6 +31,9 @@ abstract class BinaryBaseTestCase extends FieldTypeTestCase 'pgif', ]; + /** @var string[] */ + protected array $blackListedExtensions = self::BLACK_LISTED_EXTENSIONS; + protected function getValidatorConfigurationSchemaExpectation(): array { return [ @@ -66,10 +69,15 @@ protected function getSettingsSchemaExpectation(): array return []; } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield [ - $this->getMockForAbstractClass(Value::class), + new class() extends Value { + public function __toString(): string + { + return ''; + } + }, InvalidArgumentException::class, ]; @@ -79,7 +87,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -102,7 +110,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ diff --git a/tests/lib/FieldType/BinaryFileTest.php b/tests/lib/FieldType/BinaryFileTest.php index 2e66cc93f3..3169ea7556 100644 --- a/tests/lib/FieldType/BinaryFileTest.php +++ b/tests/lib/FieldType/BinaryFileTest.php @@ -12,13 +12,12 @@ use Ibexa\Core\FieldType\BinaryFile\Type as BinaryFileType; use Ibexa\Core\FieldType\BinaryFile\Value as BinaryFileValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_binaryfile - * - * @covers \Ibexa\Core\FieldType\BinaryFile\Type - */ +#[CoversClass(BinaryFileType::class)] +#[Group('fieldType')] +#[Group('ibexa_binaryfile')] class BinaryFileTest extends BinaryBaseTestCase { protected function createFieldTypeUnderTest(): BinaryFileType @@ -37,7 +36,7 @@ protected function getEmptyValueExpectation(): BinaryFileValue return new BinaryFileValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield from parent::provideInvalidInputForAcceptValue(); @@ -47,7 +46,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -152,7 +151,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -299,7 +298,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -422,7 +421,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_binaryfile'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [new BinaryFileValue(), '', [], 'en_GB'], @@ -430,7 +429,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'valid file size' => [ [ @@ -452,7 +451,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'file too large' => [ [ @@ -504,7 +503,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), ], @@ -531,7 +530,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), ], diff --git a/tests/lib/FieldType/CheckboxTest.php b/tests/lib/FieldType/CheckboxTest.php index 5f44f17f03..1e465d4bee 100644 --- a/tests/lib/FieldType/CheckboxTest.php +++ b/tests/lib/FieldType/CheckboxTest.php @@ -10,11 +10,11 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Checkbox\Type as Checkbox; use Ibexa\Core\FieldType\Checkbox\Value as CheckboxValue; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_boolean - */ +#[Group('fieldType')] +#[Group('ibexa_boolean')] class CheckboxTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): Checkbox @@ -40,7 +40,7 @@ protected function getEmptyValueExpectation(): CheckboxValue return new CheckboxValue(false); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -55,7 +55,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'false value' => [ false, @@ -68,7 +68,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -82,7 +82,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -131,7 +131,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_boolean'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [new CheckboxValue(true), '1', [], 'en_GB'], @@ -139,9 +139,7 @@ public function provideDataForGetName(): array ]; } - /** - * @dataProvider provideForValueIsNeverEmpty - */ + #[DataProvider('provideForValueIsNeverEmpty')] public function testValueIsNeverEmpty(CheckboxValue $value): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -154,7 +152,7 @@ public function testValueIsNeverEmpty(CheckboxValue $value): void * \Ibexa\Core\FieldType\Checkbox\Value, * }> */ - public function provideForValueIsNeverEmpty(): iterable + public static function provideForValueIsNeverEmpty(): iterable { yield [new CheckboxValue(true)]; yield [new CheckboxValue(false)]; diff --git a/tests/lib/FieldType/CountryTest.php b/tests/lib/FieldType/CountryTest.php index bff98c93e8..ea0a18677a 100644 --- a/tests/lib/FieldType/CountryTest.php +++ b/tests/lib/FieldType/CountryTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\FieldType\Country\Type as Country; use Ibexa\Core\FieldType\Country\Value as CountryValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_country - */ +#[Group('fieldType')] +#[Group('ibexa_country')] class CountryTest extends FieldTypeTestCase { protected function provideFieldTypeIdentifier(): string @@ -91,7 +90,7 @@ protected function getEmptyValueExpectation(): CountryValue return new CountryValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield [ 'LegoLand', @@ -111,7 +110,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'multiple countries by alpha2' => [ ['BE', 'FR'], @@ -176,7 +175,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { yield [ new CountryValue( @@ -212,7 +211,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { yield [ ['BE'], @@ -248,7 +247,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [new CountryValue(), '', [], 'en_GB'], @@ -262,7 +261,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'empty value multiple' => [ [ @@ -290,7 +289,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'multiple countries when multiple not allowed' => [ [ diff --git a/tests/lib/FieldType/DateAndTimeTest.php b/tests/lib/FieldType/DateAndTimeTest.php index 9f327df861..5308f6770c 100644 --- a/tests/lib/FieldType/DateAndTimeTest.php +++ b/tests/lib/FieldType/DateAndTimeTest.php @@ -11,12 +11,12 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\DateAndTime\Type as DateAndTime; use Ibexa\Core\FieldType\DateAndTime\Value as DateAndTimeValue; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use stdClass; -/** - * @group fieldType - * @group ibexa_datetime - */ +#[Group('fieldType')] +#[Group('ibexa_datetime')] class DateAndTimeTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): DateAndTime @@ -55,7 +55,7 @@ protected function getEmptyValueExpectation(): DateAndTimeValue return new DateAndTimeValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -65,7 +65,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -88,7 +88,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -106,10 +106,9 @@ public function provideInputForToHash(): iterable } /** - * @dataProvider provideInputForFromHash - * * @param \Ibexa\Core\FieldType\DateAndTime\Value $expectedResult */ + #[DataProvider('provideInputForFromHash')] public function testFromHash(mixed $inputHash, mixed $expectedResult): void { $this->assertIsValidHashValue($inputHash); @@ -134,7 +133,7 @@ public function testFromHash(mixed $inputHash, mixed $expectedResult): void } } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { $date = new \DateTime('Tue, 28 Aug 2012 12:20:00 +0200'); @@ -160,10 +159,9 @@ public function provideInputForFromHash(): iterable } /** - * @dataProvider provideInputForTimeStringFromHash - * * @throws \DateMalformedIntervalStringException */ + #[DataProvider('provideInputForTimeStringFromHash')] public function testTimeStringFromHash(mixed $inputHash, string $intervalSpec): void { $this->assertIsValidHashValue($inputHash); @@ -203,7 +201,7 @@ public function testTimeStringFromHash(mixed $inputHash, string $intervalSpec): * * @phpstan-return array */ - public function provideInputForTimeStringFromHash(): array + public static function provideInputForTimeStringFromHash(): array { return [ [ @@ -227,7 +225,7 @@ public function provideInputForTimeStringFromHash(): array ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -255,7 +253,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -292,10 +290,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_datetime'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new DateAndTimeValue(), '', [], 'en_GB'], [DateAndTimeValue::fromTimestamp(438512400), 'Thu 1983-24-11 09:00:00', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/DateTest.php b/tests/lib/FieldType/DateTest.php index 5076d5cbd5..26ac1476d0 100644 --- a/tests/lib/FieldType/DateTest.php +++ b/tests/lib/FieldType/DateTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Date\Type as Date; use Ibexa\Core\FieldType\Date\Value as DateValue; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_date - */ +#[Group('fieldType')] +#[Group('ibexa_date')] class DateTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): Date @@ -47,7 +46,7 @@ protected function getEmptyValueExpectation(): DateValue return new DateValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -57,7 +56,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -87,7 +86,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -104,7 +103,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { $dateTime = new DateTime(); @@ -134,7 +133,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -153,7 +152,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -176,10 +175,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_date'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new DateValue(), '', [], 'en_GB'], [new DateValue(new DateTime('11/24/1983')), 'Thursday 24 November 1983', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/EmailAddressTest.php b/tests/lib/FieldType/EmailAddressTest.php index 35ab8ebc7c..94e3a5b55c 100644 --- a/tests/lib/FieldType/EmailAddressTest.php +++ b/tests/lib/FieldType/EmailAddressTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\EmailAddress\Type as EmailAddressType; use Ibexa\Core\FieldType\EmailAddress\Value as EmailAddressValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_email - */ +#[Group('fieldType')] +#[Group('ibexa_email')] class EmailAddressTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): EmailAddressType @@ -54,7 +53,7 @@ protected function getEmptyValueExpectation(): EmailAddressValue return new EmailAddressValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -69,7 +68,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -87,7 +86,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -101,7 +100,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -119,7 +118,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -140,7 +139,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -177,7 +176,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_email'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [new EmailAddressValue('john.doe@example.com'), 'john.doe@example.com', [], 'en_GB'], @@ -185,7 +184,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'valid email address' => [ [ @@ -195,7 +194,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'invalid email format' => [ [ diff --git a/tests/lib/FieldType/EmailAddressValidatorTest.php b/tests/lib/FieldType/EmailAddressValidatorTest.php index 6bb24f9657..8a31e0c64b 100644 --- a/tests/lib/FieldType/EmailAddressValidatorTest.php +++ b/tests/lib/FieldType/EmailAddressValidatorTest.php @@ -10,16 +10,16 @@ use Ibexa\Core\FieldType\EmailAddress\Value as EmailAddressValue; use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\EmailAddressValidator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; /** * @todo add more tests, like on validateConstraints method - * - * @group fieldType - * @group validator - * - * @covers \Ibexa\Core\FieldType\Validator\EmailAddressValidator */ +#[CoversClass(EmailAddressValidator::class)] +#[Group('fieldType')] +#[Group('validator')] class EmailAddressValidatorTest extends TestCase { public function testConstructor(): void diff --git a/tests/lib/FieldType/FieldTypeMockTest.php b/tests/lib/FieldType/FieldTypeMockTest.php index 3ad0eeb9cf..725a2ab320 100644 --- a/tests/lib/FieldType/FieldTypeMockTest.php +++ b/tests/lib/FieldType/FieldTypeMockTest.php @@ -9,8 +9,11 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\FieldType; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; +#[CoversMethod(FieldType::class, 'applyDefaultSettings')] class FieldTypeMockTest extends TestCase { public function testApplyDefaultSettingsThrowsInvalidArgumentException(): void @@ -30,11 +33,7 @@ public function testApplyDefaultSettingsThrowsInvalidArgumentException(): void $stub->applyDefaultSettings($fieldSettings); } - /** - * @dataProvider providerForTestApplyDefaultSettings - * - * @covers \Ibexa\Core\FieldType\FieldType::applyDefaultSettings - */ + #[DataProvider('providerForTestApplyDefaultSettings')] public function testApplyDefaultSettings(mixed $initialSettings, mixed $expectedSettings): void { /** @var \Ibexa\Core\FieldType\FieldType|\PHPUnit\Framework\MockObject\MockObject $stub */ @@ -209,10 +208,9 @@ public function testApplyDefaultValidatorConfigurationEmpty(): void } /** - * @dataProvider providerForTestApplyDefaultValidatorConfiguration - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForTestApplyDefaultValidatorConfiguration')] public function testApplyDefaultValidatorConfiguration(mixed $initialConfiguration, mixed $expectedConfiguration): void { /** @var \Ibexa\Core\FieldType\FieldType|\PHPUnit\Framework\MockObject\MockObject $stub */ @@ -255,7 +253,7 @@ public function testApplyDefaultValidatorConfiguration(mixed $initialConfigurati * array * }> */ - public function providerForTestApplyDefaultValidatorConfiguration(): iterable + public static function providerForTestApplyDefaultValidatorConfiguration(): iterable { $defaultConfiguration = [ 'TestValidator' => [ diff --git a/tests/lib/FieldType/FieldTypeTestCase.php b/tests/lib/FieldType/FieldTypeTestCase.php index c7bf807e81..8ec2c8dbf0 100644 --- a/tests/lib/FieldType/FieldTypeTestCase.php +++ b/tests/lib/FieldType/FieldTypeTestCase.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\FieldType\FieldType; use Ibexa\Contracts\Core\FieldType\Value as SPIValue; use Ibexa\Core\Persistence\TransformationProcessor; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; abstract class FieldTypeTestCase extends BaseFieldTypeTestCase @@ -33,9 +34,9 @@ protected function getTransformationProcessorMock(): TransformationProcessor & M /** * @phpstan-return iterable */ - public function provideInputForValuesEqual(): iterable + public static function provideInputForValuesEqual(): iterable { - yield from $this->provideInputForFromHash(); + yield from static::provideInputForFromHash(); } abstract protected function createFieldTypeUnderTest(): FieldType & Comparable; @@ -49,9 +50,7 @@ protected function getFieldTypeUnderTest(): FieldType & Comparable return $this->fieldTypeUnderTest; } - /** - * @dataProvider provideInputForValuesEqual - */ + #[DataProvider('provideInputForValuesEqual')] public function testValuesEqual(mixed $inputValue1Hash, SPIValue $inputValue2): void { $fieldType = $this->getFieldTypeUnderTest(); diff --git a/tests/lib/FieldType/FileSizeValidatorTest.php b/tests/lib/FieldType/FileSizeValidatorTest.php index 9dbb25c6bd..b275b0c166 100644 --- a/tests/lib/FieldType/FileSizeValidatorTest.php +++ b/tests/lib/FieldType/FileSizeValidatorTest.php @@ -11,17 +11,20 @@ use Ibexa\Contracts\Core\Repository\Values\Translation\Message; use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\FileSizeValidator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @group fieldType - * @group validator - * - * @covers \Ibexa\Core\FieldType\Validator\FileSizeValidator - */ +#[CoversClass(FileSizeValidator::class)] +#[CoversMethod(FileSizeValidator::class, 'validate')] +#[CoversMethod(Validator::class, 'getMessage')] +#[Group('fieldType')] +#[Group('validator')] class FileSizeValidatorTest extends TestCase { - protected function getMaxFileSize(): int + protected static function getMaxFileSize(): int { return 4096; } @@ -104,12 +107,8 @@ public function testGetBadConstraint(): void * Tests validating a correct value. * * @param int $size - * - * @dataProvider providerForValidateOK - * - * @covers \Ibexa\Core\FieldType\Validator\FileSizeValidator::validate - * @covers \Ibexa\Core\FieldType\Validator::getMessage */ + #[DataProvider('providerForValidateOK')] public function testValidateCorrectValues($size) { self::markTestSkipped('BinaryFile field type does not use this validator anymore.'); @@ -133,7 +132,7 @@ protected function getBinaryFileValue($size) return $value; } - public function providerForValidateOK() + public static function providerForValidateOK() { return [ [0], @@ -144,11 +143,8 @@ public function providerForValidateOK() /** * Tests validating a wrong value. - * - * @dataProvider providerForValidateKO - * - * @covers \Ibexa\Core\FieldType\Validator\FileSizeValidator::validate */ + #[DataProvider('providerForValidateKO')] public function testValidateWrongValues($size, $message, $values) { self::markTestSkipped('BinaryFile field type does not use this validator anymore.'); @@ -179,7 +175,7 @@ public function testValidateWrongValues($size, $message, $values) ); } - public function providerForValidateKO() + public static function providerForValidateKO() { return [ [ @@ -188,7 +184,7 @@ public function providerForValidateKO() 'The file size cannot exceed %size% byte.', 'The file size cannot exceed %size% bytes.', ], - ['%size%' => $this->getMaxFileSize()], + ['%size%' => self::getMaxFileSize()], ], ]; } @@ -196,10 +192,10 @@ public function providerForValidateKO() /** * Tests validation of constraints. * - * @dataProvider providerForValidateConstraintsOK * * @param array $constraints */ + #[DataProvider('providerForValidateConstraintsOK')] public function testValidateConstraintsCorrectValues(array $constraints): void { $validator = new FileSizeValidator(); @@ -212,7 +208,7 @@ public function testValidateConstraintsCorrectValues(array $constraints): void /** * @return array */ - public function providerForValidateConstraintsOK(): array + public static function providerForValidateConstraintsOK(): array { return [ [ @@ -226,12 +222,11 @@ public function providerForValidateConstraintsOK(): array } /** - * @dataProvider providerForValidateConstraintsKO - * * @param array $constraints * @param string[] $expectedMessages * @param array $values */ + #[DataProvider('providerForValidateConstraintsKO')] public function testValidateConstraintsWrongValues(array $constraints, array $expectedMessages, array $values): void { $validator = new FileSizeValidator(); @@ -254,7 +249,7 @@ public function testValidateConstraintsWrongValues(array $constraints, array $ex /** * @return array, string[], array}> */ - public function providerForValidateConstraintsKO(): array + public static function providerForValidateConstraintsKO(): array { return [ [ diff --git a/tests/lib/FieldType/FloatTest.php b/tests/lib/FieldType/FloatTest.php index 343f735897..478b48ad07 100644 --- a/tests/lib/FieldType/FloatTest.php +++ b/tests/lib/FieldType/FloatTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\Float\Type as FloatType; use Ibexa\Core\FieldType\Float\Value as FloatValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_float - */ +#[Group('fieldType')] +#[Group('ibexa_float')] class FloatTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): FloatType @@ -52,7 +51,7 @@ protected function getEmptyValueExpectation(): FloatValue return new FloatValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -70,7 +69,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -103,7 +102,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -117,7 +116,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -131,7 +130,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -176,7 +175,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -213,15 +212,15 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_float'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new FloatValue(), '', [], 'en_GB'], [new FloatValue(23.42), '23.42', [], 'en_GB'], ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'value within range' => [ [ @@ -236,7 +235,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'value below minimum' => [ [ diff --git a/tests/lib/FieldType/Generic/GenericTest.php b/tests/lib/FieldType/Generic/GenericTest.php index cd997c6d76..7f881b1950 100644 --- a/tests/lib/FieldType/Generic/GenericTest.php +++ b/tests/lib/FieldType/Generic/GenericTest.php @@ -16,6 +16,7 @@ use Ibexa\Tests\Core\FieldType\BaseFieldTypeTestCase; use Ibexa\Tests\Core\FieldType\Generic\Stubs\Type as GenericFieldTypeStub; use Ibexa\Tests\Core\FieldType\Generic\Stubs\Value as GenericFieldValueStub; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ConstraintViolationList; @@ -37,25 +38,23 @@ protected function setUp(): void } /** - * @dataProvider provideValidDataForValidate - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideValidDataForValidate')] public function testValidateValid(array $fieldDefinitionData, Value $value): void { $this->validator ->method('validate') ->with($value, null) - ->willReturn($this->createMock(ConstraintViolationListInterface::class)); + ->willReturn(self::createStub(ConstraintViolationListInterface::class)); parent::testValidateValid($fieldDefinitionData, $value); } /** - * @dataProvider provideInvalidDataForValidate - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('provideInvalidDataForValidate')] public function testValidateInvalid(array $fieldDefinitionData, FieldTypeValue $value, array $errors): void { $constraintViolationList = new ConstraintViolationList( @@ -105,7 +104,7 @@ protected function getEmptyValueExpectation(): GenericFieldValueStub return new GenericFieldValueStub(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -115,7 +114,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null' => [ null, @@ -131,7 +130,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -145,7 +144,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -159,7 +158,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [new GenericFieldValueStub('This is a generic value.'), 'This is a generic value.', [], 'en_GB'], diff --git a/tests/lib/FieldType/Generic/ValueSerializer/SymfonySerializerAdapterTest.php b/tests/lib/FieldType/Generic/ValueSerializer/SymfonySerializerAdapterTest.php index f564441e91..be19653116 100644 --- a/tests/lib/FieldType/Generic/ValueSerializer/SymfonySerializerAdapterTest.php +++ b/tests/lib/FieldType/Generic/ValueSerializer/SymfonySerializerAdapterTest.php @@ -54,7 +54,7 @@ protected function setUp(): void public function testNormalize(): void { - $value = $this->createMock(Value::class); + $value = self::createStub(Value::class); $data = ['value' => 'test']; $this->normalizer @@ -69,7 +69,7 @@ public function testNormalize(): void public function testDenormalize(): void { $data = ['value' => 'test']; - $value = $this->createMock(Value::class); + $value = self::createStub(Value::class); $this->denomalizer ->expects(self::once()) diff --git a/tests/lib/FieldType/ISBNTest.php b/tests/lib/FieldType/ISBNTest.php index b2c45eb8cb..5da6a2ec6c 100644 --- a/tests/lib/FieldType/ISBNTest.php +++ b/tests/lib/FieldType/ISBNTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\ISBN\Type as ISBN; use Ibexa\Core\FieldType\ISBN\Value as ISBNValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_isbn - */ +#[Group('fieldType')] +#[Group('ibexa_isbn')] class ISBNTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): ISBN @@ -46,7 +45,7 @@ protected function getEmptyValueExpectation(): ISBNValue return new ISBNValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -68,7 +67,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'ISBN-13 standard' => [ '9789722514095', @@ -86,7 +85,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -96,7 +95,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -111,15 +110,15 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_isbn'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new ISBNValue(), '', [], 'en_GB'], [new ISBNValue('9789722514095'), '9789722514095', [], 'en_GB'], ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'empty value with ISBN-13' => [ [ @@ -158,7 +157,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'ISBN-13 when ISBN-10 required' => [ [ diff --git a/tests/lib/FieldType/Image/IO/LegacyTest.php b/tests/lib/FieldType/Image/IO/LegacyTest.php index 682c2f8948..f7d340636f 100644 --- a/tests/lib/FieldType/Image/IO/LegacyTest.php +++ b/tests/lib/FieldType/Image/IO/LegacyTest.php @@ -15,12 +15,11 @@ use Ibexa\Core\IO\IOServiceInterface; use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\IO\Values\BinaryFileCreateStruct; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\FieldType\Image\IO\Legacy - */ +#[CoversClass(LegacyIOService::class)] final class LegacyTest extends TestCase { protected LegacyIOService $service; diff --git a/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php b/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php index 807839ab92..878ec5c513 100644 --- a/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php +++ b/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php @@ -8,20 +8,19 @@ namespace Ibexa\Tests\Core\FieldType\Image\PathGenerator; use Ibexa\Core\FieldType\Image\PathGenerator\LegacyPathGenerator; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @group fieldType - * @group ibexa_image - */ +#[Group('fieldType')] +#[Group('ibexa_image')] class LegacyPathGeneratorTest extends TestCase { /** * @param mixed $data * @param mixed $expectedPath - * - * @dataProvider provideStoragePathForFieldData */ + #[DataProvider('provideStoragePathForFieldData')] public function testGetStoragePathForField($data, $expectedPath) { $pathGenerator = new LegacyPathGenerator(); @@ -36,7 +35,7 @@ public function testGetStoragePathForField($data, $expectedPath) ); } - public function provideStoragePathForFieldData() + public static function provideStoragePathForFieldData() { return [ [ diff --git a/tests/lib/FieldType/ImageAsset/AssetMapperTest.php b/tests/lib/FieldType/ImageAsset/AssetMapperTest.php index 3cfdcb09ec..5c7aba9931 100644 --- a/tests/lib/FieldType/ImageAsset/AssetMapperTest.php +++ b/tests/lib/FieldType/ImageAsset/AssetMapperTest.php @@ -23,6 +23,7 @@ use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class AssetMapperTest extends TestCase @@ -82,15 +83,19 @@ public function testCreateAsset(): void ->with($contentType, $languageCode) ->willReturn($contentCreateStruct); + $matcher = self::exactly(2); $contentCreateStruct - ->expects(self::at(0)) + ->expects($matcher) ->method('setField') - ->with($this->mappings['name_field_identifier'], $name); - - $contentCreateStruct - ->expects(self::at(1)) - ->method('setField') - ->with($this->mappings['content_field_identifier'], $value); + ->willReturnCallback(function (string $fieldDefIdentifier, mixed $actualValue, ?string $language = null) use ($matcher, $name, $value): void { + if ($matcher->numberOfInvocations() === 1) { + self::assertSame($this->mappings['name_field_identifier'], $fieldDefIdentifier); + self::assertSame($name, $actualValue); + } else { + self::assertSame($this->mappings['content_field_identifier'], $fieldDefIdentifier); + self::assertSame($value, $actualValue); + } + }); $this->locationService ->expects(self::once()) @@ -208,9 +213,7 @@ public function testGetAssetValueThrowsInvalidArgumentException(): void $mapper->getAssetField($content); } - /** - * @dataProvider dataProviderForIsAsset - */ + #[DataProvider('dataProviderForIsAsset')] public function testIsAsset(int $contentContentTypeId, int $assetContentTypeId, bool $expected): void { $assetContentType = new ContentType([ @@ -230,7 +233,7 @@ public function testIsAsset(int $contentContentTypeId, int $assetContentTypeId, self::assertEquals($expected, $actual); } - public function dataProviderForIsAsset(): array + public static function dataProviderForIsAsset(): array { return [ [487, 487, true], @@ -280,7 +283,7 @@ private function createMapper(): AssetMapper private function createPartialMapper(array $methods = []): AssetMapper { - return $this + $builder = $this ->getMockBuilder(AssetMapper::class) ->setConstructorArgs([ $this->contentService, @@ -290,9 +293,12 @@ private function createPartialMapper(array $methods = []): AssetMapper ]) ->disableOriginalClone() ->disableArgumentCloning() - ->disallowMockingUnknownTypes() - ->setMethods($methods) - ->getMock(); + ->disallowMockingUnknownTypes(); + if ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + + return $builder->getMock(); } private function createContentWithId(int $id): Content diff --git a/tests/lib/FieldType/ImageAssetTest.php b/tests/lib/FieldType/ImageAssetTest.php index 430fcda201..7bc27c4bf1 100644 --- a/tests/lib/FieldType/ImageAssetTest.php +++ b/tests/lib/FieldType/ImageAssetTest.php @@ -20,13 +20,16 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Image\Value; use Ibexa\Core\FieldType\ImageAsset; +use Ibexa\Core\FieldType\Relation\Type; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; -/** - * @group fieldType - * @group ibexa_image_asset - */ +#[CoversMethod(Type::class, 'getRelations')] +#[Group('fieldType')] +#[Group('ibexa_image_asset')] class ImageAssetTest extends FieldTypeTestCase { private const int DESTINATION_CONTENT_ID = 14; @@ -103,7 +106,7 @@ protected function getEmptyValueExpectation(): ImageAsset\Value return new ImageAsset\Value(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -113,13 +116,13 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { $destinationContentId = 7; yield 'null input' => [ null, - $this->getEmptyValueExpectation(), + new ImageAsset\Value(), ]; yield 'content id' => [ @@ -135,7 +138,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { $destinationContentId = 7; $alternativeText = 'The alternative text for image'; @@ -165,7 +168,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { $destinationContentId = 7; $alternativeText = 'The alternative text for image'; @@ -192,9 +195,13 @@ public function provideInputForFromHash(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { - yield from []; + yield 'no invalid data sets defined' => [ + ['__no_data__' => 'No invalid data sets for validate() defined for this FieldType.'], + new ImageAsset\Value(), + [], + ]; } public function testValidateNonAsset(): void @@ -240,25 +247,24 @@ public function testValidateNonAsset(): void ], $validationErrors); } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'empty value' => [ [], - $this->getEmptyValueExpectation(), + new ImageAsset\Value(), ]; } /** - * @dataProvider provideDataForTestValidateValidNonEmptyAssetValue - * * @param array<\Ibexa\Core\FieldType\ValidationError> $expectedValidationErrors */ + #[DataProvider('provideDataForTestValidateValidNonEmptyAssetValue')] public function testValidateValidNonEmptyAssetValue( int $fileSize, array $expectedValidationErrors ): void { $destinationContentId = 7; - $destinationContent = $this->createMock(Content::class); + $destinationContent = self::createStub(Content::class); $this->contentServiceMock ->expects(self::once()) @@ -311,7 +317,7 @@ public function testValidateValidNonEmptyAssetValue( * array<\Ibexa\Core\FieldType\ValidationError>, * }> */ - public function provideDataForTestValidateValidNonEmptyAssetValue(): iterable + public static function provideDataForTestValidateValidNonEmptyAssetValue(): iterable { yield 'No validation errors' => [ 123456, @@ -333,11 +339,11 @@ public function provideDataForTestValidateValidNonEmptyAssetValue(): iterable ]; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ 'empty_destination_content_id' => [ - $this->getEmptyValueExpectation(), + new ImageAsset\Value(), '', [], 'en_GB', @@ -351,9 +357,7 @@ public function provideDataForGetName(): array ]; } - /** - * @dataProvider provideDataForGetName - */ + #[DataProvider('provideDataForGetName')] public function testGetName( SPIValue $value, string $expected, @@ -375,8 +379,6 @@ public function testIsSearchable(): void } /** - * @covers \Ibexa\Core\FieldType\Relation\Type::getRelations - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ public function testGetRelations(): void diff --git a/tests/lib/FieldType/ImageTest.php b/tests/lib/FieldType/ImageTest.php index f806ea6fa3..984c83b6d6 100644 --- a/tests/lib/FieldType/ImageTest.php +++ b/tests/lib/FieldType/ImageTest.php @@ -16,12 +16,12 @@ use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\FieldType\Validator\FileExtensionBlackListValidator; use Ibexa\Core\FieldType\Validator\ImageValidator; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; -/** - * @group fieldType - * @group ibexa_float - */ +#[Group('fieldType')] +#[Group('ibexa_float')] class ImageTest extends FieldTypeTestCase { /** @var string[] */ @@ -32,7 +32,7 @@ class ImageTest extends FieldTypeTestCase ]; /** @var string[] */ - protected array $blackListedExtensions = [ + protected const array BLACK_LISTED_EXTENSIONS = [ 'php', 'php3', 'phar', @@ -42,9 +42,12 @@ class ImageTest extends FieldTypeTestCase 'pgif', ]; + /** @var string[] */ + protected array $blackListedExtensions = self::BLACK_LISTED_EXTENSIONS; + private MimeTypeDetector & MockObject $mimeTypeDetectorMock; - public function getImageInputPath(): string + public static function getImageInputPath(): string { return __DIR__ . '/../_fixtures/squirrel-developers.jpg'; } @@ -124,7 +127,7 @@ protected function getEmptyValueExpectation(): ImageValue return new ImageValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -172,7 +175,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -190,12 +193,12 @@ public function provideValidInputForAcceptValue(): iterable ]; yield 'file path string' => [ - $this->getImageInputPath(), + self::getImageInputPath(), new ImageValue( [ - 'inputUri' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'inputUri' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => null, ] ), @@ -203,40 +206,40 @@ public function provideValidInputForAcceptValue(): iterable yield 'array with all fields' => [ [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ], new ImageValue( [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ] ), ]; yield 'array with inputUri and custom fields' => [ [ - 'inputUri' => $this->getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'fileName' => 'My Fancy Filename', 'fileSize' => 123, ], new ImageValue( [ - 'inputUri' => $this->getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'fileName' => 'My Fancy Filename', - 'fileSize' => filesize($this->getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), ] ), ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -246,24 +249,24 @@ public function provideInputForToHash(): iterable [ new ImageValue( [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12345', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), 'width' => 123, 'height' => 456, 'mime' => 'image/jpeg', ] ), [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12345', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), 'inputUri' => null, 'width' => 123, 'height' => 456, @@ -274,12 +277,12 @@ public function provideInputForToHash(): iterable [ new ImageValue( [ - 'inputUri' => $this->getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12345', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), 'mime' => null, ] ), @@ -289,8 +292,8 @@ public function provideInputForToHash(): iterable 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12345', - 'uri' => 'http://' . $this->getImageInputPath(), - 'inputUri' => $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'width' => null, 'height' => null, 'additionalData' => [], @@ -300,7 +303,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -309,38 +312,38 @@ public function provideInputForFromHash(): iterable ], [ [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ], new ImageValue( [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ] ), ], // BC with 5.0 (EZP-20948). Path can be used as input instead of ID. [ [ - 'inputUri' => $this->getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ], new ImageValue( [ - 'inputUri' => $this->getImageInputPath(), + 'inputUri' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), ] ), ], @@ -351,7 +354,7 @@ public function provideInputForFromHash(): iterable /** * @phpstan-return iterable, mixed, mixed}> */ - public function provideDataForFromPersistenceValue(): iterable + public static function provideDataForFromPersistenceValue(): iterable { yield 'width and height as empty string are converted to null' => [ [ @@ -389,9 +392,8 @@ public function provideDataForFromPersistenceValue(): iterable /** * @param array $data - * - * @dataProvider provideDataForFromPersistenceValue */ + #[DataProvider('provideDataForFromPersistenceValue')] public function testFromPersistenceValue(array $data, mixed $expectedWidth, mixed $expectedHeight): void { $fieldType = $this->getFieldTypeUnderTest(); @@ -409,10 +411,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_image'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new ImageValue(), '', [], 'en_GB'], [ new ImageValue(['fileName' => 'Sindelfingen-Squirrels.jpg']), 'Sindelfingen-Squirrels.jpg', @@ -445,7 +447,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'valid image within size limit' => [ [ @@ -457,9 +459,9 @@ public function provideValidDataForValidate(): iterable ], new ImageValue( [ - 'id' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'id' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => null, 'uri' => '', ] @@ -467,7 +469,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'file too large' => [ [ @@ -479,9 +481,9 @@ public function provideInvalidDataForValidate(): iterable ], new ImageValue( [ - 'id' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'id' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => null, 'uri' => '', ] @@ -519,7 +521,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), new ValidationError( @@ -552,7 +554,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), new ValidationError('A valid image file is required.', null, [], 'id'), @@ -588,7 +590,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), new ValidationError( @@ -621,7 +623,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), new ValidationError( @@ -643,9 +645,9 @@ public function provideInvalidDataForValidate(): iterable ], new ImageValue( [ - 'id' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'id' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => null, 'uri' => '', ] @@ -670,9 +672,9 @@ public function provideInvalidDataForValidate(): iterable ], new ImageValue( [ - 'id' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'id' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => '', 'uri' => '', ] @@ -698,9 +700,9 @@ public function provideInvalidDataForValidate(): iterable ], new ImageValue( [ - 'id' => $this->getImageInputPath(), - 'fileName' => basename($this->getImageInputPath()), - 'fileSize' => filesize($this->getImageInputPath()), + 'id' => self::getImageInputPath(), + 'fileName' => basename(self::getImageInputPath()), + 'fileSize' => filesize(self::getImageInputPath()), 'alternativeText' => '', 'uri' => '', ] @@ -722,27 +724,27 @@ public function provideInvalidDataForValidate(): iterable /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ - public function provideInputForValuesEqual(): iterable + public static function provideInputForValuesEqual(): iterable { yield [ [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12345', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), 'width' => 123, 'height' => 456, ], new ImageValue( [ - 'id' => $this->getImageInputPath(), + 'id' => self::getImageInputPath(), 'fileName' => 'Sindelfingen-Squirrels.jpg', 'fileSize' => 23, 'alternativeText' => 'This is so Sindelfingen!', 'imageId' => '123-12317', - 'uri' => 'http://' . $this->getImageInputPath(), + 'uri' => 'http://' . self::getImageInputPath(), 'inputUri' => null, 'width' => 123, 'height' => 456, diff --git a/tests/lib/FieldType/IntegerTest.php b/tests/lib/FieldType/IntegerTest.php index c732a9917c..67bd6b481f 100644 --- a/tests/lib/FieldType/IntegerTest.php +++ b/tests/lib/FieldType/IntegerTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\Integer\Type as IntegerType; use Ibexa\Core\FieldType\Integer\Value as IntegerValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_integer - */ +#[Group('fieldType')] +#[Group('ibexa_integer')] class IntegerTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): IntegerType @@ -52,7 +51,7 @@ protected function getEmptyValueExpectation(): IntegerValue return new IntegerValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -70,7 +69,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -93,7 +92,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -107,7 +106,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -121,7 +120,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -166,7 +165,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -203,15 +202,15 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_integer'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new IntegerValue(), '', [], 'en_GB'], [new IntegerValue(42), '42', [], 'en_GB'], ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'value within range' => [ [ @@ -226,7 +225,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'value below minimum' => [ [ diff --git a/tests/lib/FieldType/KeywordTest.php b/tests/lib/FieldType/KeywordTest.php index e0214b812c..b63c079264 100644 --- a/tests/lib/FieldType/KeywordTest.php +++ b/tests/lib/FieldType/KeywordTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\Keyword\Type as KeywordType; use Ibexa\Core\FieldType\Keyword\Value as KeywordValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_integer - */ +#[Group('fieldType')] +#[Group('ibexa_integer')] class KeywordTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): KeywordType @@ -41,7 +40,7 @@ protected function getEmptyValueExpectation(): KeywordValue return new KeywordValue([]); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -51,7 +50,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -79,7 +78,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -93,7 +92,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -112,10 +111,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_keyword'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new KeywordValue([]), '', [], 'en_GB'], [new KeywordValue(['foo', 'bar']), 'foo, bar', [], 'en_GB'], ]; } @@ -123,7 +122,7 @@ public function provideDataForGetName(): array /** * @return iterable, 1: \Ibexa\Core\FieldType\Keyword\Value}> */ - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'multiple keywords' => [ [], @@ -148,7 +147,7 @@ public function provideValidDataForValidate(): iterable * 2: array<\Ibexa\Contracts\Core\FieldType\ValidationError> * }> */ - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { $maxLen = KeywordType::MAX_KEYWORD_LENGTH; diff --git a/tests/lib/FieldType/MapLocationTest.php b/tests/lib/FieldType/MapLocationTest.php index d0b16cb9a3..6ed764065f 100644 --- a/tests/lib/FieldType/MapLocationTest.php +++ b/tests/lib/FieldType/MapLocationTest.php @@ -35,7 +35,7 @@ protected function getEmptyValueExpectation(): MapLocation\Value return new MapLocation\Value(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -72,7 +72,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -137,7 +137,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -161,7 +161,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -190,10 +190,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_gmap_location'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new MapLocation\Value(), '', [], 'en_GB'], [new MapLocation\Value(['address' => 'Bag End, The Shire']), 'Bag End, The Shire', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/MediaTest.php b/tests/lib/FieldType/MediaTest.php index fbc79691ca..3952d1ebda 100644 --- a/tests/lib/FieldType/MediaTest.php +++ b/tests/lib/FieldType/MediaTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\FieldType\Media\Type as MediaType; use Ibexa\Core\FieldType\Media\Value as MediaValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_binaryfile - */ +#[Group('fieldType')] +#[Group('ibexa_binaryfile')] class MediaTest extends BinaryBaseTestCase { protected function createFieldTypeUnderTest(): MediaType @@ -42,7 +41,7 @@ protected function getSettingsSchemaExpectation(): array ]; } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield from parent::provideInvalidInputForAcceptValue(); @@ -72,7 +71,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -278,7 +277,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -411,7 +410,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -504,7 +503,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -523,7 +522,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -545,7 +544,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_media'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ [ @@ -563,7 +562,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'valid media file within size limit' => [ [ @@ -585,7 +584,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'file too large' => [ [ @@ -635,7 +634,7 @@ public function provideInvalidDataForValidate(): iterable new ValidationError( 'A valid file is required. The following file extensions are not allowed: %extensionsBlackList%', null, - ['%extensionsBlackList%' => implode(', ', $this->blackListedExtensions)], + ['%extensionsBlackList%' => implode(', ', self::BLACK_LISTED_EXTENSIONS)], 'fileExtensionBlackList' ), ], diff --git a/tests/lib/FieldType/RelationListTest.php b/tests/lib/FieldType/RelationListTest.php index c4d6ee6158..aaf682d1ce 100644 --- a/tests/lib/FieldType/RelationListTest.php +++ b/tests/lib/FieldType/RelationListTest.php @@ -17,6 +17,7 @@ use Ibexa\Core\FieldType\RelationList\Value; use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\Repository\Validator\TargetContentValidatorInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; class RelationListTest extends FieldTypeTestCase @@ -131,7 +132,7 @@ protected function getEmptyValueExpectation(): Value return new Value(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -141,7 +142,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'empty value object' => [ new Value(), @@ -164,7 +165,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -178,7 +179,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -192,7 +193,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -252,7 +253,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -288,7 +289,7 @@ public function provideInValidFieldSettings(): array ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -311,7 +312,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -343,7 +344,7 @@ public function provideInvalidValidatorConfiguration(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'unlimited selection limit' => [ [ @@ -390,7 +391,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'selection exceeds limit' => [ [ @@ -418,15 +419,22 @@ public function testValidateNotExistingContentRelations(): void { $invalidDestinationContentId = (int) 'invalid'; $invalidDestinationContentId2 = (int) 'invalid-second'; + $matcher = self::exactly(2); $this->targetContentValidator - ->expects(self::exactly(2)) - ->method('validate') - ->withConsecutive([$invalidDestinationContentId], [$invalidDestinationContentId2]) - ->willReturnOnConsecutiveCalls( - $this->generateValidationError($invalidDestinationContentId), - $this->generateValidationError($invalidDestinationContentId2) - ); + ->expects($matcher) + ->method('validate')->willReturnCallback(function (...$parameters) use ($matcher, $invalidDestinationContentId, $invalidDestinationContentId2) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame($invalidDestinationContentId, $parameters[0]); + + return $this->generateValidationError($invalidDestinationContentId); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame($invalidDestinationContentId2, $parameters[0]); + + return $this->generateValidationError($invalidDestinationContentId2); + } + }); $validationErrors = $this->doValidate([], new Value([$invalidDestinationContentId, $invalidDestinationContentId2])); @@ -439,17 +447,23 @@ public function testValidateInvalidContentType(): void $destinationContentId = 12; $destinationContentId2 = 13; $allowedContentTypes = ['article', 'folder']; + $matcher = $this->exactly(2); - $this->targetContentValidator - ->method('validate') - ->withConsecutive( - [$destinationContentId, $allowedContentTypes], - [$destinationContentId2, $allowedContentTypes] - ) - ->willReturnOnConsecutiveCalls( - $this->generateContentTypeValidationError('test'), - $this->generateContentTypeValidationError('test') - ); + $this->targetContentValidator->expects($matcher) + ->method('validate')->willReturnCallback(function (...$parameters) use ($matcher, $destinationContentId, $allowedContentTypes, $destinationContentId2) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame($destinationContentId, $parameters[0]); + $this->assertSame($allowedContentTypes, $parameters[1]); + + return $this->generateContentTypeValidationError('test'); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame($destinationContentId2, $parameters[0]); + $this->assertSame($allowedContentTypes, $parameters[1]); + + return $this->generateContentTypeValidationError('test'); + } + }); $validationErrors = $this->doValidate( ['fieldSettings' => ['selectionContentTypes' => $allowedContentTypes]], @@ -500,9 +514,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_object_relation_list'; } - /** - * @dataProvider provideDataForGetName - */ + #[DataProvider('provideDataForGetName')] public function testGetName( SPIValue $value, string $expected, @@ -516,10 +528,10 @@ public function testGetName( self::assertSame($expected, $name); } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new Value(), '', [], 'en_GB'], [new Value([self::DESTINATION_CONTENT_ID_14, self::DESTINATION_CONTENT_ID_22]), 'name_14_en_GB name_22_en_GB', [], 'en_GB'], [new Value([self::DESTINATION_CONTENT_ID_14, self::DESTINATION_CONTENT_ID_22]), 'Name_14_de_DE Name_22_de_DE', [], 'de_DE'], ]; diff --git a/tests/lib/FieldType/RelationTest.php b/tests/lib/FieldType/RelationTest.php index 275742017c..6f6012b731 100644 --- a/tests/lib/FieldType/RelationTest.php +++ b/tests/lib/FieldType/RelationTest.php @@ -18,6 +18,7 @@ use Ibexa\Core\FieldType\Relation\Value; use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\Repository\Validator\TargetContentValidatorInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; class RelationTest extends FieldTypeTestCase @@ -105,7 +106,7 @@ protected function getEmptyValueExpectation(): Value return new Value(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -115,7 +116,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'empty Value object' => [ new Value(), @@ -133,7 +134,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -147,7 +148,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -161,7 +162,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { yield 'browse selection' => [ [ @@ -178,7 +179,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -282,9 +283,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_object_relation'; } - /** - * @dataProvider provideDataForGetName - */ + #[DataProvider('provideDataForGetName')] public function testGetName( SPIValue $value, string $expected, @@ -300,11 +299,11 @@ public function testGetName( self::assertSame($expected, $name); } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ 'empty_destination_content_id' => [ - $this->getEmptyValueExpectation(), '', [], 'en_GB', + new Value(), '', [], 'en_GB', ], 'destination_content_id' => [ new Value(self::DESTINATION_CONTENT_ID), 'name_en_GB', [], 'en_GB', @@ -315,7 +314,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'valid relation' => [ [], @@ -323,7 +322,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'invalid relation' => [ [], diff --git a/tests/lib/FieldType/SelectionTest.php b/tests/lib/FieldType/SelectionTest.php index 88e2dac570..f938d1bc38 100644 --- a/tests/lib/FieldType/SelectionTest.php +++ b/tests/lib/FieldType/SelectionTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\FieldType\Selection\Type as Selection; use Ibexa\Core\FieldType\Selection\Value as SelectionValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_selection - */ +#[Group('fieldType')] +#[Group('ibexa_selection')] class SelectionTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): Selection @@ -55,7 +55,7 @@ protected function getEmptyValueExpectation(): SelectionValue return new SelectionValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -69,7 +69,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'empty array' => [ [], @@ -92,7 +92,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -106,7 +106,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -120,7 +120,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -141,7 +141,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -164,9 +164,7 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_selection'; } - /** - * @dataProvider provideDataForGetName - */ + #[DataProvider('provideDataForGetName')] public function testGetName( SPIValue $value, string $expected, @@ -184,10 +182,10 @@ public function testGetName( self::assertSame($expected, $name); } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - 'empty_value_and_field_settings' => [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + 'empty_value_and_field_settings' => [new SelectionValue(), '', [], 'en_GB'], 'one_option' => [ new SelectionValue(['optionIndex1']), 'option_1', @@ -218,7 +216,7 @@ public function provideDataForGetName(): array ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'multiple selection allowed' => [ [ @@ -279,7 +277,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'multiple selections when not allowed' => [ [ diff --git a/tests/lib/FieldType/TextBlockTest.php b/tests/lib/FieldType/TextBlockTest.php index b5ba551db4..f8070c9501 100644 --- a/tests/lib/FieldType/TextBlockTest.php +++ b/tests/lib/FieldType/TextBlockTest.php @@ -10,11 +10,10 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\TextBlock\Type as TextBlockType; use Ibexa\Core\FieldType\TextBlock\Value as TextBlockValue; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_text - */ +#[Group('fieldType')] +#[Group('ibexa_text')] final class TextBlockTest extends FieldTypeTestCase { private const string SAMPLE_TEXT_LINE_VALUE = ' sindelfingen '; @@ -47,7 +46,7 @@ protected function getEmptyValueExpectation(): TextBlockValue return new TextBlockValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield [ 23, @@ -55,7 +54,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -88,7 +87,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { yield 'empty value' => [ new TextBlockValue(), @@ -101,7 +100,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { yield 'empty string' => [ '', @@ -114,7 +113,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { yield 'empty settings' => [ [], @@ -127,7 +126,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -149,10 +148,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_text'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new TextBlockValue(), '', [], 'en_GB'], [new TextBlockValue('This is a piece of text'), 'This is a piece of text', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/TextLineTest.php b/tests/lib/FieldType/TextLineTest.php index 586161cfb3..93631ac5c9 100644 --- a/tests/lib/FieldType/TextLineTest.php +++ b/tests/lib/FieldType/TextLineTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\FieldType\TextLine\Type as TextLineType; use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_string - */ +#[Group('fieldType')] +#[Group('ibexa_string')] final class TextLineTest extends FieldTypeTestCase { private const string STRING_TOO_SHORT_EXPECTED_SINGULAR_MESSAGE = 'The string cannot be shorter than %size% character.'; @@ -57,7 +56,7 @@ protected function getEmptyValueExpectation(): TextLineValue return new TextLineValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -67,7 +66,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -115,7 +114,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -133,7 +132,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -151,7 +150,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidValidatorConfiguration(): array + public static function provideValidValidatorConfiguration(): array { return [ [ @@ -196,7 +195,7 @@ public function provideValidValidatorConfiguration(): array ]; } - public function provideInvalidValidatorConfiguration(): array + public static function provideInvalidValidatorConfiguration(): array { return [ [ @@ -255,15 +254,15 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_string'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new TextLineValue(), '', [], 'en_GB'], [new TextLineValue('This is a line of text'), 'This is a line of text', [], 'en_GB'], ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { yield 'string within length limits' => [ [ @@ -300,7 +299,7 @@ public function provideValidDataForValidate(): iterable ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { yield 'string too short' => [ [ diff --git a/tests/lib/FieldType/TimeTest.php b/tests/lib/FieldType/TimeTest.php index 6703cbd6ac..c13ac8736f 100644 --- a/tests/lib/FieldType/TimeTest.php +++ b/tests/lib/FieldType/TimeTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Time\Type as Time; use Ibexa\Core\FieldType\Time\Value as TimeValue; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_time - */ +#[Group('fieldType')] +#[Group('ibexa_time')] class TimeTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): Time @@ -50,7 +49,7 @@ protected function getEmptyValueExpectation(): TimeValue return new TimeValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -60,7 +59,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { $dateTime = new DateTime(); // change timezone to UTC (+00:00) to be able to calculate proper TimeValue @@ -106,7 +105,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -124,7 +123,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -142,7 +141,7 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -163,7 +162,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -186,10 +185,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_time'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new TimeValue(), '', [], 'en_GB'], [new TimeValue(200), '12:03:20 am', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php index f6848c42b6..93d8df4cfe 100644 --- a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php +++ b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php @@ -12,17 +12,19 @@ use Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage; use Ibexa\Core\Persistence\Legacy\URL\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; - -/** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage - */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; + +#[CoversClass(DoctrineStorage::class)] +#[CoversMethod(DoctrineStorage::class, 'getIdUrlMap')] +#[CoversMethod(DoctrineStorage::class, 'getUrlIdMap')] +#[CoversMethod(DoctrineStorage::class, 'insertUrl')] +#[CoversMethod(DoctrineStorage::class, 'linkUrl')] +#[CoversMethod(DoctrineStorage::class, 'unlinkUrl')] class DoctrineStorageTest extends TestCase { private DoctrineStorage $storageGateway; - /** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage::getIdUrlMap - */ public function testGetIdUrlMap() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); @@ -40,9 +42,6 @@ public function testGetIdUrlMap() ); } - /** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage::getUrlIdMap - */ public function testGetUrlIdMap() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); @@ -64,9 +63,6 @@ public function testGetUrlIdMap() ); } - /** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage::insertUrl - */ public function testInsertUrl() { $gateway = $this->getStorageGateway(); @@ -110,9 +106,6 @@ public function testInsertUrl() self::assertEquals($expected, $result); } - /** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage::linkUrl - */ public function testLinkUrl() { $gateway = $this->getStorageGateway(); @@ -147,9 +140,6 @@ public function testLinkUrl() self::assertEquals($expected, $result); } - /** - * @covers \Ibexa\Core\FieldType\Url\UrlStorage\Gateway\DoctrineStorage::unlinkUrl - */ public function testUnlinkUrl() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); diff --git a/tests/lib/FieldType/Url/UrlStorageTest.php b/tests/lib/FieldType/Url/UrlStorageTest.php index 9d8c0c9857..5d4a5af38d 100644 --- a/tests/lib/FieldType/Url/UrlStorageTest.php +++ b/tests/lib/FieldType/Url/UrlStorageTest.php @@ -193,12 +193,15 @@ public function testDeleteFieldData() $fieldIds = [12, 23, 34]; $gateway = $this->getGatewayMock(); - foreach ($fieldIds as $index => $id) { - $gateway - ->expects(self::at($index)) - ->method('unlinkUrl') - ->with($id, 24); - } + $matcher = self::exactly(count($fieldIds)); + $gateway + ->expects($matcher) + ->method('unlinkUrl') + ->willReturnCallback(static function ($actualId, $actualVersionNo, array $excludeUrlIds = []) use ($matcher, $fieldIds): void { + $index = $matcher->numberOfInvocations() - 1; + self::assertSame($fieldIds[$index], $actualId); + self::assertSame(24, $actualVersionNo); + }); $storage = $this->getPartlyMockedStorage($gateway); $storage->deleteFieldData($versionInfo, $fieldIds); @@ -219,13 +222,13 @@ public function testHasFieldData() protected function getPartlyMockedStorage(StorageGatewayInterface $gateway) { return $this->getMockBuilder(UrlStorage::class) - ->setMethods(null) ->setConstructorArgs( [ $gateway, $this->getLoggerMock(), ] ) + ->onlyMethods([]) ->getMock(); } diff --git a/tests/lib/FieldType/UrlTest.php b/tests/lib/FieldType/UrlTest.php index 03163e1da9..061b0d16e4 100644 --- a/tests/lib/FieldType/UrlTest.php +++ b/tests/lib/FieldType/UrlTest.php @@ -10,11 +10,10 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\Url\Type as UrlType; use Ibexa\Core\FieldType\Url\Value as UrlValue; +use PHPUnit\Framework\Attributes\Group; -/** - * @group fieldType - * @group ibexa_url - */ +#[Group('fieldType')] +#[Group('ibexa_url')] class UrlTest extends FieldTypeTestCase { protected function createFieldTypeUnderTest(): UrlType @@ -40,7 +39,7 @@ protected function getEmptyValueExpectation(): UrlValue return new UrlValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { return [ [ @@ -54,7 +53,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -72,7 +71,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { return [ [ @@ -96,7 +95,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { return [ [ @@ -125,10 +124,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_url'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new UrlValue(), '', [], 'en_GB'], [new UrlValue('', 'Url text'), 'Url text', [], 'en_GB'], ]; } diff --git a/tests/lib/FieldType/UserTest.php b/tests/lib/FieldType/UserTest.php index 14936f42ac..25b8eb8dca 100644 --- a/tests/lib/FieldType/UserTest.php +++ b/tests/lib/FieldType/UserTest.php @@ -24,12 +24,15 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinition as CoreFieldDefinition; use Ibexa\Core\Repository\Values\User\User as RepositoryUser; use Ibexa\Tests\Core\FieldType\DataProvider\UserValidatorConfigurationSchemaProvider; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\Builder\InvocationMocker; -/** - * @group fieldType - * @group ibexa_url - */ +#[CoversMethod(Type::class, 'validate')] +#[CoversMethod(Type::class, 'toPersistenceValue')] +#[Group('fieldType')] +#[Group('ibexa_url')] class UserTest extends FieldTypeTestCase { private const int UNSUPPORTED_HASH_TYPE = 0xDEADBEEF; @@ -37,9 +40,9 @@ class UserTest extends FieldTypeTestCase protected function createFieldTypeUnderTest(): UserType { $fieldType = new UserType( - $this->createMock(UserHandler::class), - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class) + self::createStub(UserHandler::class), + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class) ); $fieldType->setTransformationProcessor($this->getTransformationProcessorMock()); @@ -79,7 +82,7 @@ protected function getEmptyValueExpectation(): UserValue return new UserValue(); } - public function provideInvalidInputForAcceptValue(): iterable + public static function provideInvalidInputForAcceptValue(): iterable { yield [ 23, @@ -87,7 +90,7 @@ public function provideInvalidInputForAcceptValue(): iterable ]; } - public function provideValidInputForAcceptValue(): iterable + public static function provideValidInputForAcceptValue(): iterable { yield 'null input' => [ null, @@ -135,7 +138,7 @@ public function provideValidInputForAcceptValue(): iterable ]; } - public function provideInputForToHash(): iterable + public static function provideInputForToHash(): iterable { $passwordUpdatedAt = new DateTimeImmutable(); @@ -166,7 +169,7 @@ public function provideInputForToHash(): iterable ]; } - public function provideInputForFromHash(): iterable + public static function provideInputForFromHash(): iterable { yield [ null, @@ -191,27 +194,31 @@ public function provideInputForFromHash(): iterable ]; } - public function provideValidDataForValidate(): iterable + public static function provideValidDataForValidate(): iterable { - yield from []; + yield 'no valid data sets defined' => [ + ['__no_data__' => 'No valid data sets for validate() defined for this FieldType.'], + new UserValue(), + ]; } - public function provideInvalidDataForValidate(): iterable + public static function provideInvalidDataForValidate(): iterable { - yield from []; + yield 'no invalid data sets defined' => [ + ['__no_data__' => 'No invalid data sets for validate() defined for this FieldType.'], + new UserValue(), + [], + ]; } /** - * @covers \Ibexa\Core\FieldType\User\Type::validate - * - * @dataProvider providerForTestValidate - * * @param \Ibexa\Core\FieldType\User\Value $userValue * @param array $expectedValidationErrors * @param callable|null $loadByLoginBehaviorCallback * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForTestValidate')] public function testValidate( UserValue $userValue, array $expectedValidationErrors, @@ -230,8 +237,8 @@ public function testValidate( $userType = new UserType( $userHandlerMock, - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class) + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class) ); $fieldSettings = [ @@ -329,8 +336,8 @@ public function testEmailAlreadyTaken(): void $userType = new UserType( $userHandlerMock, - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class) + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class) ); $fieldSettings = [ @@ -354,19 +361,15 @@ public function testEmailAlreadyTaken(): void ], $validationErrors); } - /** - * @covers \Ibexa\Core\FieldType\User\Type::toPersistenceValue - * - * @dataProvider providerForTestCreatePersistenceValue - */ + #[DataProvider('providerForTestCreatePersistenceValue')] public function testCreatePersistenceValue(array $userValueDate, array $expectedFieldValueExternalData): void { $passwordHashServiceMock = $this->createMock(PasswordHashService::class); $passwordHashServiceMock->method('getDefaultHashType')->willReturn(RepositoryUser::DEFAULT_PASSWORD_HASH); $userType = new UserType( - $this->createMock(UserHandler::class), + self::createStub(UserHandler::class), $passwordHashServiceMock, - $this->createMock(PasswordValidatorInterface::class) + self::createStub(PasswordValidatorInterface::class) ); $value = new UserValue($userValueDate); @@ -382,7 +385,7 @@ public function testCreatePersistenceValue(array $userValueDate, array $expected self::assertEquals($expected, $fieldValue); } - public function providerForTestCreatePersistenceValue(): iterable + public static function providerForTestCreatePersistenceValue(): iterable { $passwordUpdatedAt = new DateTimeImmutable(); $userData = [ @@ -456,8 +459,8 @@ public function testEmailFreeToUse(): void $userType = new UserType( $userHandlerMock, - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class) + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class) ); $fieldSettings = [ @@ -479,7 +482,7 @@ public function testEmailFreeToUse(): void * * @return array data sets for testValidate method ($userValue, $expectedValidationErrors, $loadByLoginBehaviorCallback) */ - public function providerForTestValidate(): array + public static function providerForTestValidate(): array { return [ [ @@ -534,9 +537,9 @@ static function (InvocationMocker $loadByLoginInvocationMocker) { 'username' ), ], - function (InvocationMocker $loadByLoginInvocationMocker) { + static function (InvocationMocker $loadByLoginInvocationMocker) { $loadByLoginInvocationMocker->willReturn( - $this->createMock(UserValue::class) + self::createStub(UserValue::class) ); }, ], @@ -557,7 +560,7 @@ function (InvocationMocker $loadByLoginInvocationMocker) { ]; } - public function provideValidFieldSettings(): iterable + public static function provideValidFieldSettings(): iterable { return [ [ @@ -585,7 +588,7 @@ public function provideValidFieldSettings(): iterable ]; } - public function provideInValidFieldSettings(): array + public static function provideInValidFieldSettings(): array { return [ [ @@ -613,10 +616,10 @@ protected function provideFieldTypeIdentifier(): string return 'ibexa_user'; } - public function provideDataForGetName(): array + public static function provideDataForGetName(): array { return [ - [$this->getEmptyValueExpectation(), '', [], 'en_GB'], + [new UserValue(), '', [], 'en_GB'], [new UserValue(['login' => 'johndoe']), 'johndoe', [], 'en_GB'], ]; } @@ -638,8 +641,8 @@ private function mockValidationErrors(UserValue $validateUserValue): array $userType = new UserType( $userHandlerMock, - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class) + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class) ); $fieldSettings = [ diff --git a/tests/lib/FieldType/ValidationErrorTest.php b/tests/lib/FieldType/ValidationErrorTest.php index fe2367e549..5188d36e02 100644 --- a/tests/lib/FieldType/ValidationErrorTest.php +++ b/tests/lib/FieldType/ValidationErrorTest.php @@ -9,16 +9,14 @@ namespace Ibexa\Tests\Core\FieldType; use Ibexa\Core\FieldType\ValidationError; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\FieldType\ValidationError - */ +#[CoversClass(ValidationError::class)] final class ValidationErrorTest extends TestCase { - /** - * @dataProvider getDataForTestGetTranslatableMessage - */ + #[DataProvider('getDataForTestGetTranslatableMessage')] public function testGetTranslatableMessage(ValidationError $validationError, string $expectedMessage): void { self::assertSame($expectedMessage, (string)$validationError->getTranslatableMessage()); diff --git a/tests/lib/FieldType/Validator/BaseNumericValidatorTestCase.php b/tests/lib/FieldType/Validator/BaseNumericValidatorTestCase.php index a664bfc87c..c90d506c05 100644 --- a/tests/lib/FieldType/Validator/BaseNumericValidatorTestCase.php +++ b/tests/lib/FieldType/Validator/BaseNumericValidatorTestCase.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyNotFoundException; use Ibexa\Contracts\Core\Repository\Values\Translation\Message; use Ibexa\Core\FieldType\Validator; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -35,33 +36,33 @@ abstract class BaseNumericValidatorTestCase extends TestCase */ abstract protected function getValidatorInstance(): Validator; - abstract protected function getMinNumericValueName(): string; + abstract protected static function getMinNumericValueName(): string; - abstract protected function getMaxNumericValueName(): string; + abstract protected static function getMaxNumericValueName(): string; /** * @return iterable */ - abstract public function providerForValidateConstraintsOK(): iterable; + abstract public static function providerForValidateConstraintsOK(): iterable; /** * @return iterable>> */ abstract public static function providerForConstraintsInitializeSetGet(): iterable; - abstract protected function getIncorrectNumericTypeValidationMessage(string $parameterName): string; + abstract protected static function getIncorrectNumericTypeValidationMessage(string $parameterName): string; /** * @return iterable, array}> */ - final public function providerForValidateConstraintsKO(): iterable + final public static function providerForValidateConstraintsKO(): iterable { - $minNumericValueName = $this->getMinNumericValueName(); - $minValueNumericTypeValidationMessage = $this->getIncorrectNumericTypeValidationMessage( + $minNumericValueName = static::getMinNumericValueName(); + $minValueNumericTypeValidationMessage = static::getIncorrectNumericTypeValidationMessage( $minNumericValueName ); - $maxNumericValueName = $this->getMaxNumericValueName(); - $maxValueNumericTypeValidationMessage = $this->getIncorrectNumericTypeValidationMessage( + $maxNumericValueName = static::getMaxNumericValueName(); + $maxValueNumericTypeValidationMessage = static::getIncorrectNumericTypeValidationMessage( $maxNumericValueName ); @@ -136,9 +137,8 @@ final public function providerForValidateConstraintsKO(): iterable /** * @param array $constraints * @param array $expectedMessages - * - * @dataProvider providerForValidateConstraintsKO */ + #[DataProvider('providerForValidateConstraintsKO')] final public function testValidateConstraintsWrongValues(array $constraints, array $expectedMessages): void { $validator = $this->getValidatorInstance(); @@ -175,10 +175,9 @@ final public function testGetBadConstraint(): void } /** - * @dataProvider providerForValidateConstraintsOK - * * @param array{min?: ?scalar, max?: ?scalar} $data */ + #[DataProvider('providerForValidateConstraintsOK')] public function testValidateConstraintsCorrectValues(array $data): void { $validator = $this->getValidatorInstance(); @@ -197,12 +196,11 @@ public function testValidateConstraintsCorrectValues(array $data): void } /** - * @dataProvider providerForConstraintsInitializeSetGet - * * @param array $constraints * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\PropertyNotFoundException */ + #[DataProvider('providerForConstraintsInitializeSetGet')] final public function testConstraintsInitializeGet(array $constraints): void { $minNumericValueName = $this->getMinNumericValueName(); @@ -216,10 +214,9 @@ final public function testConstraintsInitializeGet(array $constraints): void } /** - * @dataProvider providerForConstraintsInitializeSetGet - * * @param array $constraints */ + #[DataProvider('providerForConstraintsInitializeSetGet')] final public function testConstraintsSetGet(array $constraints): void { $minNumericValueName = $this->getMinNumericValueName(); diff --git a/tests/lib/FieldType/Validator/FloatValueValidatorTest.php b/tests/lib/FieldType/Validator/FloatValueValidatorTest.php index 92b8db737c..b63f0822ea 100644 --- a/tests/lib/FieldType/Validator/FloatValueValidatorTest.php +++ b/tests/lib/FieldType/Validator/FloatValueValidatorTest.php @@ -12,15 +12,16 @@ use Ibexa\Core\FieldType\Float\Value as FloatValue; use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\FloatValueValidator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** - * @covers \Ibexa\Core\FieldType\Validator\FloatValueValidator - * * @extends BaseNumericValidatorTestCase - * - * @group fieldType - * @group validator */ +#[CoversClass(FloatValueValidator::class)] +#[Group('fieldType')] +#[Group('validator')] final class FloatValueValidatorTest extends BaseNumericValidatorTestCase { private const float MIN_FLOAT_VALUE = 1.4285714285714; @@ -31,22 +32,22 @@ protected function getValidatorInstance(): Validator return new FloatValueValidator(); } - protected function getMinNumericValueName(): string + protected static function getMinNumericValueName(): string { return 'minFloatValue'; } - protected function getMaxNumericValueName(): string + protected static function getMaxNumericValueName(): string { return 'maxFloatValue'; } - protected function getMinFloatValue(): float + protected static function getMinFloatValue(): float { return self::MIN_FLOAT_VALUE; } - protected function getMaxFloatValue(): float + protected static function getMaxFloatValue(): float { return self::MAX_FLOAT_VALUE; } @@ -93,9 +94,7 @@ public function testInitializeBadConstraint(): void ); } - /** - * @dataProvider providerForValidateOK - */ + #[DataProvider('providerForValidateOK')] public function testValidateCorrectValues(float $value): void { $validator = $this->getValidatorInstance(); @@ -108,7 +107,7 @@ public function testValidateCorrectValues(float $value): void /** * @return list */ - public function providerForValidateOK(): array + public static function providerForValidateOK(): array { return [ [ @@ -129,9 +128,7 @@ public function providerForValidateOK(): array ]; } - /** - * @dataProvider providerForValidateKO - */ + #[DataProvider('providerForValidateKO')] public function testValidateWrongValues(float $value, string $message): void { $validator = $this->getValidatorInstance(); @@ -144,20 +141,20 @@ public function testValidateWrongValues(float $value, string $message): void /** * @return list */ - public function providerForValidateKO(): array + public static function providerForValidateKO(): array { return [ [-self::MIN_FLOAT_VALUE, strtr( self::VALUE_TOO_LOW_VALIDATION_MESSAGE, - [self::SIZE_PARAM => $this->getMinFloatValue()] + [self::SIZE_PARAM => self::getMinFloatValue()] )], - [0, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMinFloatValue()])], - [1.4142857142857, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMinFloatValue()])], - [1.5857142857143, strtr(self::VALUE_TOO_HIGH_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMaxFloatValue()])], + [0, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMinFloatValue()])], + [1.4142857142857, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMinFloatValue()])], + [1.5857142857143, strtr(self::VALUE_TOO_HIGH_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMaxFloatValue()])], ]; } - public function providerForValidateConstraintsOK(): iterable + public static function providerForValidateConstraintsOK(): iterable { yield [[]]; yield [[self::MAX => 3.2]]; @@ -168,7 +165,7 @@ public function providerForValidateConstraintsOK(): iterable yield [[self::MIN => null, self::MAX => null]]; } - protected function getIncorrectNumericTypeValidationMessage(string $parameterName): string + protected static function getIncorrectNumericTypeValidationMessage(string $parameterName): string { return sprintf( "Validator parameter '%s' value must be of numeric type", diff --git a/tests/lib/FieldType/Validator/IntegerValueValidatorTest.php b/tests/lib/FieldType/Validator/IntegerValueValidatorTest.php index 0caa83823b..a0db706ca8 100644 --- a/tests/lib/FieldType/Validator/IntegerValueValidatorTest.php +++ b/tests/lib/FieldType/Validator/IntegerValueValidatorTest.php @@ -12,15 +12,16 @@ use Ibexa\Core\FieldType\Integer\Value as IntegerValue; use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\IntegerValueValidator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; /** - * @covers \Ibexa\Core\FieldType\Validator\IntegerValueValidator - * * @extends BaseNumericValidatorTestCase - * - * @group fieldType - * @group validator */ +#[CoversClass(IntegerValueValidator::class)] +#[Group('fieldType')] +#[Group('validator')] final class IntegerValueValidatorTest extends BaseNumericValidatorTestCase { protected function getValidatorInstance(): Validator @@ -28,22 +29,22 @@ protected function getValidatorInstance(): Validator return new IntegerValueValidator(); } - protected function getMinNumericValueName(): string + protected static function getMinNumericValueName(): string { return 'minIntegerValue'; } - protected function getMaxNumericValueName(): string + protected static function getMaxNumericValueName(): string { return 'maxIntegerValue'; } - protected function getMinIntegerValue(): int + protected static function getMinIntegerValue(): int { return 10; } - protected function getMaxIntegerValue(): int + protected static function getMaxIntegerValue(): int { return 15; } @@ -87,9 +88,7 @@ public function testInitializeBadConstraint(): void ); } - /** - * @dataProvider providerForValidateOK - */ + #[DataProvider('providerForValidateOK')] public function testValidateCorrectValues(int $value): void { $validator = $this->getValidatorInstance(); @@ -102,7 +101,7 @@ public function testValidateCorrectValues(int $value): void /** * @return list */ - public function providerForValidateOK(): array + public static function providerForValidateOK(): array { return [ [10], @@ -116,9 +115,8 @@ public function providerForValidateOK(): array /** * Tests validating a wrong value. - * - * @dataProvider providerForValidateKO */ + #[DataProvider('providerForValidateKO')] public function testValidateWrongValues(int $value, string $message): void { $validator = $this->getValidatorInstance(); @@ -131,17 +129,17 @@ public function testValidateWrongValues(int $value, string $message): void /** * @return list */ - public function providerForValidateKO(): array + public static function providerForValidateKO(): array { return [ - [-12, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMinIntegerValue()])], - [0, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMinIntegerValue()])], - [9, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMinIntegerValue()])], - [16, strtr(self::VALUE_TOO_HIGH_VALIDATION_MESSAGE, [self::SIZE_PARAM => $this->getMaxIntegerValue()])], + [-12, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMinIntegerValue()])], + [0, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMinIntegerValue()])], + [9, strtr(self::VALUE_TOO_LOW_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMinIntegerValue()])], + [16, strtr(self::VALUE_TOO_HIGH_VALIDATION_MESSAGE, [self::SIZE_PARAM => self::getMaxIntegerValue()])], ]; } - public function providerForValidateConstraintsOK(): iterable + public static function providerForValidateConstraintsOK(): iterable { yield [[]]; yield [[self::MIN => 5]]; @@ -152,7 +150,7 @@ public function providerForValidateConstraintsOK(): iterable yield [[self::MIN => 6, self::MAX => 8]]; } - protected function getIncorrectNumericTypeValidationMessage(string $parameterName): string + protected static function getIncorrectNumericTypeValidationMessage(string $parameterName): string { return sprintf( "Validator parameter '%s' value must be of integer type", diff --git a/tests/lib/FieldType/Validator/StringLengthValidatorTest.php b/tests/lib/FieldType/Validator/StringLengthValidatorTest.php index e34506e7ef..6741ca1e0d 100644 --- a/tests/lib/FieldType/Validator/StringLengthValidatorTest.php +++ b/tests/lib/FieldType/Validator/StringLengthValidatorTest.php @@ -15,14 +15,14 @@ use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\StringLengthValidator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\FieldType\Validator\StringLengthValidator - * - * @group fieldType - * @group validator - */ +#[CoversClass(StringLengthValidator::class)] +#[Group('fieldType')] +#[Group('validator')] final class StringLengthValidatorTest extends TestCase { private const string STRING_TOO_SHORT_VALIDATION_MESSAGE = 'The string cannot be shorter than 5 characters.'; @@ -32,12 +32,12 @@ final class StringLengthValidatorTest extends TestCase private const string MAX_STR_LEN_INT_TYPE_VALIDATION_MESSAGE = "Validator parameter 'maxStringLength' value must be of integer type"; private const string WRONG_MAX_STR_LEN_VALUE = 'ten billion characters'; - protected function getMinStringLength(): int + protected static function getMinStringLength(): int { return 5; } - protected function getMaxStringLength(): int + protected static function getMaxStringLength(): int { return 10; } @@ -127,9 +127,7 @@ public function testGetBadConstraint(): void $validator->unexisting; } - /** - * @dataProvider providerForValidateOK - */ + #[DataProvider('providerForValidateOK')] public function testValidateCorrectValues(string $value): void { $validator = new StringLengthValidator(); @@ -142,7 +140,7 @@ public function testValidateCorrectValues(string $value): void /** * @return list */ - public function providerForValidateOK(): array + public static function providerForValidateOK(): array { return [ ['hello'], @@ -152,9 +150,7 @@ public function providerForValidateOK(): array ]; } - /** - * @dataProvider providerForValidateKO - */ + #[DataProvider('providerForValidateKO')] public function testValidateWrongValues( string $value, string $expectedMessage, @@ -184,41 +180,41 @@ public function testValidateWrongValues( /** * @return iterable */ - public function providerForValidateKO(): iterable + public static function providerForValidateKO(): iterable { yield 'empty string' => [ '', self::STRING_TOO_SHORT_VALIDATION_MESSAGE, - $this->getMinStringLength(), - $this->getMaxStringLength(), + self::getMinStringLength(), + self::getMaxStringLength(), ]; yield 'too short string' => [ 'Hi!', self::STRING_TOO_SHORT_VALIDATION_MESSAGE, - $this->getMinStringLength(), - $this->getMaxStringLength(), + self::getMinStringLength(), + self::getMaxStringLength(), ]; yield 'too long string' => [ '0123456789!', self::STRING_TOO_LONG_VALIDATION_MESSAGE, - $this->getMinStringLength(), - $this->getMaxStringLength(), + self::getMinStringLength(), + self::getMaxStringLength(), ]; yield 'too short string with special characters' => [ 'ABCâ™”', self::STRING_TOO_SHORT_VALIDATION_MESSAGE, - $this->getMinStringLength(), - $this->getMaxStringLength(), + self::getMinStringLength(), + self::getMaxStringLength(), ]; yield 'too short string, singular form validation message' => [ '', 'The string cannot be shorter than 1 character.', 1, - $this->getMaxStringLength(), + self::getMaxStringLength(), ]; yield 'too long string, singular form validation message' => [ @@ -231,9 +227,8 @@ public function providerForValidateKO(): iterable /** * @param array $constraints - * - * @dataProvider providerForValidateConstraintsOK */ + #[DataProvider('providerForValidateConstraintsOK')] public function testValidateConstraintsCorrectValues(array $constraints): void { $validator = new StringLengthValidator(); @@ -246,7 +241,7 @@ public function testValidateConstraintsCorrectValues(array $constraints): void /** * @return list>> */ - public function providerForValidateConstraintsOK(): array + public static function providerForValidateConstraintsOK(): array { return [ [ @@ -278,11 +273,10 @@ public function providerForValidateConstraintsOK(): array } /** - * @dataProvider providerForValidateConstraintsKO - * * @param array $constraints * @param string[] $expectedMessages */ + #[DataProvider('providerForValidateConstraintsKO')] public function testValidateConstraintsWrongValues(array $constraints, array $expectedMessages): void { $validator = new StringLengthValidator(); @@ -303,7 +297,7 @@ public function testValidateConstraintsWrongValues(array $constraints, array $ex /** * @return list, string[]}> */ - public function providerForValidateConstraintsKO(): array + public static function providerForValidateConstraintsKO(): array { return [ [ diff --git a/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php b/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php index 7f7fd31990..9aa3f27c22 100644 --- a/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php +++ b/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php @@ -111,11 +111,11 @@ private function getRepositoryMock() $repositoryMock = $this ->getMockBuilder($repositoryClass) ->disableOriginalConstructor() - ->setMethods( - array_diff( + ->onlyMethods( + array_values(array_diff( get_class_methods($repositoryClass), ['sudo'] - ) + )) ) ->getMock(); } @@ -152,7 +152,7 @@ private function getPermissionResolverMock() return $this ->getMockBuilder(PermissionResolver::class) - ->setMethods(null) + ->onlyMethods([]) ->setConstructorArgs( [ $this diff --git a/tests/lib/Helper/ContentPreviewHelperTest.php b/tests/lib/Helper/ContentPreviewHelperTest.php index 59afe15726..2c840ae1df 100644 --- a/tests/lib/Helper/ContentPreviewHelperTest.php +++ b/tests/lib/Helper/ContentPreviewHelperTest.php @@ -94,7 +94,7 @@ public function testPreviewActive() public function testPreviewedContent() { self::assertNull($this->previewHelper->getPreviewedContent()); - $content = $this->createMock(APIContent::class); + $content = self::createStub(APIContent::class); $this->previewHelper->setPreviewedContent($content); self::assertSame($content, $this->previewHelper->getPreviewedContent()); } @@ -102,7 +102,7 @@ public function testPreviewedContent() public function testPreviewedLocation() { self::assertNull($this->previewHelper->getPreviewedLocation()); - $location = $this->createMock(APILocation::class); + $location = self::createStub(APILocation::class); $this->previewHelper->setPreviewedLocation($location); self::assertSame($location, $this->previewHelper->getPreviewedLocation()); } diff --git a/tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php b/tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php index be0bb404ba..c7a3ce933a 100644 --- a/tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php +++ b/tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php @@ -9,13 +9,12 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Helper\FieldsGroups\ArrayTranslatorFieldsGroupsList; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Contracts\Translation\TranslatorInterface; -/** - * @covers \Ibexa\Core\Helper\FieldsGroups\ArrayTranslatorFieldsGroupsList - */ +#[CoversClass(ArrayTranslatorFieldsGroupsList::class)] class ArrayTranslatorFieldsGroupsListTest extends TestCase { private const FIRST_GROUP_ID = 'slayer'; diff --git a/tests/lib/Helper/TranslationHelperTest.php b/tests/lib/Helper/TranslationHelperTest.php index a5aea4f013..489a5bc8a6 100644 --- a/tests/lib/Helper/TranslationHelperTest.php +++ b/tests/lib/Helper/TranslationHelperTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\Helper\TranslationHelper; use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; @@ -101,11 +102,10 @@ private function generateVersionInfo() } /** - * @dataProvider getTranslatedNameProvider - * * @param array $prioritizedLanguages * @param string $expectedLocale */ + #[DataProvider('getTranslatedNameProvider')] public function testGetTranslatedName(array $prioritizedLanguages, $expectedLocale) { $content = $this->generateContent(); @@ -119,11 +119,10 @@ public function testGetTranslatedName(array $prioritizedLanguages, $expectedLoca } /** - * @dataProvider getTranslatedNameProvider - * * @param array $prioritizedLanguages * @param string $expectedLocale */ + #[DataProvider('getTranslatedNameProvider')] public function testGetTranslatedNameByContentInfo(array $prioritizedLanguages, $expectedLocale) { $versionInfo = $this->generateVersionInfo(); @@ -146,7 +145,7 @@ public function testGetTranslatedNameByContentInfo(array $prioritizedLanguages, self::assertSame($this->translatedNames[$expectedLocale], $this->translationHelper->getTranslatedContentNameByContentInfo($contentInfo)); } - public function getTranslatedNameProvider() + public static function getTranslatedNameProvider() { return [ [['fre-FR', 'eng-GB'], 'fre-FR'], @@ -217,11 +216,10 @@ public function testGetTranslatedNameForcedLanguage() } /** - * @dataProvider getTranslatedFieldProvider - * * @param array $prioritizedLanguages * @param string $expectedLocale */ + #[DataProvider('getTranslatedFieldProvider')] public function getTranslatedField(array $prioritizedLanguages, $expectedLocale) { $content = $this->generateContent(); @@ -234,7 +232,7 @@ public function getTranslatedField(array $prioritizedLanguages, $expectedLocale) self::assertSame($this->translatedFields[$expectedLocale], $this->translationHelper->getTranslatedField($content, 'test')); } - public function getTranslatedFieldProvider() + public static function getTranslatedFieldProvider() { return [ [['fre-FR', 'eng-GB'], 'fre-FR'], @@ -266,9 +264,7 @@ public function testGetTranslationSiteAccessUnkownLanguage() self::assertNull($this->translationHelper->getTranslationSiteAccess('eng-DE')); } - /** - * @dataProvider getTranslationSiteAccessProvider - */ + #[DataProvider('getTranslationSiteAccessProvider')] public function testGetTranslationSiteAccess($language, array $translationSiteAccesses, array $relatedSiteAccesses, $expectedResult) { $this->configResolver @@ -286,7 +282,7 @@ public function testGetTranslationSiteAccess($language, array $translationSiteAc self::assertSame($expectedResult, $this->translationHelper->getTranslationSiteAccess($language)); } - public function getTranslationSiteAccessProvider() + public static function getTranslationSiteAccessProvider() { return [ ['eng-GB', ['fre', 'eng', 'heb'], ['esl', 'fre', 'eng', 'heb'], 'eng'], diff --git a/tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php b/tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php index 8b3e0b1fb6..6b83486844 100644 --- a/tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php +++ b/tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php @@ -275,7 +275,7 @@ public function testDeleteDirectory(): void public function testOnConfigScopeChange(): void { - $event = $this->createMock(ScopeChangeEvent::class); + $event = self::createStub(ScopeChangeEvent::class); $this->innerIOService ->expects(self::once()) ->method('setPrefix') diff --git a/tests/lib/IO/FilePathNormalizer/FlysystemTest.php b/tests/lib/IO/FilePathNormalizer/FlysystemTest.php index 1a54adc199..5f589b6b3e 100644 --- a/tests/lib/IO/FilePathNormalizer/FlysystemTest.php +++ b/tests/lib/IO/FilePathNormalizer/FlysystemTest.php @@ -11,6 +11,7 @@ use Ibexa\Core\IO\FilePathNormalizer\Flysystem; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; use League\Flysystem\WhitespacePathNormalizer; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class FlysystemTest extends TestCase @@ -27,9 +28,7 @@ public function setUp(): void $this->filePathNormalizer = new Flysystem($this->slugConverter, new WhitespacePathNormalizer()); } - /** - * @dataProvider providerForTestNormalizePath - */ + #[DataProvider('providerForTestNormalizePath')] public function testNormalizePath( string $originalPath, string $fileName, @@ -46,10 +45,10 @@ public function testNormalizePath( $normalizedPath = $this->filePathNormalizer->normalizePath($originalPath, $doHash); self::assertStringEndsWith($sluggedFileName, $normalizedPath); - self::assertRegExp($regex, $normalizedPath); + self::assertMatchesRegularExpression($regex, $normalizedPath); } - public function providerForTestNormalizePath(): array + public static function providerForTestNormalizePath(): array { $defaultPattern = '/\/[0-9a-f]{12}-'; diff --git a/tests/lib/IO/Flysystem/Adapter/DynamicPathFilesystemAdapterDecoratorTest.php b/tests/lib/IO/Flysystem/Adapter/DynamicPathFilesystemAdapterDecoratorTest.php index 3c962914c6..7b918a6d5b 100644 --- a/tests/lib/IO/Flysystem/Adapter/DynamicPathFilesystemAdapterDecoratorTest.php +++ b/tests/lib/IO/Flysystem/Adapter/DynamicPathFilesystemAdapterDecoratorTest.php @@ -14,17 +14,18 @@ use League\Flysystem\FileAttributes; use League\Flysystem\FilesystemAdapter; use League\Flysystem\Visibility; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** - * @covers \Ibexa\Core\IO\Flysystem\Adapter\DynamicPathFilesystemAdapterDecorator - * * Note: SiteAccess-aware dynamic settings resolving aspect has been tested via PathPrefixer * and Visibility converter test cases: * {@see \Ibexa\Tests\Core\IO\Flysystem\VisibilityConverter\BaseVisibilityConverterTestCase} - * {@see \Ibexa\Tests\Core\IO\Flysystem\PathPrefixer\DFSSiteAccessAwarePathPrefixerTest} + * {@see \Ibexa\Tests\Core\IO\Flysystem\PathPrefixer\DFSSiteAccessAwarePathPrefixerTest}. */ +#[CoversClass(DynamicPathFilesystemAdapterDecorator::class)] final class DynamicPathFilesystemAdapterDecoratorTest extends TestCase { private const FLYSYSTEM_TEST_DIR = __DIR__; @@ -257,10 +258,9 @@ public function testRead(): void } /** - * @depends testWrite - * * @throws \League\Flysystem\FilesystemException */ + #[Depends('testWrite')] public function testReadStream(): void { $fileHandle = tmpfile(); diff --git a/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php b/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php index 01b2e3b10c..042ca2808a 100644 --- a/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php +++ b/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php @@ -10,10 +10,10 @@ use Ibexa\Core\IO\Flysystem\PathPrefixer\PathPrefixerInterface; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\IO\Flysystem\PathPrefixer\PathPrefixerInterface - */ +#[CoversClass(PathPrefixerInterface::class)] abstract class BaseSiteAccessAwarePathPrefixerTestCase extends TestCase { abstract protected function getPrefixer(): PathPrefixerInterface; @@ -21,30 +21,28 @@ abstract protected function getPrefixer(): PathPrefixerInterface; /** * @return iterable */ - abstract public function getDataForTestPrefixPath(): iterable; + abstract public static function getDataForTestPrefixPath(): iterable; /** * @return iterable */ - abstract public function getDataForTestPrefixDirectoryPath(): iterable; + abstract public static function getDataForTestPrefixDirectoryPath(): iterable; /** * @return iterable */ - abstract public function getDataForTestStripPrefixPath(): iterable; + abstract public static function getDataForTestStripPrefixPath(): iterable; /** * @return iterable */ - public function getDataForTestStripDirectoryPrefix(): iterable + public static function getDataForTestStripDirectoryPrefix(): iterable { // treat file names as directories - yield from $this->getDataForTestStripPrefixPath(); + yield from static::getDataForTestStripPrefixPath(); } - /** - * @dataProvider getDataForTestPrefixPath - */ + #[DataProvider('getDataForTestPrefixPath')] final public function testPrefixPath(string $expectedPrefixedPath, string $path): void { self::assertSame( @@ -53,9 +51,7 @@ final public function testPrefixPath(string $expectedPrefixedPath, string $path) ); } - /** - * @dataProvider getDataForTestPrefixDirectoryPath - */ + #[DataProvider('getDataForTestPrefixDirectoryPath')] final public function testPrefixDirectoryPath(string $expectedPrefixedPath, string $path): void { self::assertSame( @@ -64,9 +60,7 @@ final public function testPrefixDirectoryPath(string $expectedPrefixedPath, stri ); } - /** - * @dataProvider getDataForTestStripPrefixPath - */ + #[DataProvider('getDataForTestStripPrefixPath')] final public function testStripPrefix(string $expectedStrippedPath, string $path): void { self::assertSame( @@ -75,9 +69,7 @@ final public function testStripPrefix(string $expectedStrippedPath, string $path ); } - /** - * @dataProvider getDataForTestStripDirectoryPrefix - */ + #[DataProvider('getDataForTestStripDirectoryPrefix')] final public function testStripDirectoryPrefix(string $expectedStrippedPath, string $path): void { self::assertSame( diff --git a/tests/lib/IO/Flysystem/PathPrefixer/DFSSiteAccessAwarePathPrefixerTest.php b/tests/lib/IO/Flysystem/PathPrefixer/DFSSiteAccessAwarePathPrefixerTest.php index c9ee5eb847..874ecb0736 100644 --- a/tests/lib/IO/Flysystem/PathPrefixer/DFSSiteAccessAwarePathPrefixerTest.php +++ b/tests/lib/IO/Flysystem/PathPrefixer/DFSSiteAccessAwarePathPrefixerTest.php @@ -11,15 +11,14 @@ use Ibexa\Contracts\Core\SiteAccess\ConfigProcessor; use Ibexa\Core\IO\Flysystem\PathPrefixer\DFSSiteAccessAwarePathPrefixer; use Ibexa\Core\IO\Flysystem\PathPrefixer\PathPrefixerInterface; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\IO\Flysystem\PathPrefixer\DFSSiteAccessAwarePathPrefixer - */ +#[CoversClass(DFSSiteAccessAwarePathPrefixer::class)] final class DFSSiteAccessAwarePathPrefixerTest extends BaseSiteAccessAwarePathPrefixerTestCase { - public function getDataForTestPrefixPath(): iterable + public static function getDataForTestPrefixPath(): iterable { - $dfsRootDir = $this->getDFSRootDir(); + $dfsRootDir = self::getDFSRootDir(); yield 'dynamic path to relative file name' => [$dfsRootDir . '/var/storage/foo', 'foo']; yield 'dynamic path to relative file path name' => [ @@ -29,9 +28,9 @@ public function getDataForTestPrefixPath(): iterable yield 'dynamic path to absolute file name' => [$dfsRootDir . '/var/storage/foo', '/foo']; } - public function getDataForTestPrefixDirectoryPath(): iterable + public static function getDataForTestPrefixDirectoryPath(): iterable { - $dfsRootDir = $this->getDFSRootDir(); + $dfsRootDir = self::getDFSRootDir(); yield 'dynamic path to relative directory' => [ $dfsRootDir . '/var/storage/foo/', @@ -51,9 +50,9 @@ public function getDataForTestPrefixDirectoryPath(): iterable ]; } - public function getDataForTestStripPrefixPath(): iterable + public static function getDataForTestStripPrefixPath(): iterable { - $dfsRootDir = $this->getDFSRootDir(); + $dfsRootDir = self::getDFSRootDir(); yield 'relative single file name' => ['/foo', $dfsRootDir . '/var/storage/foo']; yield 'relative file path' => ['/foo/bar', $dfsRootDir . '/var/storage/foo/bar']; @@ -75,7 +74,7 @@ protected function getPrefixer(): PathPrefixerInterface ); } - private function getDFSRootDir(): string + private static function getDFSRootDir(): string { return sys_get_temp_dir() . '/dfs'; } diff --git a/tests/lib/IO/Flysystem/PathPrefixer/LocalSiteAccessAwarePathPrefixerTest.php b/tests/lib/IO/Flysystem/PathPrefixer/LocalSiteAccessAwarePathPrefixerTest.php index 938d7de010..2d76039c87 100644 --- a/tests/lib/IO/Flysystem/PathPrefixer/LocalSiteAccessAwarePathPrefixerTest.php +++ b/tests/lib/IO/Flysystem/PathPrefixer/LocalSiteAccessAwarePathPrefixerTest.php @@ -11,13 +11,12 @@ use Ibexa\Core\IO\Flysystem\PathPrefixer\LocalSiteAccessAwarePathPrefixer; use Ibexa\Core\IO\Flysystem\PathPrefixer\PathPrefixerInterface; use Ibexa\Core\IO\IOConfigProvider; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\IO\Flysystem\PathPrefixer\LocalSiteAccessAwarePathPrefixer - */ +#[CoversClass(LocalSiteAccessAwarePathPrefixer::class)] final class LocalSiteAccessAwarePathPrefixerTest extends BaseSiteAccessAwarePathPrefixerTestCase { - public function getDataForTestPrefixPath(): iterable + public static function getDataForTestPrefixPath(): iterable { yield 'dynamic path to relative file name' => [__DIR__ . '/var/storage/foo', 'foo']; yield 'dynamic path to relative file path name' => [ @@ -27,7 +26,7 @@ public function getDataForTestPrefixPath(): iterable yield 'dynamic path to absolute file name' => [__DIR__ . '/var/storage/foo', '/foo']; } - public function getDataForTestPrefixDirectoryPath(): iterable + public static function getDataForTestPrefixDirectoryPath(): iterable { yield 'dynamic path to relative directory' => [__DIR__ . '/var/storage/foo/', 'foo/']; yield 'dynamic path to absolute directory' => [__DIR__ . '/var/storage/foo/', '/foo/']; @@ -41,7 +40,7 @@ public function getDataForTestPrefixDirectoryPath(): iterable ]; } - public function getDataForTestStripPrefixPath(): iterable + public static function getDataForTestStripPrefixPath(): iterable { yield 'relative single file name' => ['/foo', __DIR__ . '/var/storage/foo']; yield 'relative file path' => ['/foo/bar', __DIR__ . '/var/storage/foo/bar']; diff --git a/tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php b/tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php index 56b35885f3..262cb223da 100644 --- a/tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php +++ b/tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php @@ -11,11 +11,11 @@ use Ibexa\Core\IO\Flysystem\VisibilityConverter\BaseVisibilityConverter; use League\Flysystem\UnixVisibility\VisibilityConverter as FlysystemVisibilityConverter; use League\Flysystem\Visibility; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\IO\Flysystem\VisibilityConverter\BaseVisibilityConverter - */ +#[CoversClass(BaseVisibilityConverter::class)] abstract class BaseVisibilityConverterTestCase extends TestCase { protected const FLYSYSTEM_FILE_FLAGS = 0600; @@ -30,13 +30,13 @@ abstract class BaseVisibilityConverterTestCase extends TestCase abstract protected function buildVisibilityConverter(): BaseVisibilityConverter; - abstract public function getDataForTestForFile(): iterable; + abstract public static function getDataForTestForFile(): iterable; - abstract public function getDataForTestForDirectory(): iterable; + abstract public static function getDataForTestForDirectory(): iterable; - abstract public function getDataForTestInverseForFile(): iterable; + abstract public static function getDataForTestInverseForFile(): iterable; - abstract public function getDataForTestInverseForDirectory(): iterable; + abstract public static function getDataForTestInverseForDirectory(): iterable; final protected function setUp(): void { @@ -53,9 +53,7 @@ final protected function setUp(): void $this->visibilityConverter = $this->buildVisibilityConverter(); } - /** - * @dataProvider getDataForTestForFile - */ + #[DataProvider('getDataForTestForFile')] final public function testForFile(string $visibility, int $expectedVisibilityFlags): void { self::assertSame( @@ -64,9 +62,7 @@ final public function testForFile(string $visibility, int $expectedVisibilityFla ); } - /** - * @dataProvider getDataForTestForDirectory - */ + #[DataProvider('getDataForTestForDirectory')] final public function testForDirectory(string $visibility, int $expectedVisibilityFlags): void { self::assertSame( @@ -75,9 +71,7 @@ final public function testForDirectory(string $visibility, int $expectedVisibili ); } - /** - * @dataProvider getDataForTestInverseForFile - */ + #[DataProvider('getDataForTestInverseForFile')] final public function testInverseForFile(int $fileVisibilityFlags, string $expectedVisibility): void { self::assertSame( @@ -86,9 +80,7 @@ final public function testInverseForFile(int $fileVisibilityFlags, string $expec ); } - /** - * @dataProvider getDataForTestInverseForDirectory - */ + #[DataProvider('getDataForTestInverseForDirectory')] final public function testInverseForDirectory( int $directoryVisibilityFlags, string $expectedVisibility diff --git a/tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php b/tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php index 65fae8d3f1..01a8149089 100644 --- a/tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php +++ b/tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php @@ -11,10 +11,9 @@ use Ibexa\Core\IO\Flysystem\VisibilityConverter\BaseVisibilityConverter; use Ibexa\Core\IO\Flysystem\VisibilityConverter\DFSVisibilityConverter; use League\Flysystem\Visibility; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\IO\Flysystem\VisibilityConverter\DFSVisibilityConverter - */ +#[CoversClass(DFSVisibilityConverter::class)] final class DFSVisibilityConverterTest extends BaseVisibilityConverterTestCase { private const DFS_FILE_FLAGS = 0640; @@ -31,7 +30,7 @@ protected function buildVisibilityConverter(): BaseVisibilityConverter ); } - public function getDataForTestForFile(): iterable + public static function getDataForTestForFile(): iterable { yield 'public visibility (from DFS config)' => [ Visibility::PUBLIC, @@ -43,7 +42,7 @@ public function getDataForTestForFile(): iterable ]; } - public function getDataForTestForDirectory(): iterable + public static function getDataForTestForDirectory(): iterable { yield 'public visibility (from DFS config)' => [ Visibility::PUBLIC, @@ -55,7 +54,7 @@ public function getDataForTestForDirectory(): iterable ]; } - public function getDataForTestInverseForFile(): iterable + public static function getDataForTestInverseForFile(): iterable { yield self::DFS_FILE_FLAGS . ' (DFS config) is public' => [ self::DFS_FILE_FLAGS, @@ -71,7 +70,7 @@ public function getDataForTestInverseForFile(): iterable ]; } - public function getDataForTestInverseForDirectory(): iterable + public static function getDataForTestInverseForDirectory(): iterable { yield self::DFS_DIRECTORY_FLAGS . ' (DFS config) is public' => [ self::DFS_DIRECTORY_FLAGS, diff --git a/tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php b/tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php index 41c897c627..4c8b1ee06f 100644 --- a/tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php +++ b/tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php @@ -12,10 +12,9 @@ use Ibexa\Core\IO\Flysystem\VisibilityConverter\BaseVisibilityConverter; use Ibexa\Core\IO\Flysystem\VisibilityConverter\SiteAccessAwareVisibilityConverter; use League\Flysystem\Visibility; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\IO\Flysystem\VisibilityConverter\SiteAccessAwareVisibilityConverter - */ +#[CoversClass(SiteAccessAwareVisibilityConverter::class)] final class SiteAccessAwareVisibilityConverterTest extends BaseVisibilityConverterTestCase { private const int SITE_FILE_FLAGS = 0644; @@ -39,7 +38,7 @@ protected function buildVisibilityConverter(): BaseVisibilityConverter ); } - public function getDataForTestForFile(): iterable + public static function getDataForTestForFile(): iterable { yield 'public visibility (from SiteAccess config)' => [ Visibility::PUBLIC, @@ -51,7 +50,7 @@ public function getDataForTestForFile(): iterable ]; } - public function getDataForTestForDirectory(): iterable + public static function getDataForTestForDirectory(): iterable { yield 'public visibility (from SiteAccess config)' => [ Visibility::PUBLIC, @@ -63,7 +62,7 @@ public function getDataForTestForDirectory(): iterable ]; } - public function getDataForTestInverseForFile(): iterable + public static function getDataForTestInverseForFile(): iterable { yield self::SITE_FILE_FLAGS . ' (SiteAccess config) is public' => [ self::SITE_FILE_FLAGS, @@ -79,7 +78,7 @@ public function getDataForTestInverseForFile(): iterable ]; } - public function getDataForTestInverseForDirectory(): iterable + public static function getDataForTestInverseForDirectory(): iterable { yield self::SITE_DIRECTORY_FLAGS . ' (SiteAccess config) is public' => [ self::SITE_DIRECTORY_FLAGS, diff --git a/tests/lib/IO/IOMetadataHandler/FlysystemTest.php b/tests/lib/IO/IOMetadataHandler/FlysystemTest.php index 88ae2c8324..7ba8c96268 100644 --- a/tests/lib/IO/IOMetadataHandler/FlysystemTest.php +++ b/tests/lib/IO/IOMetadataHandler/FlysystemTest.php @@ -13,6 +13,7 @@ use Ibexa\Core\IO\Exception\BinaryFileNotFoundException; use Ibexa\Core\IO\IOMetadataHandler\Flysystem; use League\Flysystem\UnableToRetrieveMetadata; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class FlysystemTest extends TestCase @@ -109,9 +110,7 @@ public function testLoadNotFound(): void $this->handler->load($notExistentPath); } - /** - * @dataProvider getDataForFileExists - */ + #[DataProvider('getDataForFileExists')] public function testExists(string $filePath, bool $exists): void { $this->filesystem @@ -124,7 +123,7 @@ public function testExists(string $filePath, bool $exists): void self::assertSame($exists, $this->handler->exists($filePath)); } - public function getDataForFileExists(): iterable + public static function getDataForFileExists(): iterable { $filePath = 'prefix/my/file.png'; diff --git a/tests/lib/IO/IOMetadataHandler/LegacyDFSClusterTest.php b/tests/lib/IO/IOMetadataHandler/LegacyDFSClusterTest.php index beef55336e..ff378df8fb 100644 --- a/tests/lib/IO/IOMetadataHandler/LegacyDFSClusterTest.php +++ b/tests/lib/IO/IOMetadataHandler/LegacyDFSClusterTest.php @@ -18,6 +18,7 @@ use Ibexa\Core\IO\Exception\BinaryFileNotFoundException; use Ibexa\Core\IO\IOMetadataHandler\LegacyDFSCluster; use Ibexa\Core\IO\UrlDecorator; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -52,7 +53,7 @@ protected function setUp(): void /** * @return iterable */ - public function providerCreate(): iterable + public static function providerCreate(): iterable { return [ ['prefix/my/file.png', 'image/png', 123, new DateTime('@1307155200'), new DateTime('@1307155200')], @@ -61,9 +62,7 @@ public function providerCreate(): iterable ]; } - /** - * @dataProvider providerCreate - */ + #[DataProvider('providerCreate')] public function testCreate(string $id, string $mimeType, int $size, \DateTime $mtime, \DateTime $mtimeExpected): void { $this->dbalMock @@ -160,15 +159,22 @@ public function testDeletedirectory(): void ->method('where') ->with('name LIKE :spiPath ESCAPE :esc') ->willReturnSelf(); + $matcher = self::exactly(2); $this->qbMock - ->expects(self::exactly(2)) - ->method('setParameter') - ->withConsecutive( - ['esc', '\\'], - ['spiPath', 'prefix/images/\_alias/subfolder/%'], - ) - ->willReturnSelf(); + ->expects($matcher) + ->method('setParameter')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('esc', $parameters[0]); + $this->assertSame('\\', $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('spiPath', $parameters[0]); + $this->assertSame('prefix/images/\_alias/subfolder/%', $parameters[1]); + } + + return $this->qbMock; + }); $this->qbMock ->expects(self::once()) diff --git a/tests/lib/IO/IOServiceTest.php b/tests/lib/IO/IOServiceTest.php index f77125690f..1febd280ea 100644 --- a/tests/lib/IO/IOServiceTest.php +++ b/tests/lib/IO/IOServiceTest.php @@ -18,12 +18,12 @@ use Ibexa\Core\IO\IOService; use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\IO\Values\BinaryFileCreateStruct; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\IO\IOService - */ +#[CoversClass(IOService::class)] class IOServiceTest extends TestCase { public const string PREFIX = 'test-prefix'; @@ -76,9 +76,7 @@ public function testNewBinaryCreateStructFromLocalFile(): BinaryFileCreateStruct return $binaryCreateStruct; } - /** - * @depends testNewBinaryCreateStructFromLocalFile - */ + #[Depends('testNewBinaryCreateStructFromLocalFile')] public function testCreateBinaryFile(BinaryFileCreateStruct $createStruct): BinaryFile { $createStruct->id = 'my/path.php'; @@ -227,9 +225,7 @@ public function testLoadBinaryFileByUriNotFound(): BinaryFile return $this->loadBinaryFileByUriNotFound(); } - /** - * @depends testLoadBinaryFile - */ + #[Depends('testLoadBinaryFile')] public function testGetFileContents(BinaryFile $binaryFile): void { $expectedContents = file_get_contents(__FILE__); @@ -246,9 +242,7 @@ public function testGetFileContents(BinaryFile $binaryFile): void ); } - /** - * @depends testCreateBinaryFile - */ + #[Depends('testCreateBinaryFile')] public function testExists(BinaryFile $binaryFile): void { $this->metadataHandlerMock @@ -279,9 +273,7 @@ public function testExistsNot(): void ); } - /** - * @depends testCreateBinaryFile - */ + #[Depends('testCreateBinaryFile')] public function testGetMimeType(BinaryFile $binaryFile): void { $this->metadataHandlerMock @@ -298,9 +290,7 @@ public function testGetMimeType(BinaryFile $binaryFile): void ); } - /** - * @depends testCreateBinaryFile - */ + #[Depends('testCreateBinaryFile')] public function testDeleteBinaryFile(BinaryFile $binaryFile): void { $this->metadataHandlerMock diff --git a/tests/lib/IO/TolerantIOServiceTest.php b/tests/lib/IO/TolerantIOServiceTest.php index 5c0098f232..d4fca5ef11 100644 --- a/tests/lib/IO/TolerantIOServiceTest.php +++ b/tests/lib/IO/TolerantIOServiceTest.php @@ -7,14 +7,14 @@ namespace Ibexa\Tests\Core\IO; +use Ibexa\Core\IO\IOService; use Ibexa\Core\IO\TolerantIOService; use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\IO\Values\MissingBinaryFile; use Override; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\IO\IOService - */ +#[CoversClass(IOService::class)] class TolerantIOServiceTest extends IOServiceTest { protected function setUp(): void @@ -65,7 +65,6 @@ public function testCreateMissingBinaryFile(): void #[Override] public function testDeleteBinaryFileNotFound(): void { - $this->expectNotToPerformAssertions(); $this->deleteBinaryFileNotFound(); } diff --git a/tests/lib/IO/UrlDecorator/AbsolutePrefixTest.php b/tests/lib/IO/UrlDecorator/AbsolutePrefixTest.php index 0372d84f82..60424ec6b9 100644 --- a/tests/lib/IO/UrlDecorator/AbsolutePrefixTest.php +++ b/tests/lib/IO/UrlDecorator/AbsolutePrefixTest.php @@ -27,7 +27,7 @@ protected function buildDecorator(string $prefix): UrlDecorator return new AbsolutePrefix($ioConfigResolverMock); } - public function provideData(): array + public static function provideData(): array { return [ [ diff --git a/tests/lib/IO/UrlDecorator/PrefixTest.php b/tests/lib/IO/UrlDecorator/PrefixTest.php index 90b32f4561..fb0b3d01e9 100644 --- a/tests/lib/IO/UrlDecorator/PrefixTest.php +++ b/tests/lib/IO/UrlDecorator/PrefixTest.php @@ -11,13 +11,12 @@ use Ibexa\Core\IO\IOConfigProvider; use Ibexa\Core\IO\UrlDecorator; use Ibexa\Core\IO\UrlDecorator\Prefix; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class PrefixTest extends TestCase { - /** - * @dataProvider provideData - */ + #[DataProvider('provideData')] public function testDecorate($url, $prefix, $decoratedUrl) { $decorator = $this->buildDecorator($prefix); @@ -28,9 +27,7 @@ public function testDecorate($url, $prefix, $decoratedUrl) ); } - /** - * @dataProvider provideData - */ + #[DataProvider('provideData')] public function testUndecorate($url, $prefix, $decoratedUrl) { $decorator = $this->buildDecorator($prefix); @@ -51,7 +48,7 @@ protected function buildDecorator(string $prefix): UrlDecorator return new Prefix($ioConfigResolverMock); } - public function provideData() + public static function provideData() { return [ [ diff --git a/tests/lib/Limitation/Base.php b/tests/lib/Limitation/Base.php index be8b5d3153..57cea28871 100644 --- a/tests/lib/Limitation/Base.php +++ b/tests/lib/Limitation/Base.php @@ -44,10 +44,13 @@ public function getUserMock(array $mockMethods = []) return $this->userMock; } - return $this->userMock = $this->getMockBuilder(APIUser::class) - ->setConstructorArgs([]) - ->setMethods($mockMethods) - ->getMock(); + $builder = $this->getMockBuilder(APIUser::class) + ->setConstructorArgs([]); + if ($mockMethods !== []) { + $builder->onlyMethods(array_values($mockMethods)); + } + + return $this->userMock = $builder->getMock(); } /** diff --git a/tests/lib/Limitation/BlockingLimitationTypeTest.php b/tests/lib/Limitation/BlockingLimitationTypeTest.php index 6153a042ad..03083c28f8 100644 --- a/tests/lib/Limitation/BlockingLimitationTypeTest.php +++ b/tests/lib/Limitation/BlockingLimitationTypeTest.php @@ -11,7 +11,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\MatchNone; -use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\BlockingLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; @@ -19,6 +18,9 @@ use Ibexa\Core\Limitation\BlockingLimitationType; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use Ibexa\Core\Repository\Values\ContentType\ContentType; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -36,7 +38,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new BlockingLimitation('Test', [])], @@ -45,13 +47,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\BlockingLimitation $limitation * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(BlockingLimitation $limitation, BlockingLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -60,7 +60,7 @@ public function testAcceptValue(BlockingLimitation $limitation, BlockingLimitati /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -68,13 +68,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, BlockingLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -85,7 +83,7 @@ public function testAcceptValueException(Limitation $limitation, BlockingLimitat /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new BlockingLimitation('Test', ['limitationValues' => ['ezjscore::call']])], @@ -94,10 +92,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\BlockingLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(BlockingLimitation $limitation) { // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -110,7 +107,7 @@ public function testValidatePass(BlockingLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new BlockingLimitation('Test', []), 1], @@ -120,11 +117,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\BlockingLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(BlockingLimitation $limitation, $errorCount) { $this->getPersistenceMock() @@ -139,10 +135,9 @@ public function testValidateError(BlockingLimitation $limitation, $errorCount) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(BlockingLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -156,7 +151,7 @@ public function testBuildValue(BlockingLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ // ContentInfo, no access @@ -180,29 +175,24 @@ public function providerForTestEvaluate() // ContentCreateStruct, no access [ 'limitation' => new BlockingLimitation('Test', ['limitationValues' => [2]]), - 'object' => new ContentCreateStruct(['contentType' => $this->createContentTypeWithId(22)]), + 'object' => new ContentCreateStruct(['contentType' => self::createContentTypeWithId(22)]), 'targets' => [], ], // ContentCreateStruct, with access [ 'limitation' => new BlockingLimitation('Test', ['limitationValues' => [2, 43]]), - 'object' => new ContentCreateStruct(['contentType' => $this->createContentTypeWithId(43)]), + 'object' => new ContentCreateStruct(['contentType' => self::createContentTypeWithId(43)]), 'targets' => [], ], ]; } - private function createContentTypeWithId(int $id): ContentType + private static function createContentTypeWithId(int $id): ContentType { - $contentType = $this->createMock(ContentType::class); - $contentType->method('__get')->with('id')->willReturn($id); - - return $contentType; + return new ContentType(['id' => $id]); } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( BlockingLimitation $limitation, ValueObject $object, @@ -234,7 +224,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -246,9 +236,7 @@ public function providerForTestEvaluateInvalidArgument() ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -279,10 +267,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterion(BlockingLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -294,10 +281,9 @@ public function testGetCriterion(BlockingLimitationType $limitationType) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(BlockingLimitationType $limitationType) { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/ContentTypeLimitationTypeTest.php b/tests/lib/Limitation/ContentTypeLimitationTypeTest.php index 3e76499da0..904c2f3104 100644 --- a/tests/lib/Limitation/ContentTypeLimitationTypeTest.php +++ b/tests/lib/Limitation/ContentTypeLimitationTypeTest.php @@ -11,20 +11,22 @@ use Ibexa\Contracts\Core\Persistence\Content\Type\Handler as SPIHandler; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; -use Ibexa\Contracts\Core\Repository\Values\Content\Content as APIContent; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ContentTypeId; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Operator; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Limitation\ContentTypeLimitationType; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; use Ibexa\Core\Repository\Values\ContentType\ContentType; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -63,7 +65,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new ContentTypeLimitation()], @@ -73,13 +75,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation $limitation * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(ContentTypeLimitation $limitation, ContentTypeLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -88,7 +88,7 @@ public function testAcceptValue(ContentTypeLimitation $limitation, ContentTypeLi /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -97,13 +97,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, ContentTypeLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -114,7 +112,7 @@ public function testAcceptValueException(Limitation $limitation, ContentTypeLimi /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new ContentTypeLimitation()], @@ -124,10 +122,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(ContentTypeLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -136,12 +133,14 @@ public function testValidatePass(ContentTypeLimitation $limitation) ->method('contentTypeHandler') ->will(self::returnValue($this->contentTypeHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->contentTypeHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->contentTypeHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + self::assertSame($limitationValues[$matcher->numberOfInvocations() - 1], $actualValue); + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -154,7 +153,7 @@ public function testValidatePass(ContentTypeLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new ContentTypeLimitation(), 0], @@ -164,11 +163,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(ContentTypeLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -177,13 +175,17 @@ public function testValidateError(ContentTypeLimitation $limitation, $errorCount ->method('contentTypeHandler') ->will(self::returnValue($this->contentTypeHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->contentTypeHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::throwException(new NotFoundException('contentType', $value))); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->contentTypeHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + throw new NotFoundException('contentType', $value); + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -198,10 +200,9 @@ public function testValidateError(ContentTypeLimitation $limitation, $errorCount } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(ContentTypeLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -215,28 +216,17 @@ public function testBuildValue(ContentTypeLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { - // Mocks for testing Content & VersionInfo objects, should only be used once because of expect rules. - $contentMock = $this->createMock(APIContent::class); - $versionInfoMock = $this->createMock(APIVersionInfo::class); + $contentMock = new CoreContent([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['contentTypeId' => 66]), + ]), + ]); - $contentMock - ->expects(self::once()) - ->method('getVersionInfo') - ->will(self::returnValue($versionInfoMock)); - - $versionInfoMock - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['contentTypeId' => 66]))); - - $versionInfoMock2 = $this->createMock(APIVersionInfo::class); - - $versionInfoMock2 - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['contentTypeId' => 66]))); + $versionInfoMock2 = new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['contentTypeId' => 66]), + ]); return [ // ContentInfo, no access @@ -305,9 +295,7 @@ public function providerForTestEvaluate() ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( ContentTypeLimitation $limitation, ValueObject $object, @@ -341,7 +329,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -359,9 +347,7 @@ public function providerForTestEvaluateInvalidArgument() ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -392,10 +378,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(ContentTypeLimitationType $limitationType) { $this->expectException(\RuntimeException::class); @@ -407,10 +392,9 @@ public function testGetCriterionInvalidValue(ContentTypeLimitationType $limitati } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionSingleValue(ContentTypeLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -426,10 +410,9 @@ public function testGetCriterionSingleValue(ContentTypeLimitationType $limitatio } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionMultipleValues(ContentTypeLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -445,10 +428,9 @@ public function testGetCriterionMultipleValues(ContentTypeLimitationType $limita } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(ContentTypeLimitationType $limitationType) { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php b/tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php index 9722535f8c..67827189db 100644 --- a/tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php +++ b/tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Limitation\Target; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Core\Limitation\LanguageLimitation\ContentDeleteEvaluator; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class ContentDeleteEvaluatorTest extends TestCase { - /** - * @dataProvider dataProviderForAccept - */ + #[DataProvider('dataProviderForAccept')] public function testAccept(Target\Version $targetVersion, bool $expected): void { self::assertSame( @@ -26,15 +25,15 @@ public function testAccept(Target\Version $targetVersion, bool $expected): void ); } - public function dataProviderForAccept(): iterable + public static function dataProviderForAccept(): iterable { yield [ - $this->getTergetVersion(['eng-GB', 'ger-DE']), + self::getTergetVersion(['eng-GB', 'ger-DE']), true, ]; yield [ - $this->getTergetVersion([]), + self::getTergetVersion([]), false, ]; @@ -44,9 +43,7 @@ public function dataProviderForAccept(): iterable ]; } - /** - * @dataProvider dataProviderForEvaluate - */ + #[DataProvider('dataProviderForEvaluate')] public function testEvaluate(Target\Version $targetVersion, Limitation $limitationValue, bool $expected): void { self::assertSame( @@ -55,39 +52,39 @@ public function testEvaluate(Target\Version $targetVersion, Limitation $limitati ); } - public function dataProviderForEvaluate(): iterable + public static function dataProviderForEvaluate(): iterable { yield 'same_values' => [ - $this->getTergetVersion(['eng-GB', 'ger-DE']), - $this->getLanguageLimitation(['eng-GB', 'ger-DE']), + self::getTergetVersion(['eng-GB', 'ger-DE']), + self::getLanguageLimitation(['eng-GB', 'ger-DE']), true, ]; yield 'missing_fr_limitation' => [ - $this->getTergetVersion(['eng-GB', 'ger-DE', 'fre-FR']), - $this->getLanguageLimitation(['eng-GB', 'ger-DE']), + self::getTergetVersion(['eng-GB', 'ger-DE', 'fre-FR']), + self::getLanguageLimitation(['eng-GB', 'ger-DE']), false, ]; yield 'extra_fr_limitation' => [ - $this->getTergetVersion(['eng-GB', 'ger-DE']), - $this->getLanguageLimitation(['eng-GB', 'ger-DE', 'fre-FR']), + self::getTergetVersion(['eng-GB', 'ger-DE']), + self::getLanguageLimitation(['eng-GB', 'ger-DE', 'fre-FR']), true, ]; yield 'separable_values' => [ - $this->getTergetVersion(['eng-GB']), - $this->getLanguageLimitation(['fre-FR']), + self::getTergetVersion(['eng-GB']), + self::getLanguageLimitation(['fre-FR']), false, ]; } - private function getTergetVersion(array $languageCodes): Target\Version + private static function getTergetVersion(array $languageCodes): Target\Version { return (new Target\Version())->deleteTranslations($languageCodes); } - private function getLanguageLimitation(array $languageCodes): Limitation\LanguageLimitation + private static function getLanguageLimitation(array $languageCodes): Limitation\LanguageLimitation { return new Limitation\LanguageLimitation(['limitationValues' => $languageCodes]); } diff --git a/tests/lib/Limitation/LocationLimitationTypeTest.php b/tests/lib/Limitation/LocationLimitationTypeTest.php index da4900c708..6a0bc19fd2 100644 --- a/tests/lib/Limitation/LocationLimitationTypeTest.php +++ b/tests/lib/Limitation/LocationLimitationTypeTest.php @@ -9,20 +9,22 @@ use Ibexa\Contracts\Core\Persistence\Content\Location\Handler as SPIHandler; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\Values\Content\Content as APIContent; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\LocationId; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Operator; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Limitation\LocationLimitationType; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -61,7 +63,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new LocationLimitation()], @@ -71,13 +73,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation $limitation * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(LocationLimitation $limitation, LocationLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -86,7 +86,7 @@ public function testAcceptValue(LocationLimitation $limitation, LocationLimitati /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -95,13 +95,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, LocationLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -112,7 +110,7 @@ public function testAcceptValueException(Limitation $limitation, LocationLimitat /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new LocationLimitation()], @@ -122,10 +120,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(LocationLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -134,12 +131,14 @@ public function testValidatePass(LocationLimitation $limitation) ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue, ?array $translations = null, bool $useAlwaysAvailable = true) use ($matcher, $limitationValues): void { + self::assertSame($limitationValues[$matcher->numberOfInvocations() - 1], $actualValue); + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -152,7 +151,7 @@ public function testValidatePass(LocationLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new LocationLimitation(), 0], @@ -162,11 +161,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(LocationLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -175,13 +173,17 @@ public function testValidateError(LocationLimitation $limitation, $errorCount) ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::throwException(new NotFoundException('location', $value))); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue, ?array $translations = null, bool $useAlwaysAvailable = true) use ($matcher, $limitationValues): void { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + throw new NotFoundException('location', $value); + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -196,10 +198,9 @@ public function testValidateError(LocationLimitation $limitation, $errorCount) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(LocationLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -213,28 +214,17 @@ public function testBuildValue(LocationLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { - // Mocks for testing Content & VersionInfo objects, should only be used once because of expect rules. - $contentMock = $this->createMock(APIContent::class); - $versionInfoMock = $this->createMock(APIVersionInfo::class); - - $contentMock - ->expects(self::once()) - ->method('getVersionInfo') - ->will(self::returnValue($versionInfoMock)); - - $versionInfoMock - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['published' => true]))); - - $versionInfoMock2 = $this->createMock(APIVersionInfo::class); + $contentMock = new CoreContent([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true]), + ]), + ]); - $versionInfoMock2 - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['published' => true]))); + $versionInfoMock2 = new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true]), + ]); return [ // ContentInfo, with targets, no access @@ -242,7 +232,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(), 'object' => new ContentInfo(['published' => true]), 'targets' => [new Location(['id' => 55])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentInfo, with targets, no access @@ -250,7 +240,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => new ContentInfo(['published' => true]), 'targets' => [new Location(['id' => 55])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentInfo, with targets, with access @@ -258,7 +248,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => new ContentInfo(['id' => 23, 'published' => true]), 'targets' => [new Location(['id' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // ContentInfo, no targets, with access @@ -266,7 +256,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => new ContentInfo(['id' => 23, 'published' => true]), 'targets' => null, - 'persistence' => [new Location(['id' => 2])], + 'persistenceLocations' => [new Location(['id' => 2])], 'expected' => true, ], // ContentInfo, no targets, no access @@ -274,7 +264,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2, 43]]), 'object' => new ContentInfo(['id' => 23, 'published' => true]), 'targets' => null, - 'persistence' => [new Location(['id' => 55])], + 'persistenceLocations' => [new Location(['id' => 55])], 'expected' => false, ], // ContentInfo, no targets, un-published, with access @@ -286,7 +276,7 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_DRAFT, ]), 'targets' => null, - 'persistence' => [new Location(['id' => 2])], + 'persistenceLocations' => [new Location(['id' => 2])], 'expected' => true, ], // ContentInfo, no targets, un-published, no access @@ -298,7 +288,7 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_DRAFT, ]), 'targets' => null, - 'persistence' => [new Location(['id' => 55])], + 'persistenceLocations' => [new Location(['id' => 55])], 'expected' => false, ], // Content, with targets, with access @@ -306,7 +296,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => $contentMock, 'targets' => [new Location(['id' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // VersionInfo, with targets, with access @@ -314,7 +304,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => $versionInfoMock2, 'targets' => [new Location(['id' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // ContentCreateStruct, no targets, no access @@ -322,7 +312,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2]]), 'object' => new ContentCreateStruct(), 'targets' => [], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentCreateStruct, with targets, no access @@ -330,7 +320,7 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2, 43]]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 55])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentCreateStruct, with targets, with access @@ -338,15 +328,13 @@ public function providerForTestEvaluate() 'limitation' => new LocationLimitation(['limitationValues' => [2, 43]]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 43])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( LocationLimitation $limitation, ValueObject $object, @@ -394,7 +382,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -402,35 +390,33 @@ public function providerForTestEvaluateInvalidArgument() 'limitation' => new ObjectStateLimitation(), 'object' => new ContentInfo(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid object [ 'limitation' => new LocationLimitation(), 'object' => new ObjectStateLimitation(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid target [ 'limitation' => new LocationLimitation(), 'object' => new ContentInfo(), 'targets' => [new ObjectStateLimitation()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid target when using ContentCreateStruct [ 'limitation' => new LocationLimitation(), 'object' => new ContentCreateStruct(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -462,10 +448,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(LocationLimitationType $limitationType) { $this->expectException(\RuntimeException::class); @@ -477,10 +462,9 @@ public function testGetCriterionInvalidValue(LocationLimitationType $limitationT } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionSingleValue(LocationLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -496,10 +480,9 @@ public function testGetCriterionSingleValue(LocationLimitationType $limitationTy } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionMultipleValues(LocationLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -515,10 +498,9 @@ public function testGetCriterionMultipleValues(LocationLimitationType $limitatio } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(LocationLimitationType $limitationType) { self::assertEquals( diff --git a/tests/lib/Limitation/MemberOfLimitationTypeTest.php b/tests/lib/Limitation/MemberOfLimitationTypeTest.php index 5aaea11cc8..7771ef7a75 100644 --- a/tests/lib/Limitation/MemberOfLimitationTypeTest.php +++ b/tests/lib/Limitation/MemberOfLimitationTypeTest.php @@ -24,6 +24,7 @@ use Ibexa\Core\Repository\Values\User\UserGroup; use Ibexa\Core\Repository\Values\User\UserGroupRoleAssignment; use Ibexa\Core\Repository\Values\User\UserRoleAssignment; +use PHPUnit\Framework\Attributes\DataProvider; final class MemberOfLimitationTypeTest extends Base { @@ -38,16 +39,14 @@ protected function setUp(): void ); } - /** - * @dataProvider providerForTestAcceptValue - */ + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(MemberOfLimitation $limitation): void { $this->expectNotToPerformAssertions(); $this->limitationType->acceptValue($limitation); } - public function providerForTestAcceptValue(): array + public static function providerForTestAcceptValue(): array { return [ [ @@ -63,16 +62,14 @@ public function providerForTestAcceptValue(): array ]; } - /** - * @dataProvider providerForTestAcceptValueException - */ + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(MemberOfLimitation $limitation): void { $this->expectException(InvalidArgumentType::class); $this->limitationType->acceptValue($limitation); } - public function providerForTestAcceptValueException(): array + public static function providerForTestAcceptValueException(): array { return [ [ @@ -98,9 +95,7 @@ public function providerForTestAcceptValueException(): array ]; } - /** - * @dataProvider providerForTestAcceptValue - */ + #[DataProvider('providerForTestAcceptValue')] public function testValidatePass(MemberOfLimitation $limitation): void { $contentHandlerMock = $this->createMock(ContentHandlerInterface::class); @@ -118,21 +113,26 @@ public function testValidatePass(MemberOfLimitation $limitation): void self::assertEmpty($validationErrors); } - /** - * @dataProvider providerForTestValidateError - */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(MemberOfLimitation $limitation, int $errorCount): void { $contentHandlerMock = $this->createMock(ContentHandlerInterface::class); if ($limitation->limitationValues !== null) { - $contentHandlerMock - ->method('loadContentInfo') - ->withConsecutive([14], [18]) - ->willReturnOnConsecutiveCalls( - self::throwException(new NotFoundException('UserGroup', 18)), - new ContentInfo() - ); + $matcher = $this->exactly(2); + $contentHandlerMock->expects($matcher) + ->method('loadContentInfo')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(14, $parameters[0]); + + throw new NotFoundException('UserGroup', 18); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(18, $parameters[0]); + + return new ContentInfo(); + } + }); $this->getPersistenceMock() ->method('contentHandler') @@ -143,7 +143,7 @@ public function testValidateError(MemberOfLimitation $limitation, int $errorCoun self::assertCount($errorCount, $validationErrors); } - public function providerForTestValidateError(): array + public static function providerForTestValidateError(): array { return [ [ @@ -155,9 +155,7 @@ public function providerForTestValidateError(): array ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( MemberOfLimitation $limitation, ValueObject $object, @@ -173,17 +171,21 @@ public function testEvaluate( new Location(['parentId' => 13]), new Location(['parentId' => 14]), ]); + $matcher = $this->exactly(2); - $locationHandlerMock - ->method('load') - ->withConsecutive( - [13], - [14] - ) - ->willReturnOnConsecutiveCalls( - new Location(['contentId' => 14]), - new Location(['contentId' => 25]) - ); + $locationHandlerMock->expects($matcher) + ->method('load')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(13, $parameters[0]); + + return new Location(['contentId' => 14]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(14, $parameters[0]); + + return new Location(['contentId' => 25]); + } + }); $this->getPersistenceMock() ->method('locationHandler') @@ -199,7 +201,7 @@ public function testEvaluate( self::assertEquals($expected, $value); } - public function providerForTestEvaluate(): array + public static function providerForTestEvaluate(): array { return [ 'valid_group_limitation' => [ @@ -349,9 +351,8 @@ public function providerForTestEvaluate(): array /** * @param \Ibexa\Core\Repository\Values\User\User|\Ibexa\Core\Repository\Values\User\UserRoleAssignment $object - * - * @dataProvider providerForTestEvaluateSelfGroup */ + #[DataProvider('providerForTestEvaluateSelfGroup')] public function testEvaluateSelfGroup( MemberOfLimitation $limitation, ValueObject $object, @@ -365,31 +366,40 @@ public function testEvaluateSelfGroup( foreach ($currentUserGroupLocations as $groupLocation) { $currentUserLocation[] = new Location(['parentId' => $groupLocation->contentId - 1]); } - $locationHandlerMock - ->method('loadLocationsByContent') - ->withConsecutive( - [$object instanceof User ? $object->getUserId() : $object->getUser()->getUserId()], - [$this->getUserMock()->getUserId()] - ) - ->willReturnOnConsecutiveCalls( - [ - new Location(['parentId' => 13]), - new Location(['parentId' => 43]), - ], - $currentUserLocation - ); - - $locationHandlerMock - ->method('load') - ->withConsecutive( - [13], - [43] - ) - ->willReturnOnConsecutiveCalls( - new Location(['contentId' => 14]), - new Location(['contentId' => 44]), - ...$currentUserGroupLocations - ); + $matcher = $this->exactly(2); + $locationHandlerMock->expects($matcher) + ->method('loadLocationsByContent')->willReturnCallback(function (...$parameters) use ($matcher, $object, $currentUserLocation) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame($object instanceof User ? $object->getUserId() : $object->getUser()->getUserId(), $parameters[0]); + + return [ + new Location(['parentId' => 13]), + new Location(['parentId' => 43]), + ]; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame($this->getUserMock()->getUserId(), $parameters[0]); + + return $currentUserLocation; + } + }); + $matcher = $this->exactly(2 + count($currentUserGroupLocations)); + + $locationHandlerMock->expects($matcher) + ->method('load')->willReturnCallback(function (...$parameters) use ($matcher, $currentUserGroupLocations) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(13, $parameters[0]); + + return new Location(['contentId' => 14]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(43, $parameters[0]); + + return new Location(['contentId' => 44]); + } + + return $currentUserGroupLocations[$matcher->numberOfInvocations() - 3]; + }); $this->getPersistenceMock() ->method('locationHandler') @@ -408,7 +418,7 @@ public function testEvaluateSelfGroup( self::assertEquals($expected, $value); } - public function providerForTestEvaluateSelfGroup(): array + public static function providerForTestEvaluateSelfGroup(): array { return [ 'role_assign_to_user_in_same_group' => [ diff --git a/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php b/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php index 73fb5aabf1..83678bcd31 100644 --- a/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php +++ b/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php @@ -21,6 +21,8 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\ObjectState\ObjectState; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -59,7 +61,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new NewObjectStateLimitation()], @@ -69,13 +71,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation $limitation * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(NewObjectStateLimitation $limitation, NewObjectStateLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -84,7 +84,7 @@ public function testAcceptValue(NewObjectStateLimitation $limitation, NewObjectS /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -93,13 +93,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, NewObjectStateLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -110,7 +108,7 @@ public function testAcceptValueException(Limitation $limitation, NewObjectStateL /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new NewObjectStateLimitation()], @@ -120,10 +118,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(NewObjectStateLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -132,12 +129,14 @@ public function testValidatePass(NewObjectStateLimitation $limitation) ->method('objectStateHandler') ->will(self::returnValue($this->objectStateHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->objectStateHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->objectStateHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + self::assertSame($limitationValues[$matcher->numberOfInvocations() - 1], $actualValue); + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -150,7 +149,7 @@ public function testValidatePass(NewObjectStateLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new NewObjectStateLimitation(), 0], @@ -160,11 +159,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(NewObjectStateLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -173,13 +171,17 @@ public function testValidateError(NewObjectStateLimitation $limitation, $errorCo ->method('objectStateHandler') ->will(self::returnValue($this->objectStateHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->objectStateHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::throwException(new NotFoundException('contentType', $value))); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->objectStateHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + throw new NotFoundException('contentType', $value); + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -194,10 +196,9 @@ public function testValidateError(NewObjectStateLimitation $limitation, $errorCo } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(NewObjectStateLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -211,7 +212,7 @@ public function testBuildValue(NewObjectStateLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ // ContentInfo, no access @@ -259,9 +260,7 @@ public function providerForTestEvaluate() ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( NewObjectStateLimitation $limitation, ValueObject $object, @@ -295,7 +294,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -319,9 +318,7 @@ public function providerForTestEvaluateInvalidArgument() ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -352,10 +349,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterion(NewObjectStateLimitationType $limitationType) { $this->expectException(NotImplementedException::class); @@ -367,10 +363,9 @@ public function testGetCriterion(NewObjectStateLimitationType $limitationType) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(NewObjectStateLimitationType $limitationType) { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/ObjectStateLimitationTypeTest.php b/tests/lib/Limitation/ObjectStateLimitationTypeTest.php index 9f6602e838..a19458592b 100644 --- a/tests/lib/Limitation/ObjectStateLimitationTypeTest.php +++ b/tests/lib/Limitation/ObjectStateLimitationTypeTest.php @@ -18,6 +18,8 @@ use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Limitation\ObjectStateLimitationType; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -88,7 +90,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestEvaluate(): array + public static function providerForTestEvaluate(): array { return [ 'ContentInfo, published, no Limitations, no access' => [ @@ -177,9 +179,7 @@ public function providerForTestEvaluate(): array ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( ObjectStateLimitation $limitation, ValueObject $object, @@ -238,10 +238,9 @@ public function testEvaluate( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(ObjectStateLimitationType $limitationType) { $this->expectException(\RuntimeException::class); @@ -253,10 +252,9 @@ public function testGetCriterionInvalidValue(ObjectStateLimitationType $limitati } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ObjectStateLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionSingleValue(ObjectStateLimitationType $limitationType) { $criterion = $limitationType->getCriterion( diff --git a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php index 635fe0be9a..8ea1faa608 100644 --- a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php @@ -25,6 +25,8 @@ use Ibexa\Core\Limitation\ParentContentTypeLimitationType; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -75,7 +77,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new ParentContentTypeLimitation()], @@ -85,13 +87,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation $limitation * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(ParentContentTypeLimitation $limitation, ParentContentTypeLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -100,7 +100,7 @@ public function testAcceptValue(ParentContentTypeLimitation $limitation, ParentC /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -110,13 +110,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, ParentContentTypeLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -127,7 +125,7 @@ public function testAcceptValueException(Limitation $limitation, ParentContentTy /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new ParentContentTypeLimitation()], @@ -137,10 +135,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(ParentContentTypeLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -149,13 +146,16 @@ public function testValidatePass(ParentContentTypeLimitation $limitation) ->method('contentTypeHandler') ->will(self::returnValue($this->contentTypeHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->contentTypeHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::returnValue(42)); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->contentTypeHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues) { + self::assertSame($limitationValues[$matcher->numberOfInvocations() - 1], $actualValue); + + return 42; + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -168,7 +168,7 @@ public function testValidatePass(ParentContentTypeLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new ParentContentTypeLimitation(), 0], @@ -178,11 +178,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(ParentContentTypeLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -191,13 +190,17 @@ public function testValidateError(ParentContentTypeLimitation $limitation, $erro ->method('contentTypeHandler') ->will(self::returnValue($this->contentTypeHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->contentTypeHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::throwException(new NotFoundException('location', $value))); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->contentTypeHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + throw new NotFoundException('location', $value); + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -212,10 +215,9 @@ public function testValidateError(ParentContentTypeLimitation $limitation, $erro } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(ParentContentTypeLimitationType $limitationType) { $expected = ['test', 'test' => '1']; @@ -253,7 +255,7 @@ protected function getTestEvaluateVersionInfoMock() /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ // ContentInfo, with API targets, no access @@ -367,7 +369,7 @@ public function providerForTestEvaluate() // Content, with API targets, with access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateContentMock(), + 'object' => 'contentMock', 'targets' => [new Location(['contentInfo' => new ContentInfo(['contentTypeId' => 42])])], 'persistence' => [], 'expected' => true, @@ -375,7 +377,7 @@ public function providerForTestEvaluate() // Content, with SPI targets, with access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateContentMock(), + 'object' => 'contentMock', 'targets' => [new SPILocation(['contentId' => '24'])], 'persistence' => [ 'contentInfos' => [new SPIContentInfo(['contentTypeId' => '42'])], @@ -385,7 +387,7 @@ public function providerForTestEvaluate() // VersionInfo, with API targets, with access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateVersionInfoMock(), + 'object' => 'versionInfoMock', 'targets' => [new Location(['contentInfo' => new ContentInfo(['contentTypeId' => 42])])], 'persistence' => [], 'expected' => true, @@ -393,7 +395,7 @@ public function providerForTestEvaluate() // VersionInfo, with SPI targets, with access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateVersionInfoMock(), + 'object' => 'versionInfoMock', 'targets' => [new SPILocation(['contentId' => '24'])], 'persistence' => [ 'contentInfos' => [new SPIContentInfo(['contentTypeId' => '42'])], @@ -403,7 +405,7 @@ public function providerForTestEvaluate() // VersionInfo, with LocationCreateStruct targets, with access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateVersionInfoMock(), + 'object' => 'versionInfoMock', 'targets' => [new LocationCreateStruct(['parentLocationId' => 24])], 'persistence' => [ 'locations' => [new SPILocation(['contentId' => 100])], @@ -414,7 +416,7 @@ public function providerForTestEvaluate() // Content, with LocationCreateStruct targets, no access [ 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [42]]), - 'object' => $this->getTestEvaluateContentMock(), + 'object' => 'contentMock', 'targets' => [new LocationCreateStruct(['parentLocationId' => 24])], 'persistence' => [ 'locations' => [new SPILocation(['contentId' => 100])], @@ -458,27 +460,31 @@ public function providerForTestEvaluate() protected function assertContentHandlerExpectations($callNo, $persistenceCalled, $contentId, $contentInfo) { $this->getPersistenceMock() - ->expects(self::at($callNo + ($persistenceCalled ? 1 : 0))) + ->expects(self::once()) ->method('contentHandler') ->will(self::returnValue($this->contentHandlerMock)); $this->contentHandlerMock - ->expects(self::at($callNo)) + ->expects(self::once()) ->method('loadContentInfo') ->with($contentId) ->will(self::returnValue($contentInfo)); } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( ParentContentTypeLimitation $limitation, - ValueObject $object, + $object, $targets, array $persistence, $expected ) { + if ($object === 'contentMock') { + $object = $this->getTestEvaluateContentMock(); + } elseif ($object === 'versionInfoMock') { + $object = $this->getTestEvaluateVersionInfoMock(); + } + // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -507,7 +513,7 @@ public function testEvaluate( ->will(self::returnValue($this->locationHandlerMock)); $this->locationHandlerMock - ->expects(self::at($index)) + ->expects(self::once()) ->method('load') ->with($target->parentLocationId) ->will(self::returnValue($location = $persistence['locations'][$index])); @@ -580,7 +586,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -588,35 +594,29 @@ public function providerForTestEvaluateInvalidArgument() 'limitation' => new ObjectStateLimitation(), 'object' => new ContentInfo(), 'targets' => [new Location()], - 'persistence' => [], ], // invalid object [ 'limitation' => new ParentContentTypeLimitation(), 'object' => new ObjectStateLimitation(), 'targets' => [], - 'persistence' => [], ], // invalid target when using ContentCreateStruct [ 'limitation' => new ParentContentTypeLimitation(), 'object' => new ContentCreateStruct(), 'targets' => [new Location()], - 'persistence' => [], ], // invalid target when not using ContentCreateStruct [ 'limitation' => new ParentContentTypeLimitation(), 'object' => new ContentInfo(), 'targets' => [new ObjectStateLimitation()], - 'persistence' => [], ], ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument(Limitation $limitation, ValueObject $object, $targets) { $this->expectException(InvalidArgumentException::class); @@ -643,10 +643,9 @@ public function testEvaluateInvalidArgument(Limitation $limitation, ValueObject } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(ParentContentTypeLimitationType $limitationType) { $this->expectException(NotImplementedException::class); @@ -658,10 +657,9 @@ public function testGetCriterionInvalidValue(ParentContentTypeLimitationType $li } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(ParentContentTypeLimitationType $limitationType) { self::markTestIncomplete('Method is not implemented yet: ' . __METHOD__); diff --git a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php index 545c44d161..69eccbdf94 100644 --- a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php @@ -9,17 +9,19 @@ use Ibexa\Contracts\Core\Persistence\Content\Location\Handler as SPILocationHandler; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\Values\Content\Content as APIContent; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentDepthLimitation; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Limitation\ParentDepthLimitationType; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -60,7 +62,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new ParentDepthLimitation()], @@ -70,13 +72,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentDepthLimitation $limitation * @param \Ibexa\Core\Limitation\ParentDepthLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -85,7 +85,7 @@ public function testAcceptValue(ParentDepthLimitation $limitation, ParentDepthLi /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -94,13 +94,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\ParentDepthLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, ParentDepthLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -111,7 +109,7 @@ public function testAcceptValueException(Limitation $limitation, ParentDepthLimi /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new ParentDepthLimitation()], @@ -121,12 +119,10 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentDepthLimitation $limitation */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType) { $validationErrors = $limitationType->validate($limitation); @@ -134,10 +130,9 @@ public function testValidatePass(ParentDepthLimitation $limitation, ParentDepthL } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\ParentDepthLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(ParentDepthLimitationType $limitationType) { $expected = [2, 7]; @@ -154,28 +149,18 @@ public function testBuildValue(ParentDepthLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { - // Mocks for testing Content & VersionInfo objects, should only be used once because of expect rules. - $contentMock = $this->createMock(APIContent::class); - $versionInfoMock = $this->createMock(APIVersionInfo::class); + // Real Content & VersionInfo objects, avoiding mocks since providers must be static. + $content = new CoreContent([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true]), + ]), + ]); - $contentMock - ->expects(self::once()) - ->method('getVersionInfo') - ->will(self::returnValue($versionInfoMock)); - - $versionInfoMock - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['published' => true]))); - - $versionInfoMock2 = $this->createMock(APIVersionInfo::class); - - $versionInfoMock2 - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['published' => true]))); + $versionInfo = new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true]), + ]); return [ // ContentInfo, with targets, no access @@ -183,7 +168,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(), 'object' => new ContentInfo(['published' => true]), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentInfo, with targets, no access @@ -191,7 +176,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(['limitationValues' => [2]]), 'object' => new ContentInfo(['published' => true]), 'targets' => [new Location(['depth' => 55])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentInfo, with targets, with access @@ -199,7 +184,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(['limitationValues' => [2]]), 'object' => new ContentInfo(['published' => true]), 'targets' => [new Location(['depth' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // ContentInfo, no targets, with access @@ -210,7 +195,7 @@ public function providerForTestEvaluate() 'published' => true, ]), 'targets' => null, - 'persistence' => [new Location(['depth' => 2])], + 'persistenceLocations' => [new Location(['depth' => 2])], 'expected' => true, ], // ContentInfo, no targets, no access @@ -221,7 +206,7 @@ public function providerForTestEvaluate() 'published' => true, ]), 'targets' => null, - 'persistence' => [new Location(['depth' => 55])], + 'persistenceLocations' => [new Location(['depth' => 55])], 'expected' => false, ], // ContentInfo, no targets, un-published, with access @@ -232,7 +217,7 @@ public function providerForTestEvaluate() 'published' => false, ]), 'targets' => null, - 'persistence' => [new Location(['depth' => 2])], + 'persistenceLocations' => [new Location(['depth' => 2])], 'expected' => true, ], // ContentInfo, no targets, un-published, no access @@ -243,23 +228,23 @@ public function providerForTestEvaluate() 'published' => false, ]), 'targets' => null, - 'persistence' => [new Location(['depth' => 55])], + 'persistenceLocations' => [new Location(['depth' => 55])], 'expected' => false, ], // Content, with targets, with access [ 'limitation' => new ParentDepthLimitation(['limitationValues' => [2]]), - 'object' => $contentMock, + 'object' => $content, 'targets' => [new Location(['depth' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // VersionInfo, with targets, with access [ 'limitation' => new ParentDepthLimitation(['limitationValues' => [2]]), - 'object' => $versionInfoMock2, + 'object' => $versionInfo, 'targets' => [new Location(['depth' => 2])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => true, ], // ContentCreateStruct, no targets, no access @@ -267,7 +252,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(['limitationValues' => [2]]), 'object' => new ContentCreateStruct(), 'targets' => [], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => false, ], // ContentCreateStruct, with targets, no access @@ -275,7 +260,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(['limitationValues' => [2, 43]]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 55])], - 'persistence' => [ + 'persistenceLocations' => [ 55 => new Location(['depth' => 42]), ], 'expected' => false, @@ -285,7 +270,7 @@ public function providerForTestEvaluate() 'limitation' => new ParentDepthLimitation(['limitationValues' => [2, 42]]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 43])], - 'persistence' => [ + 'persistenceLocations' => [ 43 => new Location(['depth' => 42]), ], 'expected' => true, @@ -293,9 +278,7 @@ public function providerForTestEvaluate() ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( ParentDepthLimitation $limitation, ValueObject $object, @@ -360,7 +343,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -368,35 +351,33 @@ public function providerForTestEvaluateInvalidArgument() 'limitation' => new ObjectStateLimitation(), 'object' => new ContentInfo(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid object [ 'limitation' => new ParentDepthLimitation(), 'object' => new ObjectStateLimitation(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid target [ 'limitation' => new ParentDepthLimitation(), 'object' => new ContentInfo(), 'targets' => [new ObjectStateLimitation()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid target when using ContentCreateStruct [ 'limitation' => new ParentDepthLimitation(), 'object' => new ContentCreateStruct(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, diff --git a/tests/lib/Limitation/RoleLimitationTypeTest.php b/tests/lib/Limitation/RoleLimitationTypeTest.php index ea6035ea61..586a968b45 100644 --- a/tests/lib/Limitation/RoleLimitationTypeTest.php +++ b/tests/lib/Limitation/RoleLimitationTypeTest.php @@ -25,6 +25,7 @@ use Ibexa\Core\Repository\Values\User\UserGroup; use Ibexa\Core\Repository\Values\User\UserGroupRoleAssignment; use Ibexa\Core\Repository\Values\User\UserRoleAssignment; +use PHPUnit\Framework\Attributes\DataProvider; final class RoleLimitationTypeTest extends Base { @@ -39,16 +40,14 @@ protected function setUp(): void ); } - /** - * @dataProvider providerForTestAcceptValue - */ + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(UserRoleLimitation $limitation): void { $this->expectNotToPerformAssertions(); $this->limitationType->acceptValue($limitation); } - public function providerForTestAcceptValue(): array + public static function providerForTestAcceptValue(): array { return [ [ @@ -64,16 +63,14 @@ public function providerForTestAcceptValue(): array ]; } - /** - * @dataProvider providerForTestAcceptValueException - */ + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(UserRoleLimitation $limitation): void { $this->expectException(InvalidArgumentType::class); $this->limitationType->acceptValue($limitation); } - public function providerForTestAcceptValueException(): array + public static function providerForTestAcceptValueException(): array { return [ [ @@ -99,18 +96,25 @@ public function providerForTestAcceptValueException(): array ]; } - /** - * @dataProvider providerForTestAcceptValue - */ + #[DataProvider('providerForTestAcceptValue')] public function testValidatePass(UserRoleLimitation $limitation): void { $userHandlerMock = $this->createMock(UserHandlerInterface::class); $contentHandlerMock = $this->createMock(ContentHandlerInterface::class); if ($limitation->limitationValues !== null) { - $userHandlerMock - ->method('loadRole') - ->withConsecutive([4, Role::STATUS_DEFINED], [8, Role::STATUS_DEFINED]); + $matcher = $this->any(); + $userHandlerMock->expects($matcher) + ->method('loadRole')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(4, $parameters[0]); + $this->assertSame(Role::STATUS_DEFINED, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(8, $parameters[0]); + $this->assertSame(Role::STATUS_DEFINED, $parameters[1]); + } + }); $this->getPersistenceMock() ->method('userHandler') @@ -118,9 +122,16 @@ public function testValidatePass(UserRoleLimitation $limitation): void } if ($limitation->limitationValues !== null) { - $contentHandlerMock - ->method('loadContentInfo') - ->withConsecutive([14], [21]); + $matcher = $this->any(); + $contentHandlerMock->expects($matcher) + ->method('loadContentInfo')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(14, $parameters[0]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(21, $parameters[0]); + } + }); $this->getPersistenceMock() ->method('contentHandler') @@ -132,21 +143,28 @@ public function testValidatePass(UserRoleLimitation $limitation): void self::assertEmpty($validationErrors); } - /** - * @dataProvider providerForTestValidateError - */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(UserRoleLimitation $limitation, int $errorCount): void { $userHandlerMock = $this->createMock(UserHandlerInterface::class); if ($limitation->limitationValues !== null) { - $userHandlerMock - ->method('loadRole') - ->withConsecutive([4, Role::STATUS_DEFINED], [8, Role::STATUS_DEFINED]) - ->willReturnOnConsecutiveCalls( - self::throwException(new NotFoundException('Role', 4)), - new Role() - ); + $matcher = $this->exactly(2); + $userHandlerMock->expects($matcher) + ->method('loadRole')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(4, $parameters[0]); + $this->assertSame(Role::STATUS_DEFINED, $parameters[1]); + + throw new NotFoundException('Role', 4); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(8, $parameters[0]); + $this->assertSame(Role::STATUS_DEFINED, $parameters[1]); + + return new Role(); + } + }); $this->getPersistenceMock() ->method('userHandler') @@ -157,7 +175,7 @@ public function testValidateError(UserRoleLimitation $limitation, int $errorCoun self::assertCount($errorCount, $validationErrors); } - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [ @@ -169,9 +187,7 @@ public function providerForTestValidateError() ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( UserRoleLimitation $limitation, ValueObject $object, @@ -204,7 +220,7 @@ public function testEvaluate( self::assertEquals($expected, $value); } - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ 'valid_role_limitation' => [ diff --git a/tests/lib/Limitation/SectionLimitationTypeTest.php b/tests/lib/Limitation/SectionLimitationTypeTest.php index fdb938866d..4895b85fc1 100644 --- a/tests/lib/Limitation/SectionLimitationTypeTest.php +++ b/tests/lib/Limitation/SectionLimitationTypeTest.php @@ -12,20 +12,22 @@ use Ibexa\Contracts\Core\Persistence\Content\Section\Handler as SPISectionHandler; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; -use Ibexa\Contracts\Core\Repository\Values\Content\Content as APIContent; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Operator; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\SectionId; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Limitation\SectionLimitationType; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -64,7 +66,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new SectionLimitation()], @@ -74,13 +76,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation $limitation * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(SectionLimitation $limitation, SectionLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -89,7 +89,7 @@ public function testAcceptValue(SectionLimitation $limitation, SectionLimitation /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -101,13 +101,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, SectionLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -118,7 +116,7 @@ public function testAcceptValueException(Limitation $limitation, SectionLimitati /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new SectionLimitation()], @@ -128,10 +126,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(SectionLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -140,17 +137,17 @@ public function testValidatePass(SectionLimitation $limitation) ->method('sectionHandler') ->will(self::returnValue($this->sectionHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->sectionHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will( - self::returnValue( - new SPISection(['id' => $value]) - ) - ); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->sectionHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): SPISection { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + return new SPISection(['id' => $value]); + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -163,7 +160,7 @@ public function testValidatePass(SectionLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new SectionLimitation(), 0], @@ -173,11 +170,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(SectionLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -186,13 +182,17 @@ public function testValidateError(SectionLimitation $limitation, $errorCount) ->method('sectionHandler') ->will(self::returnValue($this->sectionHandlerMock)); - foreach ($limitation->limitationValues as $key => $value) { - $this->sectionHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($value) - ->will(self::throwException(new NotFoundException('Section', $value))); - } + $limitationValues = $limitation->limitationValues; + $matcher = self::exactly(count($limitationValues)); + $this->sectionHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($actualValue) use ($matcher, $limitationValues): void { + $value = $limitationValues[$matcher->numberOfInvocations() - 1]; + self::assertSame($value, $actualValue); + + throw new NotFoundException('Section', $value); + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -207,10 +207,9 @@ public function testValidateError(SectionLimitation $limitation, $errorCount) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(SectionLimitationType $limitationType) { $expected = ['test', 'test' => '33']; @@ -224,28 +223,17 @@ public function testBuildValue(SectionLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { - // Mocks for testing Content & VersionInfo objects, should only be used once because of expect rules. - $contentMock = $this->createMock(APIContent::class); - $versionInfoMock = $this->createMock(APIVersionInfo::class); + $contentMock = new CoreContent([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['sectionId' => 2]), + ]), + ]); - $contentMock - ->expects(self::once()) - ->method('getVersionInfo') - ->will(self::returnValue($versionInfoMock)); - - $versionInfoMock - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['sectionId' => 2]))); - - $versionInfoMock2 = $this->createMock(APIVersionInfo::class); - - $versionInfoMock2 - ->expects(self::once()) - ->method('getContentInfo') - ->will(self::returnValue(new ContentInfo(['sectionId' => 2]))); + $versionInfoMock2 = new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['sectionId' => 2]), + ]); return [ // ContentInfo, with targets, no access @@ -349,9 +337,7 @@ public function providerForTestEvaluate() ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( SectionLimitation $limitation, ValueObject $object, @@ -383,7 +369,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -395,9 +381,7 @@ public function providerForTestEvaluateInvalidArgument() ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -427,10 +411,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(SectionLimitationType $limitationType) { $this->expectException(\RuntimeException::class); @@ -442,10 +425,9 @@ public function testGetCriterionInvalidValue(SectionLimitationType $limitationTy } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionSingleValue(SectionLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -461,10 +443,9 @@ public function testGetCriterionSingleValue(SectionLimitationType $limitationTyp } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionMultipleValues(SectionLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -480,10 +461,9 @@ public function testGetCriterionMultipleValues(SectionLimitationType $limitation } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(SectionLimitationType $limitationType) { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/SiteAccessLimitationTypeTest.php b/tests/lib/Limitation/SiteAccessLimitationTypeTest.php index 2996a4f4a5..0af4aa916a 100644 --- a/tests/lib/Limitation/SiteAccessLimitationTypeTest.php +++ b/tests/lib/Limitation/SiteAccessLimitationTypeTest.php @@ -15,6 +15,8 @@ use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Limitation\SiteAccessLimitationType; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -50,7 +52,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new SiteAccessLimitation()], @@ -81,13 +83,11 @@ public function providerForTestAcceptValue() } /** - * @depends testConstruct - * - * @dataProvider providerForTestAcceptValue - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SiteAccessLimitation $limitation * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(SiteAccessLimitation $limitation, SiteAccessLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -96,7 +96,7 @@ public function testAcceptValue(SiteAccessLimitation $limitation, SiteAccessLimi /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -105,13 +105,11 @@ public function providerForTestAcceptValueException() } /** - * @depends testConstruct - * - * @dataProvider providerForTestAcceptValueException - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, SiteAccessLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -122,7 +120,7 @@ public function testAcceptValueException(Limitation $limitation, SiteAccessLimit /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new SiteAccessLimitation(), 0], @@ -163,14 +161,12 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SiteAccessLimitation $limitation * @param int $errorCount * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestValidateError')] public function testValidateError(SiteAccessLimitation $limitation, $errorCount, SiteAccessLimitationType $limitationType) { $validationErrors = $limitationType->validate($limitation); @@ -178,10 +174,9 @@ public function testValidateError(SiteAccessLimitation $limitation, $errorCount, } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(SiteAccessLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -195,35 +190,32 @@ public function testBuildValue(SiteAccessLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ // SiteAccess, no access [ - 'limitation' => new SiteAccessLimitation(), - 'object' => new SiteAccess('behat_site'), - 'expected' => false, + new SiteAccessLimitation(), + new SiteAccess('behat_site'), + false, ], // SiteAccess, no access [ - 'limitation' => new SiteAccessLimitation(['limitationValues' => ['2339567439']]), - 'object' => new SiteAccess('behat_site'), - 'expected' => false, + new SiteAccessLimitation(['limitationValues' => ['2339567439']]), + new SiteAccess('behat_site'), + false, ], // SiteAccess, with access [ - 'limitation' => new SiteAccessLimitation(['limitationValues' => ['1817462202']]), - 'object' => new SiteAccess('behat_site'), - 'expected' => true, + new SiteAccessLimitation(['limitationValues' => ['1817462202']]), + new SiteAccess('behat_site'), + true, ], ]; } - /** - * @depends testConstruct - * - * @dataProvider providerForTestEvaluate - */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( SiteAccessLimitation $limitation, ValueObject $object, @@ -246,27 +238,24 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation [ - 'limitation' => new ObjectStateLimitation(), - 'object' => new SiteAccess('test'), + new ObjectStateLimitation(), + new SiteAccess('test'), ], // invalid object [ - 'limitation' => new SiteAccessLimitation(), - 'object' => new ObjectStateLimitation(), + new SiteAccessLimitation(), + new ObjectStateLimitation(), ], ]; } - /** - * @depends testConstruct - * - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -285,10 +274,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterion(SiteAccessLimitationType $limitationType) { $this->expectException(NotImplementedException::class); @@ -297,18 +285,15 @@ public function testGetCriterion(SiteAccessLimitationType $limitationType) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(SiteAccessLimitationType $limitationType) { self::markTestSkipped('Method valueSchema() is not implemented'); } - /** - * @depends testConstruct - */ + #[Depends('testConstruct')] public function testGenerateSiteAccessValue(SiteAccessLimitationType $limitationType): void { self::assertSame('341347141', $limitationType->generateSiteAccessValue('ger')); diff --git a/tests/lib/Limitation/StatusLimitationTypeTest.php b/tests/lib/Limitation/StatusLimitationTypeTest.php index 5960d445b3..91c97df5ff 100644 --- a/tests/lib/Limitation/StatusLimitationTypeTest.php +++ b/tests/lib/Limitation/StatusLimitationTypeTest.php @@ -19,6 +19,8 @@ use Ibexa\Core\Limitation\StatusLimitationType; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\User; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -36,7 +38,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new StatusLimitation()], @@ -56,13 +58,11 @@ public function providerForTestAcceptValue() } /** - * @depends testConstruct - * - * @dataProvider providerForTestAcceptValue - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\StatusLimitation $limitation * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(StatusLimitation $limitation, StatusLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -71,7 +71,7 @@ public function testAcceptValue(StatusLimitation $limitation, StatusLimitationTy /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -80,13 +80,11 @@ public function providerForTestAcceptValueException() } /** - * @depends testConstruct - * - * @dataProvider providerForTestAcceptValueException - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, StatusLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -97,7 +95,7 @@ public function testAcceptValueException(Limitation $limitation, StatusLimitatio /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new StatusLimitation(), 0], @@ -149,14 +147,12 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\StatusLimitation $limitation * @param int $errorCount * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestValidateError')] public function testValidateError(StatusLimitation $limitation, $errorCount, StatusLimitationType $limitationType) { $validationErrors = $limitationType->validate($limitation); @@ -164,10 +160,9 @@ public function testValidateError(StatusLimitation $limitation, $errorCount, Sta } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(StatusLimitationType $limitationType) { $expected = ['test', 'test' => 9]; @@ -182,7 +177,7 @@ protected function getVersionInfoMock($shouldBeCalled = true) { $versionInfoMock = $this->getMockBuilder(APIVersionInfo::class) ->disableOriginalConstructor() - ->setMethods(['__get']) + ->onlyMethods(['__get']) ->getMockForAbstractClass(); if ($shouldBeCalled) { @@ -201,17 +196,16 @@ protected function getVersionInfoMock($shouldBeCalled = true) return $versionInfoMock; } - protected function getContentMock() + protected function getContentMock($shouldBeCalled = true) { $contentMock = $this->getMockBuilder(APIContent::class) ->setConstructorArgs([]) - ->setMethods([]) ->getMock(); $contentMock ->expects(self::once()) ->method('getVersionInfo') - ->will(self::returnValue($this->getVersionInfoMock())); + ->will(self::returnValue($this->getVersionInfoMock($shouldBeCalled))); return $contentMock; } @@ -219,59 +213,65 @@ protected function getContentMock() /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { return [ // VersionInfo, no access [ - 'limitation' => new StatusLimitation(), - 'object' => $this->getVersionInfoMock(false), - 'expected' => false, + new StatusLimitation(), + 'versionInfo', + false, + false, ], // VersionInfo, no access [ - 'limitation' => new StatusLimitation(['limitationValues' => [42]]), - 'object' => $this->getVersionInfoMock(), - 'expected' => false, + new StatusLimitation(['limitationValues' => [42]]), + 'versionInfo', + true, + false, ], // VersionInfo, with access [ - 'limitation' => new StatusLimitation(['limitationValues' => [24]]), - 'object' => $this->getVersionInfoMock(), - 'expected' => true, + new StatusLimitation(['limitationValues' => [24]]), + 'versionInfo', + true, + true, ], // Content, no access [ - 'limitation' => new StatusLimitation(), - 'object' => $this->getContentMock(), - 'expected' => false, + new StatusLimitation(), + 'content', + false, + false, ], // Content, no access [ - 'limitation' => new StatusLimitation(['limitationValues' => [42]]), - 'object' => $this->getContentMock(), - 'expected' => false, + new StatusLimitation(['limitationValues' => [42]]), + 'content', + true, + false, ], // Content, with access [ - 'limitation' => new StatusLimitation(['limitationValues' => [24]]), - 'object' => $this->getContentMock(), - 'expected' => true, + new StatusLimitation(['limitationValues' => [24]]), + 'content', + true, + true, ], ]; } - /** - * @depends testConstruct - * - * @dataProvider providerForTestEvaluate - */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( StatusLimitation $limitation, - ValueObject $object, + string $objectType, + bool $shouldBeCalled, $expected, StatusLimitationType $limitationType ) { + $object = $objectType === 'versionInfo' ? $this->getVersionInfoMock($shouldBeCalled) : $this->getContentMock($shouldBeCalled); + $userMock = $this->getUserMock(); $userMock->expects(self::never()) ->method(self::anything()); @@ -290,32 +290,56 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { - $versionInfoMock = $this->getMockBuilder(APIVersionInfo::class) - ->setConstructorArgs([]) - ->setMethods([]) - ->getMock(); + $versionInfoStub = new class() extends APIVersionInfo { + public function getContentInfo(): \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo + { + return new \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo(); + } + + public function getCreator(): User + { + return new User(); + } + + public function getInitialLanguage(): \Ibexa\Contracts\Core\Repository\Values\Content\Language + { + return new \Ibexa\Contracts\Core\Repository\Values\Content\Language(); + } + + public function getLanguages(): iterable + { + return []; + } + + public function getNames(): array + { + return []; + } + + public function getName(?string $languageCode = null): ?string + { + return null; + } + }; return [ // invalid limitation [ - 'limitation' => new ObjectStateLimitation(), - 'object' => $versionInfoMock, + new ObjectStateLimitation(), + $versionInfoStub, ], // invalid object [ - 'limitation' => new StatusLimitation(), - 'object' => new ObjectStateLimitation(), + new StatusLimitation(), + new ObjectStateLimitation(), ], ]; } - /** - * @depends testConstruct - * - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -335,10 +359,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterion(StatusLimitationType $limitationType) { $this->expectException(NotImplementedException::class); @@ -347,10 +370,9 @@ public function testGetCriterion(StatusLimitationType $limitationType) } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(StatusLimitationType $limitationType) { self::markTestSkipped('Method valueSchema() is not implemented'); diff --git a/tests/lib/Limitation/SubtreeLimitationTypeTest.php b/tests/lib/Limitation/SubtreeLimitationTypeTest.php index 7e6842e2bf..62a982ac41 100644 --- a/tests/lib/Limitation/SubtreeLimitationTypeTest.php +++ b/tests/lib/Limitation/SubtreeLimitationTypeTest.php @@ -11,21 +11,23 @@ use Ibexa\Contracts\Core\Persistence\Content\Location as SPILocation; use Ibexa\Contracts\Core\Persistence\Content\Location\Handler as SPILocationHandler; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\Values\Content\Content as APIContent; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Operator; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Subtree; -use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Limitation\SubtreeLimitationType; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\Query\Criterion\PermissionSubtree; +use Ibexa\Core\Repository\Values\Content\VersionInfo as CoreVersionInfo; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; /** * Test Case for LimitationType. @@ -66,7 +68,7 @@ public function testConstruct() /** * @return array */ - public function providerForTestAcceptValue() + public static function providerForTestAcceptValue() { return [ [new SubtreeLimitation()], @@ -76,13 +78,11 @@ public function providerForTestAcceptValue() } /** - * @dataProvider providerForTestAcceptValue - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation $limitation * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValue')] public function testAcceptValue(SubtreeLimitation $limitation, SubtreeLimitationType $limitationType) { $limitationType->acceptValue($limitation); @@ -91,7 +91,7 @@ public function testAcceptValue(SubtreeLimitation $limitation, SubtreeLimitation /** * @return array */ - public function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException() { return [ [new ObjectStateLimitation()], @@ -103,13 +103,11 @@ public function providerForTestAcceptValueException() } /** - * @dataProvider providerForTestAcceptValueException - * - * @depends testConstruct - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation $limitation * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] + #[DataProvider('providerForTestAcceptValueException')] public function testAcceptValueException(Limitation $limitation, SubtreeLimitationType $limitationType) { $this->expectException(InvalidArgumentException::class); @@ -120,7 +118,7 @@ public function testAcceptValueException(Limitation $limitation, SubtreeLimitati /** * @return array */ - public function providerForTestValidatePass() + public static function providerForTestValidatePass() { return [ [new SubtreeLimitation()], @@ -130,10 +128,9 @@ public function providerForTestValidatePass() } /** - * @dataProvider providerForTestValidatePass - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation $limitation */ + #[DataProvider('providerForTestValidatePass')] public function testValidatePass(SubtreeLimitation $limitation) { if (!empty($limitation->limitationValues)) { @@ -142,18 +139,23 @@ public function testValidatePass(SubtreeLimitation $limitation) ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); + $loadArguments = []; + $loadReturnValues = []; foreach ($limitation->limitationValues as $key => $value) { $pathArray = explode('/', trim($value, '/')); - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with(end($pathArray)) - ->will( - self::returnValue( - new SPILocation(['pathString' => $value]) - ) - ); + $loadArguments[$key] = end($pathArray); + $loadReturnValues[$key] = new SPILocation(['pathString' => $value]); } + + $matcher = self::exactly(count($limitation->limitationValues)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(function (...$parameters) use ($matcher, $loadArguments, $loadReturnValues) { + $this->assertSame($loadArguments[$matcher->numberOfInvocations() - 1], $parameters[0]); + + return $loadReturnValues[$matcher->numberOfInvocations() - 1]; + }); } // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -166,7 +168,7 @@ public function testValidatePass(SubtreeLimitation $limitation) /** * @return array */ - public function providerForTestValidateError() + public static function providerForTestValidateError() { return [ [new SubtreeLimitation(), 0], @@ -176,11 +178,10 @@ public function providerForTestValidateError() } /** - * @dataProvider providerForTestValidateError - * * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation $limitation * @param int $errorCount */ + #[DataProvider('providerForTestValidateError')] public function testValidateError(SubtreeLimitation $limitation, $errorCount) { if (!empty($limitation->limitationValues)) { @@ -189,14 +190,23 @@ public function testValidateError(SubtreeLimitation $limitation, $errorCount) ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); + $loadArguments = []; + $loadExceptions = []; foreach ($limitation->limitationValues as $key => $value) { $pathArray = explode('/', trim($value, '/')); - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with(end($pathArray)) - ->will(self::throwException(new NotFoundException('location', $value))); + $loadArguments[$key] = end($pathArray); + $loadExceptions[$key] = new NotFoundException('location', $value); } + + $matcher = self::exactly(count($limitation->limitationValues)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(function (...$parameters) use ($matcher, $loadArguments, $loadExceptions) { + $this->assertSame($loadArguments[$matcher->numberOfInvocations() - 1], $parameters[0]); + + throw $loadExceptions[$matcher->numberOfInvocations() - 1]; + }); } else { $this->getPersistenceMock() ->expects(self::never()) @@ -219,19 +229,24 @@ public function testValidateErrorWrongPath() ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); + $loadArguments = []; + $loadReturnValues = []; foreach ($limitation->limitationValues as $key => $value) { $pathArray = explode('/', trim($value, '/')); - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with(end($pathArray)) - ->will( - self::returnValue( - new SPILocation(['pathString' => '/1/5/42']) - ) - ); + $loadArguments[$key] = end($pathArray); + $loadReturnValues[$key] = new SPILocation(['pathString' => '/1/5/42']); } + $matcher = self::exactly(count($limitation->limitationValues)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(function (...$parameters) use ($matcher, $loadArguments, $loadReturnValues) { + $this->assertSame($loadArguments[$matcher->numberOfInvocations() - 1], $parameters[0]); + + return $loadReturnValues[$matcher->numberOfInvocations() - 1]; + }); + // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -240,10 +255,9 @@ public function testValidateErrorWrongPath() } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testBuildValue(SubtreeLimitationType $limitationType) { $expected = ['test', 'test' => '/1/999/']; @@ -257,28 +271,18 @@ public function testBuildValue(SubtreeLimitationType $limitationType) /** * @return array */ - public function providerForTestEvaluate() + public static function providerForTestEvaluate() { - // Mocks for testing Content & VersionInfo objects, should only be used once because of expect rules. - $contentMock = $this->createMock(APIContent::class); - $versionInfoMock = $this->createMock(APIVersionInfo::class); - - $contentMock - ->expects(self::once()) - ->method('getVersionInfo') - ->will(self::returnValue($versionInfoMock)); + // Real Content & VersionInfo objects, avoiding mocks since providers must be static. + $content = new CoreContent([ + 'versionInfo' => new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), + ]), + ]); - $versionInfoMock - ->expects(self::once()) - ->method('getContentInfo') - ->willReturn(new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED])); - - $versionInfoMock2 = $this->createMock(APIVersionInfo::class); - - $versionInfoMock2 - ->expects(self::once()) - ->method('getContentInfo') - ->willReturn(new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED])); + $versionInfo = new CoreVersionInfo([ + 'contentInfo' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), + ]); return [ // ContentInfo, with targets, no access @@ -286,7 +290,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(), 'object' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_DENIED, ], // ContentInfo, with targets, no access @@ -294,7 +298,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/']]), 'object' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), 'targets' => [new Location(['pathString' => '/1/55/'])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_DENIED, ], // ContentInfo, with targets, with access @@ -302,7 +306,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/']]), 'object' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), 'targets' => [new Location(['pathString' => '/1/2/'])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_GRANTED, ], // ContentInfo, no targets, with access @@ -314,7 +318,7 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_PUBLISHED, ]), 'targets' => null, - 'persistence' => [new Location(['pathString' => '/1/2/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/2/'])], 'expected' => LimitationType::ACCESS_GRANTED, ], // ContentInfo, no targets, no access @@ -326,7 +330,7 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_PUBLISHED, ]), 'targets' => null, - 'persistence' => [new Location(['pathString' => '/1/55/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/55/'])], 'expected' => LimitationType::ACCESS_DENIED, ], // ContentInfo, no targets, un-published, with access @@ -338,7 +342,7 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_DRAFT, ]), 'targets' => null, - 'persistence' => [new Location(['pathString' => '/1/2/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/2/'])], 'expected' => LimitationType::ACCESS_GRANTED, ], // ContentInfo, no targets, un-published, no access @@ -350,23 +354,23 @@ public function providerForTestEvaluate() 'status' => ContentInfo::STATUS_DRAFT, ]), 'targets' => null, - 'persistence' => [new Location(['pathString' => '/1/55/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/55/'])], 'expected' => LimitationType::ACCESS_DENIED, ], // Content, with targets, with access [ 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/']]), - 'object' => $contentMock, + 'object' => $content, 'targets' => [new Location(['pathString' => '/1/2/'])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_GRANTED, ], // VersionInfo, with targets, with access [ 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/']]), - 'object' => $versionInfoMock2, + 'object' => $versionInfo, 'targets' => [new Location(['pathString' => '/1/2/'])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_GRANTED, ], // ContentCreateStruct, no targets, no access @@ -374,7 +378,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/']]), 'object' => new ContentCreateStruct(), 'targets' => [], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_DENIED, ], // ContentCreateStruct, with targets, no access @@ -382,7 +386,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/', '/1/43/']]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 55])], - 'persistence' => [new Location(['pathString' => '/1/55/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/55/'])], 'expected' => LimitationType::ACCESS_DENIED, ], // ContentCreateStruct, with targets, with access @@ -390,7 +394,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(['limitationValues' => ['/1/2/', '/1/43/']]), 'object' => new ContentCreateStruct(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 43])], - 'persistence' => [new Location(['pathString' => '/1/43/'])], + 'persistenceLocations' => [new Location(['pathString' => '/1/43/'])], 'expected' => LimitationType::ACCESS_GRANTED, ], // invalid object @@ -398,7 +402,7 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(), 'object' => new ObjectStateLimitation(), 'targets' => [new LocationCreateStruct(['parentLocationId' => 43])], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_ABSTAIN, ], // invalid target @@ -406,15 +410,13 @@ public function providerForTestEvaluate() 'limitation' => new SubtreeLimitation(), 'object' => new ContentInfo(['published' => true, 'status' => ContentInfo::STATUS_PUBLISHED]), 'targets' => [new ObjectStateLimitation()], - 'persistence' => [], + 'persistenceLocations' => [], 'expected' => LimitationType::ACCESS_ABSTAIN, ], ]; } - /** - * @dataProvider providerForTestEvaluate - */ + #[DataProvider('providerForTestEvaluate')] public function testEvaluate( SubtreeLimitation $limitation, ValueObject $object, @@ -436,18 +438,27 @@ public function testEvaluate( ->expects(self::never()) ->method(self::anything()); } elseif ($object instanceof ContentCreateStruct) { + $this->getPersistenceMock() + ->expects(self::exactly(count($targets))) + ->method('locationHandler') + ->willReturn($this->locationHandlerMock); + + $loadArguments = []; + $loadReturnValues = []; foreach ((array)$targets as $key => $target) { - $this->getPersistenceMock() - ->expects(self::at($key)) - ->method('locationHandler') - ->will(self::returnValue($this->locationHandlerMock)); - - $this->locationHandlerMock - ->expects(self::at($key)) - ->method('load') - ->with($target->parentLocationId) - ->will(self::returnValue($persistenceLocations[$key])); + $loadArguments[$key] = $target->parentLocationId; + $loadReturnValues[$key] = $persistenceLocations[$key]; } + + $matcher = self::exactly(count($targets)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(function (...$parameters) use ($matcher, $loadArguments, $loadReturnValues) { + $this->assertSame($loadArguments[$matcher->numberOfInvocations() - 1], $parameters[0]); + + return $loadReturnValues[$matcher->numberOfInvocations() - 1]; + }); } else { $this->getPersistenceMock() ->expects(self::once()) @@ -474,7 +485,7 @@ public function testEvaluate( /** * @return array */ - public function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument() { return [ // invalid limitation @@ -482,21 +493,19 @@ public function providerForTestEvaluateInvalidArgument() 'limitation' => new ObjectStateLimitation(), 'object' => new ContentInfo(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], // invalid target when using ContentCreateStruct [ 'limitation' => new SubtreeLimitation(), 'object' => new ContentCreateStruct(), 'targets' => [new Location()], - 'persistence' => [], + 'persistenceLocations' => [], ], ]; } - /** - * @dataProvider providerForTestEvaluateInvalidArgument - */ + #[DataProvider('providerForTestEvaluateInvalidArgument')] public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, @@ -528,10 +537,9 @@ public function testEvaluateInvalidArgument( } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionInvalidValue(SubtreeLimitationType $limitationType) { $this->expectException(\RuntimeException::class); @@ -543,10 +551,9 @@ public function testGetCriterionInvalidValue(SubtreeLimitationType $limitationTy } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionSingleValue(SubtreeLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -564,10 +571,9 @@ public function testGetCriterionSingleValue(SubtreeLimitationType $limitationTyp } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testGetCriterionMultipleValues(SubtreeLimitationType $limitationType) { $criterion = $limitationType->getCriterion( @@ -585,10 +591,9 @@ public function testGetCriterionMultipleValues(SubtreeLimitationType $limitation } /** - * @depends testConstruct - * * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ + #[Depends('testConstruct')] public function testValueSchema(SubtreeLimitationType $limitationType) { self::assertEquals( diff --git a/tests/lib/MVC/Symfony/Component/Serializer/CompoundMatcherNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/CompoundMatcherNormalizerTest.php index c7c67b26f6..f7733bf532 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/CompoundMatcherNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/CompoundMatcherNormalizerTest.php @@ -13,15 +13,17 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\Compound; use Ibexa\Tests\Core\MVC\Symfony\Component\Serializer\Stubs\CompoundStub; use Ibexa\Tests\Core\MVC\Symfony\Component\Serializer\Stubs\MatcherStub; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; /** - * @covers \Ibexa\Core\MVC\Symfony\Component\Serializer\CompoundMatcherNormalizer - * * @phpstan-type TNormalizedData array{type?: class-string, subMatchers: array, config: array, matchersMap: array} */ +#[CoversClass(CompoundMatcherNormalizer::class)] final class CompoundMatcherNormalizerTest extends TestCase { /** @phpstan-var TNormalizedData */ @@ -79,8 +81,8 @@ public function testSupportsNormalization(): void { $normalizer = new CompoundMatcherNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(Compound::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(Compound::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } /** @@ -98,11 +100,10 @@ public static function getDataForSupportsNormalization(): iterable } /** - * @dataProvider getDataForSupportsNormalization - * * @phpstan-param TNormalizedData $data * @phpstan-param class-string $type */ + #[DataProvider('getDataForSupportsNormalization')] public function testSupportsDenormalization(array $data, string $type, bool $supports): void { $normalizer = new CompoundMatcherNormalizer(); @@ -111,12 +112,11 @@ public function testSupportsDenormalization(array $data, string $type, bool $sup } /** - * @depends testNormalization - * * @phpstan-param array{type: class-string, subMatchers: array, config: array{}, matchersMap: array{}} $data * * @throws \Symfony\Component\Serializer\Exception\ExceptionInterface */ + #[Depends('testNormalization')] public function testDenormalization(array $data): void { $expectedCompoundMatcher = new CompoundStub($this->getSubMatchers()); diff --git a/tests/lib/MVC/Symfony/Component/Serializer/HostElementNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/HostElementNormalizerTest.php index b9fb81129b..b3ec89780e 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/HostElementNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/HostElementNormalizerTest.php @@ -12,13 +12,12 @@ use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\HostElement; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Serializer; -/** - * @covers \Ibexa\Core\MVC\Symfony\Component\Serializer\HostElementNormalizer - */ +#[CoversClass(HostElementNormalizer::class)] final class HostElementNormalizerTest extends TestCase { private const array DATA = [ @@ -58,8 +57,8 @@ public function testSupportsNormalization(): void { $normalizer = new HostElementNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(HostElement::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(HostElement::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } /** diff --git a/tests/lib/MVC/Symfony/Component/Serializer/HostTextNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/HostTextNormalizerTest.php index 157fd17285..e0c6e8e5b0 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/HostTextNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/HostTextNormalizerTest.php @@ -48,7 +48,7 @@ public function testSupportsNormalization(): void { $normalizer = new HostTextNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(HostText::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(HostText::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } } diff --git a/tests/lib/MVC/Symfony/Component/Serializer/MapNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/MapNormalizerTest.php index e605db860b..4a57c5c55b 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/MapNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/MapNormalizerTest.php @@ -37,7 +37,7 @@ public function testSupportsNormalization(): void { $normalizer = new MapNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(MapMatcher::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(MapMatcher::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } } diff --git a/tests/lib/MVC/Symfony/Component/Serializer/RegexNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/RegexNormalizerTest.php index 30a3ad4259..519ad6312c 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/RegexNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/RegexNormalizerTest.php @@ -35,7 +35,7 @@ public function testSupportsNormalization(): void { $normalizer = new RegexNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(RegexMatcher::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(RegexMatcher::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } } diff --git a/tests/lib/MVC/Symfony/Component/Serializer/SimplifiedRequestNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/SimplifiedRequestNormalizerTest.php index 8c67e1e7f1..0d5eadfb67 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/SimplifiedRequestNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/SimplifiedRequestNormalizerTest.php @@ -9,12 +9,11 @@ use Ibexa\Core\MVC\Symfony\Component\Serializer\SimplifiedRequestNormalizer; use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use stdClass; -/** - * @covers \Ibexa\Core\MVC\Symfony\Component\Serializer\SimplifiedRequestNormalizer - */ +#[CoversClass(SimplifiedRequestNormalizer::class)] final class SimplifiedRequestNormalizerTest extends TestCase { /** diff --git a/tests/lib/MVC/Symfony/Component/Serializer/URIElementNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/URIElementNormalizerTest.php index 32e41163c6..bd3572e038 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/URIElementNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/URIElementNormalizerTest.php @@ -12,20 +12,19 @@ use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIElement; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Serializer; -/** - * @covers \Ibexa\Core\MVC\Symfony\Component\Serializer\URIElementNormalizer - */ +#[CoversClass(URIElementNormalizer::class)] final class URIElementNormalizerTest extends TestCase { /** - * @dataProvider provideForTestNormalization - * * @throws \Symfony\Component\Serializer\Exception\ExceptionInterface */ + #[DataProvider('provideForTestNormalization')] public function testNormalization(bool $initializeUriElements): void { $normalizer = new URIElementNormalizer(); @@ -66,7 +65,7 @@ public function testSupportsNormalization(): void { $normalizer = new URIElementNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(URIElement::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(URIElement::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } } diff --git a/tests/lib/MVC/Symfony/Component/Serializer/URITextNormalizerTest.php b/tests/lib/MVC/Symfony/Component/Serializer/URITextNormalizerTest.php index 2fc6a505b6..931192d3bf 100644 --- a/tests/lib/MVC/Symfony/Component/Serializer/URITextNormalizerTest.php +++ b/tests/lib/MVC/Symfony/Component/Serializer/URITextNormalizerTest.php @@ -12,12 +12,11 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIText; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Serializer; -/** - * @covers \Ibexa\Core\MVC\Symfony\Component\Serializer\URITextNormalizer - */ +#[CoversClass(URITextNormalizer::class)] final class URITextNormalizerTest extends TestCase { /** @@ -54,7 +53,7 @@ public function testSupportsNormalization(): void { $normalizer = new URITextNormalizer(); - self::assertTrue($normalizer->supportsNormalization($this->createMock(URIText::class))); - self::assertFalse($normalizer->supportsNormalization($this->createMock(Matcher::class))); + self::assertTrue($normalizer->supportsNormalization(self::createStub(URIText::class))); + self::assertFalse($normalizer->supportsNormalization(self::createStub(Matcher::class))); } } diff --git a/tests/lib/MVC/Symfony/Controller/Controller/Content/DownloadControllerTest.php b/tests/lib/MVC/Symfony/Controller/Controller/Content/DownloadControllerTest.php index 40e6bfbae7..db83e56236 100644 --- a/tests/lib/MVC/Symfony/Controller/Controller/Content/DownloadControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/Controller/Content/DownloadControllerTest.php @@ -10,14 +10,16 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\Base\Exceptions\NotFoundException as BaseNotFoundException; +use Ibexa\Core\MVC\Symfony\Controller\Content\DownloadController; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; -/** - * @covers \Ibexa\Core\MVC\Symfony\Controller\Content\DownloadController - */ +#[CoversClass(DownloadController::class)] final class DownloadControllerTest extends TestCase { use DownloadControllerTestTrait; @@ -123,9 +125,7 @@ public function testDownloadBinaryFileByIdActionReturnsFileWhenFilenameMatches() self::assertStringContainsString(self::FILENAME, (string) $response->headers->get('Content-Disposition')); } - /** - * @dataProvider provideNotFoundCases - */ + #[DataProvider('provideNotFoundCases')] public function testDownloadBinaryFileByIdActionReturnsNotFound(int $fieldId, string $filename): void { $content = $this->createContent(self::FILENAME); @@ -154,9 +154,7 @@ public static function provideNotFoundCases(): iterable yield 'field id does not exist in content' => [123, self::FILENAME]; } - /** - * @group legacy - */ + #[Group('legacy')] public function testDownloadBinaryFileByIdActionTriggersDeprecationWithoutFilename(): void { $content = $this->createContent(self::FILENAME); diff --git a/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php b/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php index 7040853152..178fc6e069 100644 --- a/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php @@ -19,6 +19,8 @@ use Ibexa\Core\MVC\Symfony\Controller\Content\PreviewController; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\View\CustomLocationControllerChecker; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Request; @@ -27,9 +29,7 @@ use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; use Symfony\Component\Security\Core\Exception\AccessDeniedException; -/** - * @covers \Ibexa\Core\MVC\Symfony\Controller\Content\PreviewController - */ +#[CoversClass(PreviewController::class)] final class PreviewControllerTest extends TestCase { /** @var \Ibexa\Contracts\Core\Repository\ContentService&\PHPUnit\Framework\MockObject\MockObject */ @@ -50,8 +50,8 @@ final class PreviewControllerTest extends TestCase /** @var \Ibexa\Core\Helper\PreviewLocationProvider&\PHPUnit\Framework\MockObject\MockObject */ protected PreviewLocationProvider $locationProvider; - /** @var \Ibexa\Core\MVC\Symfony\View\CustomLocationControllerChecker&\PHPUnit\Framework\MockObject\MockObject */ - protected CustomLocationControllerChecker $controllerChecker; + /** @var \Ibexa\Core\MVC\Symfony\View\CustomLocationControllerChecker&\PHPUnit\Framework\MockObject\Stub */ + protected \PHPUnit\Framework\MockObject\Stub $controllerChecker; /** @var \Psr\Log\LoggerInterface&\PHPUnit\Framework\MockObject\MockObject */ private LoggerInterface $logger; @@ -66,7 +66,7 @@ protected function setUp(): void $this->previewHelper = $this->createMock(ContentPreviewHelper::class); $this->authorizationChecker = $this->createMock(AuthorizationCheckerInterface::class); $this->locationProvider = $this->createMock(PreviewLocationProvider::class); - $this->controllerChecker = $this->createMock(CustomLocationControllerChecker::class); + $this->controllerChecker = self::createStub(CustomLocationControllerChecker::class); $this->logger = $this->createMock(LoggerInterface::class); } @@ -115,9 +115,9 @@ public function testPreviewCanUserFail(): void $contentId = 123; $lang = 'eng-GB'; $versionNo = 3; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); - $location = $this->createMock(Location::class); + $location = self::createStub(Location::class); $this->locationProvider ->method('loadMainLocationByContent') ->with($content) @@ -142,12 +142,12 @@ public function testPreviewWithLogMessage(): void $contentId = 123; $lang = 'eng-GB'; $versionNo = 3; - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $location = $this->createMock(Location::class); $location->method('__get')->with('id')->willReturn('42'); - $siteAccess = $this->createMock(SiteAccess::class); + $siteAccess = self::createStub(SiteAccess::class); $this->locationProvider ->method('loadMainLocationByContent') ->with($content) @@ -224,10 +224,9 @@ public static function getDataForTestPreview(): iterable } /** - * @dataProvider getDataForTestPreview - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception */ + #[DataProvider('getDataForTestPreview')] public function testPreview( ?SiteAccess $previewSiteAccess, int $contentId, @@ -236,7 +235,7 @@ public function testPreview( ?int $locationId, ?string $viewType = null ): void { - $content = $this->createMock(Content::class); + $content = self::createStub(Content::class); $location = $this->getMockBuilder(Location::class) ->setConstructorArgs([['id' => $locationId ?? 456]]) ->getMockForAbstractClass(); @@ -333,10 +332,17 @@ private function configurePreviewHelper( SiteAccess $originalSiteAccess, ?SiteAccess $previewSiteAccess = null ): void { + $matcher = self::exactly(2); $this->previewHelper - ->expects(self::exactly(2)) - ->method('setPreviewActive') - ->withConsecutive([true], [false]) + ->expects($matcher) + ->method('setPreviewActive')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertTrue($parameters[0]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertFalse($parameters[0]); + } + }) ; $this->previewHelper diff --git a/tests/lib/MVC/Symfony/Controller/ControllerTest.php b/tests/lib/MVC/Symfony/Controller/ControllerTest.php index 35b001520c..9cc589960f 100644 --- a/tests/lib/MVC/Symfony/Controller/ControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/ControllerTest.php @@ -8,16 +8,16 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Controller; use Ibexa\Core\MVC\Symfony\Controller\Controller; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; use Twig\Environment; /** - * @covers \Ibexa\Core\MVC\Symfony\Controller\Controller::render - * * @mvc */ +#[CoversMethod(Controller::class, 'render')] class ControllerTest extends TestCase { /** @var \Ibexa\Core\MVC\Symfony\Controller\Controller */ diff --git a/tests/lib/MVC/Symfony/Controller/QueryRenderControllerTest.php b/tests/lib/MVC/Symfony/Controller/QueryRenderControllerTest.php index 1343336d1c..2fbabe346c 100644 --- a/tests/lib/MVC/Symfony/Controller/QueryRenderControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/QueryRenderControllerTest.php @@ -15,17 +15,17 @@ use Ibexa\Core\Pagination\Pagerfanta\Pagerfanta; use Ibexa\Core\Pagination\Pagerfanta\SearchResultAdapter; use Ibexa\Core\Query\QueryFactoryInterface; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; /** - * @covers \Ibexa\Core\MVC\Symfony\Controller\QueryRenderController - * * @phpstan-import-type TOptionsArray from \Ibexa\Core\MVC\Symfony\Controller\QueryRenderController * * @template TSearchHitValueObject of \Ibexa\Contracts\Core\Repository\Values\ValueObject */ +#[CoversClass(QueryRenderController::class)] final class QueryRenderControllerTest extends TestCase { private const int EXAMPLE_CURRENT_PAGE = 3; diff --git a/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php b/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php index 9732352854..b3d23488c5 100644 --- a/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php +++ b/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php @@ -72,7 +72,7 @@ private function getContentViewMockSubscriber(): ContentViewTwigVariablesSubscri $this->getRegistry([ $this->getProvider('test_provider'), ]), - $this->createMock(ConfigResolverInterface::class) + self::createStub(ConfigResolverInterface::class) ); } diff --git a/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php b/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php index 04e776f1cc..cbc606407e 100644 --- a/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php +++ b/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php @@ -26,6 +26,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; use Ibexa\Core\MVC\Symfony\SiteAccessGroup; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; @@ -40,9 +41,7 @@ use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\SerializerInterface; -/** - * @covers \Ibexa\Core\MVC\Symfony\EventListener\SiteAccessMatchListener - */ +#[CoversClass(SiteAccessMatchListener::class)] final class SiteAccessMatchListenerTest extends TestCase { /** @var \PHPUnit\Framework\MockObject\MockObject&\Ibexa\Core\MVC\Symfony\SiteAccess\Router */ @@ -248,7 +247,7 @@ private function assertRequestHasSiteAccess( ): void { $originalRequest ??= $request; $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); @@ -288,7 +287,7 @@ private function assertRequestHasSiteAccess( private function dispatchRequestEvent(Request $request, SiteAccess $siteAccess): void { $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); diff --git a/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php b/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php index fc56def369..4e43bf17ac 100644 --- a/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php +++ b/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php @@ -12,6 +12,8 @@ use Ibexa\Core\MVC\Symfony\EventListener\SiteAccessRestoreListener; use Ibexa\Core\MVC\Symfony\MVCEvents; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; @@ -20,13 +22,11 @@ use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\HttpKernel\KernelEvents; -/** - * @covers \Ibexa\Core\MVC\Symfony\EventListener\SiteAccessRestoreListener - */ +#[CoversClass(SiteAccessRestoreListener::class)] final class SiteAccessRestoreListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject&\Symfony\Component\HttpKernel\HttpKernelInterface */ - private HttpKernelInterface $kernel; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ + private \PHPUnit\Framework\MockObject\Stub $kernel; /** @var \PHPUnit\Framework\MockObject\MockObject&\Symfony\Component\EventDispatcher\EventDispatcherInterface */ private EventDispatcherInterface $eventDispatcher; @@ -38,7 +38,7 @@ final class SiteAccessRestoreListenerTest extends TestCase protected function setUp(): void { parent::setUp(); - $this->kernel = $this->createMock(HttpKernelInterface::class); + $this->kernel = self::createStub(HttpKernelInterface::class); $this->eventDispatcher = $this->createMock(EventDispatcherInterface::class); $this->requestStack = new RequestStack(); $this->listener = new SiteAccessRestoreListener( @@ -84,10 +84,9 @@ static function (PostSiteAccessMatchEvent $event) use ($parentSiteAccess, $paren } /** - * @dataProvider provideNoDispatchCases - * * @param \Symfony\Component\HttpFoundation\Request[] $requests */ + #[DataProvider('provideNoDispatchCases')] public function testNoDispatch(array $requests, int $requestType): void { $finishingRequest = null; diff --git a/tests/lib/MVC/Symfony/FieldType/BinaryBase/ContentDownloadUrlGeneratorTest.php b/tests/lib/MVC/Symfony/FieldType/BinaryBase/ContentDownloadUrlGeneratorTest.php index 8d1949b3b4..4961e1274b 100644 --- a/tests/lib/MVC/Symfony/FieldType/BinaryBase/ContentDownloadUrlGeneratorTest.php +++ b/tests/lib/MVC/Symfony/FieldType/BinaryBase/ContentDownloadUrlGeneratorTest.php @@ -13,13 +13,12 @@ use Ibexa\Contracts\Core\Persistence\Content\FieldValue; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Core\MVC\Symfony\FieldType\BinaryBase\ContentDownloadUrlGenerator; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\Routing\RouterInterface; -/** - * @covers \Ibexa\Core\MVC\Symfony\FieldType\BinaryBase\ContentDownloadUrlGenerator - */ +#[CoversClass(ContentDownloadUrlGenerator::class)] final class ContentDownloadUrlGeneratorTest extends TestCase { private const string ROUTE = 'ibexa.content.download.field_id.filename'; diff --git a/tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php index 74171e7119..95ab0ba8d7 100644 --- a/tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php @@ -17,6 +17,7 @@ use Ibexa\Core\FieldType\ImageAsset\Value as ImageAssetValue; use Ibexa\Core\MVC\Symfony\FieldType\ImageAsset\ParameterProvider; use Ibexa\Core\Repository\SiteAccessAware\Repository; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ParameterProviderTest extends TestCase @@ -57,7 +58,7 @@ protected function setUp(): void $this->parameterProvider = new ParameterProvider($this->repository); } - public function dataProviderForTestGetViewParameters(): array + public static function dataProviderForTestGetViewParameters(): array { return [ [ContentInfo::STATUS_PUBLISHED, ['available' => true]], @@ -65,9 +66,7 @@ public function dataProviderForTestGetViewParameters(): array ]; } - /** - * @dataProvider dataProviderForTestGetViewParameters - */ + #[DataProvider('dataProviderForTestGetViewParameters')] public function testGetViewParameters($status, array $expected): void { $destinationContentId = 1; @@ -112,7 +111,7 @@ public function testGetViewParametersHandleNotFoundException(): void ->expects(self::once()) ->method('sudo') ->with($closure) - ->willThrowException($this->createMock(NotFoundException::class)); + ->willThrowException(self::createStub(NotFoundException::class)); $actual = $this->parameterProvider->getViewParameters( $this->createField($destinationContentId) @@ -131,26 +130,28 @@ public function testGetViewParametersHandleUnauthorizedAccess(): void ->method('isEmptyValue') ->willReturn(false); - $contentInfo = $this->createMock(ContentInfo::class); + $contentInfo = self::createStub(ContentInfo::class); $this->repository ->method('sudo') ->willReturn($contentInfo) ; + $matcher = self::exactly(2); $this->permissionsResolver - ->expects(self::at(0)) + ->expects($matcher) ->method('canUser') - ->with('content', 'read', $contentInfo) - ->willReturn(false) - ; - - $this->permissionsResolver - ->expects(self::at(1)) - ->method('canUser') - ->with('content', 'view_embed', $contentInfo) - ->willReturn(false) - ; + ->willReturnCallback(static function (string $module, string $function, object $object, array $targets = []) use ($matcher, $contentInfo): bool { + self::assertSame('content', $module); + self::assertSame($contentInfo, $object); + if ($matcher->numberOfInvocations() === 1) { + self::assertSame('read', $function); + } else { + self::assertSame('view_embed', $function); + } + + return false; + }); $actual = $this->parameterProvider->getViewParameters( $this->createField($destinationContentId) @@ -169,7 +170,7 @@ public function testGetViewParametersHandleEmptyValue(): void ->method('isEmptyValue') ->willReturn(true); - $contentInfo = $this->createMock(ContentInfo::class); + $contentInfo = self::createStub(ContentInfo::class); $this->repository ->method('sudo') diff --git a/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php index 5000f84fc3..284c6a1470 100644 --- a/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php @@ -14,11 +14,12 @@ use Ibexa\Core\Base\Exceptions\UnauthorizedException; use Ibexa\Core\FieldType\Relation\Value; use Ibexa\Core\MVC\Symfony\FieldType\Relation\ParameterProvider; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ParameterProviderTest extends TestCase { - public function providerForTestGetViewParameters() + public static function providerForTestGetViewParameters() { return [ [ContentInfo::STATUS_DRAFT, ['available' => true]], @@ -27,9 +28,7 @@ public function providerForTestGetViewParameters() ]; } - /** - * @dataProvider providerForTestGetViewParameters - */ + #[DataProvider('providerForTestGetViewParameters')] public function testGetViewParameters($status, array $expected) { $contentServiceMock = $this->createMock(ContentService::class); diff --git a/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php index 7a5aa2df1b..bdcc46a9be 100644 --- a/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php @@ -12,11 +12,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\FieldType\RelationList\Value; use Ibexa\Core\MVC\Symfony\FieldType\RelationList\ParameterProvider; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class ParameterProviderTest extends TestCase { - public function providerForTestGetViewParameters() + public static function providerForTestGetViewParameters() { return [ [[123, 456, 789], ['available' => [123 => true, 456 => true, 789 => false]]], @@ -26,9 +27,7 @@ public function providerForTestGetViewParameters() ]; } - /** - * @dataProvider providerForTestGetViewParameters - */ + #[DataProvider('providerForTestGetViewParameters')] public function testGetViewParameters(array $desinationContentIds, array $expected) { $contentServiceMock = $this->createMock(ContentService::class); diff --git a/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php index 46214e9b71..258229adf6 100644 --- a/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php @@ -25,15 +25,15 @@ class ParameterProviderTest extends TestCase /** @var \Ibexa\Contracts\Core\Repository\UserService|\PHPUnit\Framework\MockObject\MockObject */ private $userService; - /** @var \Ibexa\Contracts\Core\Repository\Values\User\User|\PHPUnit\Framework\MockObject\MockObject */ - private $user; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Contracts\Core\Repository\Values\User\User */ + private \PHPUnit\Framework\MockObject\Stub $user; /** @var \Ibexa\Core\MVC\Symfony\FieldType\User\ParameterProvider */ private $parameterProvider; protected function setUp(): void { - $this->user = $this->createMock(User::class); + $this->user = self::createStub(User::class); $this->userService = $this->createMock(UserService::class); $this->userService diff --git a/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php index b9946d8788..5173957f09 100644 --- a/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProvider\LocaleParameterProvider; use Ibexa\Core\MVC\Symfony\Locale\LocaleConverterInterface; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\Request; @@ -17,7 +18,7 @@ class LocaleParameterProviderTest extends TestCase { - public function providerForTestGetViewParameters() + public static function providerForTestGetViewParameters() { return [ [true, 'fr_FR'], @@ -25,9 +26,7 @@ public function providerForTestGetViewParameters() ]; } - /** - * @dataProvider providerForTestGetViewParameters - */ + #[DataProvider('providerForTestGetViewParameters')] public function testGetViewParameters($hasRequestLocale, $expectedLocale) { $field = new Field(['languageCode' => 'cro-HR']); diff --git a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php index cfe023e1e9..dc3fc046a7 100644 --- a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php +++ b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php @@ -9,11 +9,10 @@ use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderInterface; use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderRegistry; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderRegistry::setParameterProvider - */ +#[CoversMethod(ParameterProviderRegistry::class, 'setParameterProvider')] class ParameterProviderRegistryTest extends TestCase { public function testSetHasParameterProvider() @@ -21,7 +20,7 @@ public function testSetHasParameterProvider() $registry = new ParameterProviderRegistry(); self::assertFalse($registry->hasParameterProvider('foo')); $registry->setParameterProvider( - $this->createMock(ParameterProviderInterface::class), + self::createStub(ParameterProviderInterface::class), 'foo' ); self::assertTrue($registry->hasParameterProvider('foo')); @@ -37,7 +36,7 @@ public function testGetParameterProviderFail() public function testGetParameterProvider() { - $provider = $this->createMock(ParameterProviderInterface::class); + $provider = self::createStub(ParameterProviderInterface::class); $registry = new ParameterProviderRegistry(); $registry->setParameterProvider($provider, 'foo'); self::assertSame($provider, $registry->getParameterProvider('foo')); diff --git a/tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php b/tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php index cee827aa1b..89dc87d6ba 100644 --- a/tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php +++ b/tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Locale; use Ibexa\Core\MVC\Symfony\Locale\LocaleConverter; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; -/** - * @covers \Ibexa\Core\MVC\Symfony\Locale\LocaleConverter - */ +#[CoversClass(LocaleConverter::class)] final class LocaleConverterTest extends TestCase { private LocaleConverter $localeConverter; @@ -48,9 +48,7 @@ protected function setUp(): void $this->localeConverter = new LocaleConverter($this->conversionMap, $this->logger); } - /** - * @dataProvider convertToPOSIXProvider - */ + #[DataProvider('convertToPOSIXProvider')] public function testConvertToPOSIX(string $repositoryLocale, ?string $expected): void { if ($expected === null) { @@ -62,7 +60,7 @@ public function testConvertToPOSIX(string $repositoryLocale, ?string $expected): self::assertSame($expected, $this->localeConverter->convertToPOSIX($repositoryLocale)); } - public function convertToPOSIXProvider(): array + public static function convertToPOSIXProvider(): array { return [ ['eng-GB', 'en_GB'], @@ -74,9 +72,7 @@ public function convertToPOSIXProvider(): array ]; } - /** - * @dataProvider convertToRepositoryProvider - */ + #[DataProvider('convertToRepositoryProvider')] public function testConvertToRepository(string $posixLocale, ?string $expected): void { if ($expected === null) { @@ -96,7 +92,7 @@ public function testConvertToRepository(string $posixLocale, ?string $expected): * } * } */ - public function convertToRepositoryProvider(): array + public static function convertToRepositoryProvider(): array { return [ ['en_GB', 'eng-GB'], diff --git a/tests/lib/MVC/Symfony/Locale/UserLanguagePreferenceProviderTest.php b/tests/lib/MVC/Symfony/Locale/UserLanguagePreferenceProviderTest.php index c3373aea71..59dcdc1769 100644 --- a/tests/lib/MVC/Symfony/Locale/UserLanguagePreferenceProviderTest.php +++ b/tests/lib/MVC/Symfony/Locale/UserLanguagePreferenceProviderTest.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreference; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\MVC\Symfony\Locale\UserLanguagePreferenceProvider; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\HeaderBag; @@ -46,11 +47,10 @@ protected function setUp(): void } /** - * @dataProvider providerForTestGetPreferredLanguages - * * @param list $userLanguages * @param list $expectedEzLanguageCodes */ + #[DataProvider('providerForTestGetPreferredLanguages')] public function testGetPreferredLanguagesWithoutUserLanguage(array $userLanguages, array $expectedEzLanguageCodes): void { $request = new Request(); @@ -85,11 +85,10 @@ public function testGetPreferredLanguagesWithoutUserLanguage(array $userLanguage } /** - * @dataProvider providerForTestGetPreferredLanguagesWithUserPreferredLanguage - * * @param list $userLanguages * @param list $expectedEzLanguageCodes */ + #[DataProvider('providerForTestGetPreferredLanguagesWithUserPreferredLanguage')] public function testGetPreferredLanguagesWithUserPreferredLanguage( array $userLanguages, array $expectedEzLanguageCodes @@ -164,7 +163,7 @@ public function testGetPreferredLocalesExcludesAcceptLanguageWildcard(): void * * @return array, list}> */ - public function providerForTestGetPreferredLanguages(): array + public static function providerForTestGetPreferredLanguages(): array { return [ [[], ['eng-GB', 'eng-US']], @@ -180,7 +179,7 @@ public function providerForTestGetPreferredLanguages(): array * * @return array, list}> */ - public function providerForTestGetPreferredLanguagesWithUserPreferredLanguage(): array + public static function providerForTestGetPreferredLanguagesWithUserPreferredLanguage(): array { return [ [[], ['nor-NO', 'eng-GB', 'eng-US']], diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php index 28d47fda8c..127c0c9497 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php @@ -44,7 +44,7 @@ protected function getPartiallyMockedViewProvider(array $matchingConfig = []) $matchingConfig, ] ) - ->setMethods(['getMatcher']) + ->onlyMethods(['getMatcher']) ->getMock(); } @@ -58,11 +58,11 @@ protected function getRepositoryMock() return $this ->getMockBuilder($repositoryClass) ->disableOriginalConstructor() - ->setMethods( - array_diff( + ->onlyMethods( + array_values(array_diff( get_class_methods($repositoryClass), ['sudo'] - ) + )) ) ->getMock(); } @@ -103,12 +103,12 @@ protected function getPermissionResolverMock() return $this ->getMockBuilder(PermissionResolver::class) - ->setMethods(null) + ->onlyMethods([]) ->setConstructorArgs( [ - $this->createMock(RoleDomainMapper::class), - $this->createMock(LimitationService::class), - $this->createMock(SPIUserHandler::class), + self::createStub(RoleDomainMapper::class), + self::createStub(LimitationService::class), + self::createStub(SPIUserHandler::class), $configResolverMock, [], ] diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php index d44193fe72..7497410806 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php @@ -10,8 +10,16 @@ use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\Location; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth as DepthMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(DepthMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(DepthMatcher::class, 'matchContentInfo')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] class DepthTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth */ @@ -24,71 +32,60 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $depth, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['depth' => $depth]))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 1, - $this->getLocationMock(['depth' => 1]), + 1, true, ], [ 1, - $this->getLocationMock(['depth' => 2]), + 2, false, ], [ [1, 3], - $this->getLocationMock(['depth' => 2]), + 2, false, ], [ [1, 3], - $this->getLocationMock(['depth' => 3]), + 3, true, ], [ [1, 3], - $this->getLocationMock(['depth' => 0]), + 0, false, ], [ [0, 1], - $this->getLocationMock(['depth' => 0]), + 0, true, ], ]; } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $depth, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForDepth($depth)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, @@ -96,27 +93,27 @@ public function testMatchContentInfo($matchingConfig, Repository $repository, $e ); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 1, - $this->generateRepositoryMockForDepth(1), + 1, true, ], [ 1, - $this->generateRepositoryMockForDepth(2), + 2, false, ], [ [1, 3], - $this->generateRepositoryMockForDepth(2), + 2, false, ], [ [1, 3], - $this->generateRepositoryMockForDepth(3), + 3, true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php index 67c66b6a3f..1d08075124 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php @@ -7,11 +7,16 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\Id; -use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content as ContentIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ContentIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(ContentIdMatcher::class, 'matchContentInfo')] class ContentTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content */ @@ -24,42 +29,37 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $contentId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForContentId($contentId))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 123, - $this->generateLocationForContentId(123), + 123, true, ], [ 123, - $this->generateLocationForContentId(456), + 456, false, ], [ [123, 789], - $this->generateLocationForContentId(456), + 456, false, ], [ [123, 789], - $this->generateLocationForContentId(789), + 789, true, ], ]; @@ -88,42 +88,37 @@ private function generateLocationForContentId($contentId) } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, ContentInfo $contentInfo, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $contentId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchContentInfo($contentInfo)); + self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['id' => $contentId]))); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 123, - $this->getContentInfoMock(['id' => 123]), + 123, true, ], [ 123, - $this->getContentInfoMock(['id' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['id' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['id' => 789]), + 789, true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php index 3633ada542..05274ce67b 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php @@ -12,8 +12,14 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentTypeGroup; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup as ContentTypeGroupIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ContentTypeGroupIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(ContentTypeGroupIdMatcher::class, 'matchContentInfo')] class ContentTypeGroupTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup */ @@ -26,18 +32,13 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $contentTypeGroupId, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeGroupId($contentTypeGroupId)); $this->matcher->setMatchingConfig($matchingConfig); $result = $this->matcher->matchLocation($this->generateLocationMock()); @@ -48,31 +49,31 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchLocationProvider() + public static function matchLocationProvider() { $data = []; $data[] = [ 123, - $this->generateRepositoryMockForContentTypeGroupId(123), + 123, true, ]; $data[] = [ 123, - $this->generateRepositoryMockForContentTypeGroupId(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateRepositoryMockForContentTypeGroupId(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateRepositoryMockForContentTypeGroupId(789), + 789, true, ]; @@ -100,18 +101,13 @@ private function generateLocationMock() } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $contentTypeGroupId, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeGroupId($contentTypeGroupId)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( @@ -120,31 +116,31 @@ public function testMatchContentInfo($matchingConfig, Repository $repository, $e ); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { $data = []; $data[] = [ 123, - $this->generateRepositoryMockForContentTypeGroupId(123), + 123, true, ]; $data[] = [ 123, - $this->generateRepositoryMockForContentTypeGroupId(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateRepositoryMockForContentTypeGroupId(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateRepositoryMockForContentTypeGroupId(789), + 789, true, ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php index 26ad0c4e99..8f205e8f65 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php @@ -10,8 +10,14 @@ use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType as ContentTypeIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ContentTypeIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(ContentTypeIdMatcher::class, 'matchContentInfo')] class ContentTypeTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType */ @@ -24,46 +30,41 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForContentType($contentTypeId))); } - public function matchLocationProvider() + public static function matchLocationProvider() { $data = []; $data[] = [ 123, - $this->generateLocationForContentType(123), + 123, true, ]; $data[] = [ 123, - $this->generateLocationForContentType(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateLocationForContentType(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateLocationForContentType(789), + 789, true, ]; @@ -105,46 +106,41 @@ private function generateContentInfoForContentType($contentTypeId) } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, ContentInfo $contentInfo, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchContentInfo($contentInfo)); + self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->generateContentInfoForContentType($contentTypeId))); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { $data = []; $data[] = [ 123, - $this->generateContentInfoForContentType(123), + 123, true, ]; $data[] = [ 123, - $this->generateContentInfoForContentType(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateContentInfoForContentType(456), + 456, false, ]; $data[] = [ [123, 789], - $this->generateContentInfoForContentType(789), + 789, true, ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php index bb3b90778d..947be35b9d 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php @@ -7,11 +7,15 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\Id; -use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location as LocationIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(LocationIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(LocationIdMatcher::class, 'matchContentInfo')] class LocationTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location */ @@ -24,84 +28,74 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $id, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['id' => $id]))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 123, - $this->getLocationMock(['id' => 123]), + 123, true, ], [ 123, - $this->getLocationMock(['id' => 456]), + 456, false, ], [ [123, 789], - $this->getLocationMock(['id' => 456]), + 456, false, ], [ [123, 789], - $this->getLocationMock(['id' => 789]), + 789, true, ], ]; } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, ContentInfo $contentInfo, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $mainLocationId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchContentInfo($contentInfo)); + self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['mainLocationId' => $mainLocationId]))); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 123, - $this->getContentInfoMock(['mainLocationId' => 123]), + 123, true, ], [ 123, - $this->getContentInfoMock(['mainLocationId' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['mainLocationId' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['mainLocationId' => 789]), + 789, true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php index 6371b7a2fe..fdd9167f81 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php @@ -9,9 +9,17 @@ use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentContentType as ParentContentTypeMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ParentContentTypeMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversMethod(ParentContentTypeMatcher::class, 'matchContentInfo')] class ParentContentTypeTest extends BaseTestCase { private const EXAMPLE_LOCATION_ID = 54; @@ -77,19 +85,13 @@ private function generateRepositoryMockForContentTypeId($contentTypeId) } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeId($contentTypeId)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, @@ -97,46 +99,40 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 123, - $this->generateRepositoryMockForContentTypeId(123), + 123, true, ], [ 123, - $this->generateRepositoryMockForContentTypeId(456), + 456, false, ], [ [123, 789], - $this->generateRepositoryMockForContentTypeId(456), + 456, false, ], [ [123, 789], - $this->generateRepositoryMockForContentTypeId(789), + 789, true, ], ]; } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentContentType::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeId($contentTypeId)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php index 8ec598e0cd..1a75225e38 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php @@ -10,9 +10,17 @@ use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\Location; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation as ParentLocationIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ParentLocationIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(ParentLocationIdMatcher::class, 'matchContentInfo')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] class ParentLocationTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation */ @@ -25,61 +33,50 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $parentLocationId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['parentLocationId' => $parentLocationId]))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 123, - $this->getLocationMock(['parentLocationId' => 123]), + 123, true, ], [ 123, - $this->getLocationMock(['parentLocationId' => 456]), + 456, false, ], [ [123, 789], - $this->getLocationMock(['parentLocationId' => 456]), + 456, false, ], [ [123, 789], - $this->getLocationMock(['parentLocationId' => 789]), + 789, true, ], ]; } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $parentLocationId, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForParentLocationId($parentLocationId)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, @@ -87,27 +84,27 @@ public function testMatchContentInfo($matchingConfig, Repository $repository, $e ); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 123, - $this->generateRepositoryMockForParentLocationId(123), + 123, true, ], [ 123, - $this->generateRepositoryMockForParentLocationId(456), + 456, false, ], [ [123, 789], - $this->generateRepositoryMockForParentLocationId(456), + 456, false, ], [ [123, 789], - $this->generateRepositoryMockForParentLocationId(789), + 789, true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php index 213f961dc6..09d1e0628c 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php @@ -7,11 +7,15 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\Id; -use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote as RemoteIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(RemoteIdMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(RemoteIdMatcher::class, 'matchContentInfo')] class RemoteTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote */ @@ -24,84 +28,74 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, string $remoteId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['remoteId' => $remoteId]))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 'foo', - $this->getLocationMock(['remoteId' => 'foo']), + 'foo', true, ], [ 'foo', - $this->getLocationMock(['remoteId' => 'bar']), + 'bar', false, ], [ ['foo', 'baz'], - $this->getLocationMock(['remoteId' => 'bar']), + 'bar', false, ], [ ['foo', 'baz'], - $this->getLocationMock(['remoteId' => 'baz']), + 'baz', true, ], ]; } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, ContentInfo $contentInfo, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, string $remoteId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchContentInfo($contentInfo)); + self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['remoteId' => $remoteId]))); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 'foo', - $this->getContentInfoMock(['remoteId' => 'foo']), + 'foo', true, ], [ 'foo', - $this->getContentInfoMock(['remoteId' => 'bar']), + 'bar', false, ], [ ['foo', 'baz'], - $this->getContentInfoMock(['remoteId' => 'bar']), + 'bar', false, ], [ ['foo', 'baz'], - $this->getContentInfoMock(['remoteId' => 'baz']), + 'baz', true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php index a15821a9d2..06cb910c1c 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php @@ -7,11 +7,15 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\Id; -use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Section as SectionIdMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(SectionIdMatcher::class, 'matchContentInfo')] class SectionTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Section */ @@ -24,42 +28,37 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Location $location, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, int $sectionId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchLocation($location)); + self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForSectionId($sectionId))); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 123, - $this->generateLocationForSectionId(123), + 123, true, ], [ 123, - $this->generateLocationForSectionId(456), + 456, false, ], [ [123, 789], - $this->generateLocationForSectionId(456), + 456, false, ], [ [123, 789], - $this->generateLocationForSectionId(789), + 789, true, ], ]; @@ -88,42 +87,37 @@ private function generateLocationForSectionId($sectionId) } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Section::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param int|int[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, ContentInfo $contentInfo, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, int $sectionId, $expectedResult) { $this->matcher->setMatchingConfig($matchingConfig); - self::assertSame($expectedResult, $this->matcher->matchContentInfo($contentInfo)); + self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['sectionId' => $sectionId]))); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { return [ [ 123, - $this->getContentInfoMock(['sectionId' => 123]), + 123, true, ], [ 123, - $this->getContentInfoMock(['sectionId' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['sectionId' => 456]), + 456, false, ], [ [123, 789], - $this->getContentInfoMock(['sectionId' => 789]), + 789, true, ], ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php index fb676f4f1e..f8c73a1fca 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php @@ -11,8 +11,13 @@ use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType as ContentTypeIdentifierMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ContentTypeIdentifierMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] class ContentTypeTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType */ @@ -25,18 +30,13 @@ protected function setUp(): void } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( @@ -45,31 +45,31 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchLocationProvider() + public static function matchLocationProvider() { $data = []; $data[] = [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('foo'), + 'foo', true, ]; $data[] = [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ]; $data[] = [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ]; $data[] = [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('baz'), + 'baz', true, ]; @@ -97,18 +97,13 @@ private function generateLocationMock() } /** - * @dataProvider matchContentInfoProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchContentInfoProvider')] + public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( @@ -119,31 +114,31 @@ public function testMatchContentInfo($matchingConfig, Repository $repository, $e ); } - public function matchContentInfoProvider() + public static function matchContentInfoProvider() { $data = []; $data[] = [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('foo'), + 'foo', true, ]; $data[] = [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ]; $data[] = [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ]; $data[] = [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('baz'), + 'baz', true, ]; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php index b4f58a6ac1..9d65ea3b9f 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php @@ -11,9 +11,16 @@ use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ParentContentType as ParentContentTypeMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(ParentContentTypeMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] class ParentContentTypeTest extends BaseTestCase { private const EXAMPLE_LOCATION_ID = 54; @@ -98,19 +105,13 @@ private function generateRepositoryMockForContentTypeIdentifier($contentTypeIden } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ParentContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, @@ -120,46 +121,40 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('foo'), + 'foo', true, ], [ 'foo', - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ], [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('bar'), + 'bar', false, ], [ ['foo', 'baz'], - $this->generateRepositoryMockForContentTypeIdentifier('baz'), + 'baz', true, ], ]; } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ParentContentType::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php index 6eb7bc68a7..75ce2c4529 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php @@ -11,9 +11,16 @@ use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\SectionService; use Ibexa\Contracts\Core\Repository\Values\Content\Section; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section as SectionIdentifierMatcher; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(SectionIdentifierMatcher::class, 'matchLocation')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] class SectionTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section */ @@ -64,19 +71,13 @@ private function generateRepositoryMockForSectionIdentifier($sectionIdentifier) } /** - * @dataProvider matchSectionProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchSectionProvider')] + public function testMatchLocation($matchingConfig, string $sectionIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForSectionIdentifier($sectionIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); $location = $this->getLocationMock(); @@ -95,46 +96,40 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchSectionProvider() + public static function matchSectionProvider() { return [ [ 'foo', - $this->generateRepositoryMockForSectionIdentifier('foo'), + 'foo', true, ], [ 'foo', - $this->generateRepositoryMockForSectionIdentifier('bar'), + 'bar', false, ], [ ['foo', 'baz'], - $this->generateRepositoryMockForSectionIdentifier('bar'), + 'bar', false, ], [ ['foo', 'baz'], - $this->generateRepositoryMockForSectionIdentifier('baz'), + 'baz', true, ], ]; } /** - * @dataProvider matchSectionProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository * @param bool $expectedResult */ - public function testMatchContentInfo($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchSectionProvider')] + public function testMatchContentInfo($matchingConfig, string $sectionIdentifier, $expectedResult) { - $this->matcher->setRepository($repository); + $this->matcher->setRepository($this->generateRepositoryMockForSectionIdentifier($sectionIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( $expectedResult, diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/IsPreviewTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/IsPreviewTest.php index f77b0447de..2097cc859b 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/IsPreviewTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/IsPreviewTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\IsPreview; use Ibexa\Core\MVC\Symfony\View\ContentView; use Ibexa\Core\MVC\Symfony\View\View; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\IsPreview - */ +#[CoversClass(IsPreview::class)] final class IsPreviewTest extends TestCase { private IsPreview $isPreviewMatcher; @@ -76,10 +76,9 @@ public static function getDataForTestMatch(): iterable } /** - * @dataProvider getDataForTestMatch - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('getDataForTestMatch')] public function testMatch(View $view, bool $matchConfig, bool $expectedIsPreview): void { $this->isPreviewMatcher->setMatchingConfig($matchConfig); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php index 5ae31433e3..5f711dce65 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php @@ -7,16 +7,18 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased; +use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(MultipleValued::class, 'getValues')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversMethod(MultipleValued::class, 'getRepository')] class MultipleValuedTest extends BaseTestCase { - /** - * @dataProvider matchingConfigProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::getValues - */ + #[DataProvider('matchingConfigProvider')] public function testSetMatchingConfig($matchingConfig) { $matcher = $this->getMultipleValuedMatcherMock(); @@ -35,7 +37,7 @@ public function testSetMatchingConfig($matchingConfig) * * @return array */ - public function matchingConfigProvider() + public static function matchingConfigProvider() { return [ [ @@ -47,10 +49,6 @@ public function matchingConfigProvider() ]; } - /** - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::getRepository - */ public function testInjectRepository() { $matcher = $this->getMultipleValuedMatcherMock(); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php index 0dbad8ece1..2536205766 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php @@ -11,8 +11,17 @@ use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; +use Ibexa\Core\MVC\RepositoryAware; +use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias as UrlAliasMatcher; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +#[CoversMethod(UrlAliasMatcher::class, 'setMatchingConfig')] +#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversMethod(UrlAliasMatcher::class, 'matchLocation')] +#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversMethod(UrlAliasMatcher::class, 'matchContentInfo')] class UrlAliasTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias */ @@ -25,14 +34,10 @@ protected function setUp(): void } /** - * @dataProvider setMatchingConfigProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias::setMatchingConfig - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued::setMatchingConfig - * * @param string $matchingConfig * @param string[] $expectedValues */ + #[DataProvider('setMatchingConfigProvider')] public function testSetMatchingConfig($matchingConfig, $expectedValues) { $this->matcher->setMatchingConfig($matchingConfig); @@ -42,7 +47,7 @@ public function testSetMatchingConfig($matchingConfig, $expectedValues) ); } - public function setMatchingConfigProvider() + public static function setMatchingConfigProvider() { return [ ['/foo/bar/', ['foo/bar']], @@ -65,7 +70,7 @@ private function generateRepositoryMockForUrlAlias($path) // First an url alias that will never match, then the right url alias. // This ensures to test even if the location has several url aliases. $urlAliasList = [ - $this->createMock(URLAlias::class), + self::createStub(URLAlias::class), $this ->getMockBuilder(URLAlias::class) ->setConstructorArgs([['path' => $path]]) @@ -73,20 +78,20 @@ private function generateRepositoryMockForUrlAlias($path) ]; $urlAliasServiceMock = $this->createMock(URLAliasService::class); - $urlAliasServiceMock->expects(self::at(0)) + $matcher = self::exactly(2); + $urlAliasServiceMock->expects($matcher) ->method('listLocationAliases') - ->with( - self::isInstanceOf(Location::class), - true - ) - ->will(self::returnValue([])); - $urlAliasServiceMock->expects(self::at(1)) - ->method('listLocationAliases') - ->with( - self::isInstanceOf(Location::class), - false - ) - ->will(self::returnValue($urlAliasList)); + ->willReturnCallback(static function (Location $location, bool $custom = true, ?string $languageCode = null, ?bool $showAllTranslations = null, ?array $prioritizedLanguages = null) use ($matcher, $urlAliasList): array { + if ($matcher->numberOfInvocations() === 1) { + self::assertTrue($custom); + + return []; + } + + self::assertFalse($custom); + + return $urlAliasList; + }); $repository = $this->getRepositoryMock(); $repository @@ -98,18 +103,14 @@ private function generateRepositoryMockForUrlAlias($path) } /** - * @dataProvider matchLocationProvider - * - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias::matchLocation - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias::setMatchingConfig - * @covers \Ibexa\Core\MVC\RepositoryAware::setRepository - * * @param string|string[] $matchingConfig - * @param \Ibexa\Contracts\Core\Repository\Repository $repository + * @param string $path * @param bool $expectedResult */ - public function testMatchLocation($matchingConfig, Repository $repository, $expectedResult) + #[DataProvider('matchLocationProvider')] + public function testMatchLocation($matchingConfig, string $path, $expectedResult) { + $repository = $this->generateRepositoryMockForUrlAlias($path); $this->matcher->setRepository($repository); $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( @@ -118,41 +119,37 @@ public function testMatchLocation($matchingConfig, Repository $repository, $expe ); } - public function matchLocationProvider() + public static function matchLocationProvider() { return [ [ 'foo/url', - $this->generateRepositoryMockForUrlAlias('/foo/url'), + '/foo/url', true, ], [ '/foo/url', - $this->generateRepositoryMockForUrlAlias('/foo/url'), + '/foo/url', true, ], [ 'foo/url', - $this->generateRepositoryMockForUrlAlias('/bar/url'), + '/bar/url', false, ], [ ['foo/url', 'baz'], - $this->generateRepositoryMockForUrlAlias('/bar/url'), + '/bar/url', false, ], [ ['foo/url ', 'baz '], - $this->generateRepositoryMockForUrlAlias('/baz'), + '/baz', true, ], ]; } - /** - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias::matchContentInfo - * @covers \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias::setMatchingConfig - */ public function testMatchContentInfo() { $this->expectException(\RuntimeException::class); diff --git a/tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php b/tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php index 7779cfe891..2e26ca17be 100644 --- a/tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php +++ b/tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php @@ -11,6 +11,7 @@ use Ibexa\Core\MVC\Symfony\Matcher\ClassNameMatcherFactory; use Ibexa\Core\MVC\Symfony\Matcher\DynamicallyConfiguredMatcherFactoryDecorator; use Ibexa\Core\MVC\Symfony\View\ContentView; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -30,12 +31,10 @@ public function setUp(): void $this->configResolver = $configResolver; } - /** - * @dataProvider matchConfigProvider - */ + #[DataProvider('matchConfigProvider')] public function testMatch($parameterName, $namespace, $scope, $viewsConfiguration, $matchedConfig): void { - $view = $this->createMock(ContentView::class); + $view = self::createStub(ContentView::class); $this->configResolver->expects(self::atLeastOnce())->method('getParameter')->with( $parameterName, $namespace, @@ -54,7 +53,7 @@ public function testMatch($parameterName, $namespace, $scope, $viewsConfiguratio self::assertEquals($matchedConfig, $matcherFactory->match($view)); } - public function matchConfigProvider(): array + public static function matchConfigProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Routing/GeneratorTest.php b/tests/lib/MVC/Symfony/Routing/GeneratorTest.php index 51fc9a6c9e..72186a7963 100644 --- a/tests/lib/MVC/Symfony/Routing/GeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/GeneratorTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessRouterInterface; use Ibexa\Core\MVC\Symfony\SiteAccess\URILexer; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; @@ -38,7 +39,7 @@ protected function setUp(): void $this->generator->setLogger($this->logger); } - public function generateProvider() + public static function generateProvider() { return [ ['foo_bar', [], UrlGeneratorInterface::ABSOLUTE_PATH], @@ -53,9 +54,7 @@ public function generateProvider() ]; } - /** - * @dataProvider generateProvider - */ + #[DataProvider('generateProvider')] public function testSimpleGenerate($urlResource, array $parameters, $referenceType) { $matcher = $this->createMock(URILexer::class); @@ -86,9 +85,7 @@ public function testSimpleGenerate($urlResource, array $parameters, $referenceTy self::assertSame($fullUri, $this->generator->generate($urlResource, $parameters, $referenceType)); } - /** - * @dataProvider generateProvider - */ + #[DataProvider('generateProvider')] public function testGenerateWithSiteAccessNoReverseMatch($urlResource, array $parameters, $referenceType) { $matcher = $this->createMock(URILexer::class); diff --git a/tests/lib/MVC/Symfony/Routing/RequestContextFactoryTest.php b/tests/lib/MVC/Symfony/Routing/RequestContextFactoryTest.php index 85afc6c314..3beae2e976 100644 --- a/tests/lib/MVC/Symfony/Routing/RequestContextFactoryTest.php +++ b/tests/lib/MVC/Symfony/Routing/RequestContextFactoryTest.php @@ -10,17 +10,15 @@ use Ibexa\Core\MVC\Symfony\Routing\RequestContextFactory; use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Routing\RequestContext; -/** - * @covers \Ibexa\Core\MVC\Symfony\Routing\RequestContextFactory - */ +#[CoversClass(RequestContextFactory::class)] final class RequestContextFactoryTest extends TestCase { - /** - * @dataProvider getDataForTestGetContextBySimplifiedRequest - */ + #[DataProvider('getDataForTestGetContextBySimplifiedRequest')] public function testGetContextBySimplifiedRequest( RequestContext $requestContext, SimplifiedRequest $simplifiedRequest, diff --git a/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php b/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php index 318accc75c..2c9ee21bb1 100644 --- a/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\Routing\Generator\RouteReferenceGenerator; use Ibexa\Core\MVC\Symfony\Routing\RouteReference; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; @@ -78,9 +79,7 @@ public function testGenerateNullResourceAndPassedParams() self::assertSame($expectedParams, $reference->getParams()); } - /** - * @dataProvider generateGenerator - */ + #[DataProvider('generateGenerator')] public function testGenerate($resource, array $params) { $currentRouteName = 'my_route'; @@ -125,7 +124,7 @@ public function testGenerateNullResourceWithoutRoute() self::assertInstanceOf(RouteReference::class, $reference); } - public function generateGenerator() + public static function generateGenerator() { return [ ['my_route', ['hello' => 'world', 'isIt' => true]], diff --git a/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php b/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php index 0222afb723..1a55ad1674 100644 --- a/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php +++ b/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php @@ -8,19 +8,18 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Routing; use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest - */ +#[CoversClass(SimplifiedRequest::class)] class SimplifiedRequestTest extends TestCase { /** * @param string $url * @param \Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest $expectedRequest - * - * @dataProvider fromUrlProvider */ + #[DataProvider('fromUrlProvider')] public function testFromUrl($url, $expectedRequest) { self::assertEquals( @@ -49,7 +48,7 @@ public function testStrictGetters(): void self::assertSame(['param' => 'bar', 'param2' => 'bar2'], $request->getQueryParams()); } - public function fromUrlProvider() + public static function fromUrlProvider() { return [ [ diff --git a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php index 845f3bdcca..5197aa3f4c 100644 --- a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php @@ -21,6 +21,7 @@ use Ibexa\Core\Repository\Permission\PermissionResolver; use Ibexa\Core\Repository\Repository; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\Routing\RouterInterface; @@ -45,8 +46,8 @@ class UrlAliasGeneratorTest extends TestCase /** @var \Ibexa\Core\MVC\Symfony\Routing\Generator\UrlAliasGenerator */ private $urlAliasGenerator; - /** @var \PHPUnit\Framework\MockObject\MockObject */ - private $siteAccessRouter; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessRouterInterface */ + private \PHPUnit\Framework\MockObject\Stub $siteAccessRouter; /** @var \PHPUnit\Framework\MockObject\MockObject */ private $configResolver; @@ -56,17 +57,17 @@ protected function setUp(): void parent::setUp(); $this->router = $this->createMock(RouterInterface::class); $this->logger = $this->createMock(LoggerInterface::class); - $this->siteAccessRouter = $this->createMock(SiteAccessRouterInterface::class); + $this->siteAccessRouter = self::createStub(SiteAccessRouterInterface::class); $this->configResolver = $this->createMock(ConfigResolverInterface::class); $repositoryClass = Repository::class; $this->repository = $repository = $this ->getMockBuilder($repositoryClass) ->disableOriginalConstructor() - ->setMethods( - array_diff( + ->onlyMethods( + array_values(array_diff( get_class_methods($repositoryClass), ['sudo'] - ) + )) ) ->getMock(); $this->urlAliasService = $this->createMock(URLAliasService::class); @@ -120,9 +121,7 @@ public function testGetPathPrefixByRootLocationId() self::assertSame($pathPrefix, $this->urlAliasGenerator->getPathPrefixByRootLocationId($rootLocationId)); } - /** - * @dataProvider providerTestIsPrefixExcluded - */ + #[DataProvider('providerTestIsPrefixExcluded')] public function testIsPrefixExcluded($uri, $expectedIsExcluded) { $this->urlAliasGenerator->setExcludedUriPrefixes( @@ -135,7 +134,7 @@ public function testIsPrefixExcluded($uri, $expectedIsExcluded) self::assertSame($expectedIsExcluded, $this->urlAliasGenerator->isUriPrefixExcluded($uri)); } - public function providerTestIsPrefixExcluded() + public static function providerTestIsPrefixExcluded() { return [ ['/foo/bar', false], @@ -164,9 +163,7 @@ public function testLoadLocation() $this->urlAliasGenerator->loadLocation($locationId); } - /** - * @dataProvider providerTestDoGenerate - */ + #[DataProvider('providerTestDoGenerate')] public function testDoGenerate(URLAlias $urlAlias, array $parameters, $expected) { $location = new Location(['id' => 123]); @@ -176,12 +173,12 @@ public function testDoGenerate(URLAlias $urlAlias, array $parameters, $expected) ->with($location, false) ->will(self::returnValue([$urlAlias])); - $this->urlAliasGenerator->setSiteAccess(new SiteAccess('test', 'fake', $this->createMock(SiteAccess\URILexer::class))); + $this->urlAliasGenerator->setSiteAccess(new SiteAccess('test', 'fake', self::createStub(SiteAccess\URILexer::class))); self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, $parameters)); } - public function providerTestDoGenerate() + public static function providerTestDoGenerate() { return [ 'without_parameters' => [ @@ -208,10 +205,9 @@ public function providerTestDoGenerate() } /** - * @dataProvider providerTestDoGenerateWithSiteaccess - * * @param array $parameters */ + #[DataProvider('providerTestDoGenerateWithSiteaccess')] public function testDoGenerateWithSiteAccessParam(URLAlias $urlAlias, array $parameters, string $expected) { $siteaccessName = 'foo'; @@ -274,12 +270,12 @@ static function ($location) use ($treeRootUrlAlias) { ) ); - $this->urlAliasGenerator->setSiteAccess(new SiteAccess('test', 'fake', $this->createMock(SiteAccess\URILexer::class))); + $this->urlAliasGenerator->setSiteAccess(new SiteAccess('test', 'fake', self::createStub(SiteAccess\URILexer::class))); self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, $parameters)); } - public function providerTestDoGenerateWithSiteaccess() + public static function providerTestDoGenerateWithSiteaccess() { return [ [ @@ -419,9 +415,7 @@ public function testDoGenerateNoUrlAlias() self::assertSame($uri, $this->urlAliasGenerator->doGenerate($location, [])); } - /** - * @dataProvider providerTestDoGenerateRootLocation - */ + #[DataProvider('providerTestDoGenerateRootLocation')] public function testDoGenerateRootLocation(URLAlias $urlAlias, $isOutsideAndNotExcluded, $expected, $pathPrefix) { $excludedPrefixes = ['/products', '/shared']; @@ -458,7 +452,7 @@ public function testDoGenerateRootLocation(URLAlias $urlAlias, $isOutsideAndNotE self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, [])); } - public function providerTestDoGenerateRootLocation() + public static function providerTestDoGenerateRootLocation() { return [ [ @@ -534,12 +528,12 @@ protected function getPermissionResolverMock() return $this ->getMockBuilder(PermissionResolver::class) - ->setMethods(null) + ->onlyMethods([]) ->setConstructorArgs( [ - $this->createMock(RoleDomainMapper::class), - $this->createMock(LimitationService::class), - $this->createMock(SPIUserHandler::class), + self::createStub(RoleDomainMapper::class), + self::createStub(LimitationService::class), + self::createStub(SPIUserHandler::class), $configResolverMock, [], ] diff --git a/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php b/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php index 52ebd9be49..e21022f74a 100644 --- a/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php +++ b/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php @@ -21,6 +21,7 @@ use Ibexa\Core\MVC\Symfony\View\Manager as ViewManager; use Ibexa\Core\Repository\Repository; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Cmf\Component\Routing\RouteObjectInterface; use Symfony\Component\HttpFoundation\Request; @@ -60,11 +61,11 @@ protected function setUp(): void $this->repository = $repository = $this ->getMockBuilder($repositoryClass) ->disableOriginalConstructor() - ->setMethods( - array_diff( + ->onlyMethods( + array_values(array_diff( get_class_methods($repositoryClass), ['sudo'] - ) + )) ) ->getMock(); $this->urlAliasService = $this->createMock(URLAliasService::class); @@ -75,8 +76,8 @@ protected function setUp(): void ->setConstructorArgs( [ $repository, - $this->createMock(RouterInterface::class), - $this->createMock(ConfigResolverInterface::class), + self::createStub(RouterInterface::class), + self::createStub(ConfigResolverInterface::class), ] ) ->getMock(); @@ -118,15 +119,13 @@ public function testMatch() $this->router->match('/foo'); } - /** - * @dataProvider providerTestSupports - */ + #[DataProvider('providerTestSupports')] public function testSupports($routeReference, $isSupported) { self::assertSame($isSupported, $this->router->supports($routeReference)); } - public function providerTestSupports() + public static function providerTestSupports() { return [ [new Location(), true], @@ -155,7 +154,7 @@ protected function getRequestByPathInfo($pathInfo) new SiteAccess( 'test', 'fake', - $this->createMock(Matcher::class) + self::createStub(Matcher::class) ) ); diff --git a/tests/lib/MVC/Symfony/Security/Authentication/AnonymousUserAccessListenerTest.php b/tests/lib/MVC/Symfony/Security/Authentication/AnonymousUserAccessListenerTest.php index 983bb2f8da..c09ee2e675 100644 --- a/tests/lib/MVC/Symfony/Security/Authentication/AnonymousUserAccessListenerTest.php +++ b/tests/lib/MVC/Symfony/Security/Authentication/AnonymousUserAccessListenerTest.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\Repository\PermissionResolver; use Ibexa\Core\MVC\Symfony\Security\Authentication\AnonymousUserAccessListener; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Bundle\SecurityBundle\Security; @@ -100,7 +101,7 @@ public function testAuthenticateWhenUserCanLogin(): void $siteAccess = new SiteAccess('admin', 'default'); $request = new Request([], [], ['siteaccess' => $siteAccess]); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); @@ -119,7 +120,7 @@ public function testAuthenticateWhenUserCannotLogin(): void $siteAccess = new SiteAccess('site', 'default'); $request = new Request([], [], ['siteaccess' => $siteAccess]); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); @@ -141,7 +142,7 @@ public function testAuthenticateSkipsSubRequest(): void $siteAccess = new SiteAccess('admin', 'default'); $request = new Request([], [], ['siteaccess' => $siteAccess]); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::SUB_REQUEST ); @@ -168,9 +169,8 @@ public function testSupportsSkipsUserContextHashRequest(): void /** * The login page is no longer hard-skipped; it defers to access_control, which * is a no-op when no rule protects it, so the login page stays reachable. - * - * @dataProvider provideLoginPaths */ + #[DataProvider('provideLoginPaths')] public function testSupportsDefersToAccessControlOnLoginPage(string $path): void { $request = Request::create($path); @@ -190,9 +190,7 @@ public static function provideLoginPaths(): iterable yield 'login with query string' => ['/login?redirect=/content']; } - /** - * @dataProvider providedSupportedPaths - */ + #[DataProvider('providedSupportedPaths')] public function testSupportsReturnsTrueForSupportedPaths(string $path): void { $request = Request::create($path); @@ -270,7 +268,7 @@ public function testAuthenticateEnforcesAccessControlOnFirewallWithoutLoginPath( ->willReturn(false); $event = new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); @@ -326,7 +324,7 @@ private function prepareForAccessListenerTests(): RequestEvent $this->listener->supports($request); return new RequestEvent( - $this->createMock(HttpKernelInterface::class), + self::createStub(HttpKernelInterface::class), $request, HttpKernelInterface::MAIN_REQUEST ); diff --git a/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/OnAuthenticationTokenCreatedRepositoryUserSubscriberTest.php b/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/OnAuthenticationTokenCreatedRepositoryUserSubscriberTest.php index 29c3d68685..afbb2a6655 100644 --- a/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/OnAuthenticationTokenCreatedRepositoryUserSubscriberTest.php +++ b/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/OnAuthenticationTokenCreatedRepositoryUserSubscriberTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\Security\Authentication\EventSubscriber\OnAuthenticationTokenCreatedRepositoryUserSubscriber; use Ibexa\Core\MVC\Symfony\Security\User; use Ibexa\Core\Repository\Values\User\User as ApiUser; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Component\Security\Core\User\InMemoryUser; @@ -26,7 +27,7 @@ final class OnAuthenticationTokenCreatedRepositoryUserSubscriberTest extends Tes public function testGetSubscribedEvents(): void { $subscriber = new OnAuthenticationTokenCreatedRepositoryUserSubscriber( - $this->createMock(PermissionResolver::class) + self::createStub(PermissionResolver::class) ); self::assertEquals( @@ -37,9 +38,7 @@ public function testGetSubscribedEvents(): void ); } - /** - * @dataProvider dataProviderForTestSettingCurrentUserReference - */ + #[DataProvider('dataProviderForTestSettingCurrentUserReference')] public function testSettingCurrentUserReference( UserInterface $user, bool $isPermissionResolverInvoked @@ -59,10 +58,10 @@ public function testSettingCurrentUserReference( /** * @return iterable */ - public function dataProviderForTestSettingCurrentUserReference(): iterable + public static function dataProviderForTestSettingCurrentUserReference(): iterable { yield 'authorizing Ibexa user' => [ - new User($this->createMock(ApiUser::class)), + new User(self::createStub(ApiUser::class)), true, ]; diff --git a/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/RepositoryUserAuthenticationSubscriberTest.php b/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/RepositoryUserAuthenticationSubscriberTest.php index 8802033e18..8d7f1570d9 100644 --- a/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/RepositoryUserAuthenticationSubscriberTest.php +++ b/tests/lib/MVC/Symfony/Security/Authentication/EventSubscriber/RepositoryUserAuthenticationSubscriberTest.php @@ -134,17 +134,16 @@ private function getSubscriber( float $constantAuthTime = 1.0, ?LoggerInterface $logger = null ): RepositoryUserAuthenticationSubscriber { - $request = $this->createMock(Request::class); $requestStack = $this->createMock(RequestStack::class); $requestStack ->method('getCurrentRequest') - ->willReturn($request); + ->willReturn(self::createStub(Request::class)); return new RepositoryUserAuthenticationSubscriber( $requestStack, - $userService ?? $this->createMock(UserService::class), + $userService ?? self::createStub(UserService::class), $constantAuthTime, - $logger ?? $this->createMock(LoggerInterface::class) + $logger ?? self::createStub(LoggerInterface::class) ); } @@ -152,7 +151,6 @@ private function getCheckPassportEvent( (User & MockObject)|null $user = null, ?Passport $passport = null, ): CheckPassportEvent { - $authenticator = $this->createMock(AuthenticatorInterface::class); $user = $user ?? $this->createMock(User::class); if ($passport === null) { @@ -172,6 +170,6 @@ private function getCheckPassportEvent( ); } - return new CheckPassportEvent($authenticator, $passport); + return new CheckPassportEvent(self::createStub(AuthenticatorInterface::class), $passport); } } diff --git a/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php b/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php index d196b24bd0..f7aed62c2f 100644 --- a/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php +++ b/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php @@ -9,15 +9,14 @@ use Ibexa\Core\MVC\Symfony\Security\HttpUtils; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class HttpUtilsTest extends TestCase { - /** - * @dataProvider generateUriStandardProvider - */ + #[DataProvider('generateUriStandardProvider')] public function testGenerateUriStandard($uri, $isUriRouteName, $expected) { $urlGenerator = $this->createMock(UrlGeneratorInterface::class); @@ -39,7 +38,7 @@ public function testGenerateUriStandard($uri, $isUriRouteName, $expected) self::assertSame($expected, $httpUtils->generateUri($request, $uri)); } - public function generateUriStandardProvider() + public static function generateUriStandardProvider() { return [ ['http://localhost/foo/bar', false, 'http://localhost/foo/bar'], @@ -50,9 +49,7 @@ public function generateUriStandardProvider() ]; } - /** - * @dataProvider generateUriProvider - */ + #[DataProvider('generateUriProvider')] public function testGenerateUri($uri, $isUriRouteName, $siteAccessUri, $expected) { $siteAccess = new SiteAccess('test', 'test'); @@ -86,7 +83,7 @@ public function testGenerateUri($uri, $isUriRouteName, $siteAccessUri, $expected self::assertSame($expected, $res); } - public function generateUriProvider() + public static function generateUriProvider() { return [ ['http://localhost/foo/bar', false, null, 'http://localhost/foo/bar'], @@ -105,9 +102,7 @@ public function testCheckRequestPathStandard() self::assertTrue($httpUtils->checkRequestPath($request, '/foo/bar')); } - /** - * @dataProvider checkRequestPathProvider - */ + #[DataProvider('checkRequestPathProvider')] public function testCheckRequestPath($path, $siteAccessUri, $requestUri, $expected) { $siteAccess = new SiteAccess('test', 'test'); @@ -127,7 +122,7 @@ public function testCheckRequestPath($path, $siteAccessUri, $requestUri, $expect self::assertSame($expected, $httpUtils->checkRequestPath($request, $path)); } - public function checkRequestPathProvider() + public static function checkRequestPathProvider() { return [ ['/foo/bar', null, 'http://localhost/foo/bar', true], diff --git a/tests/lib/MVC/Symfony/Security/User/BaseProviderTestCase.php b/tests/lib/MVC/Symfony/Security/User/BaseProviderTestCase.php index 3cada1549e..232caa7d0f 100644 --- a/tests/lib/MVC/Symfony/Security/User/BaseProviderTestCase.php +++ b/tests/lib/MVC/Symfony/Security/User/BaseProviderTestCase.php @@ -20,6 +20,7 @@ use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\User; use Ibexa\Core\Repository\Values\User\UserReference; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; @@ -51,20 +52,19 @@ protected function setUp(): void /** * @phpstan-return list, bool}> */ - public function supportsClassProvider(): array + public static function supportsClassProvider(): array { return [ [SymfonyUserInterface::class, false], [MVCUser::class, true], - [get_class($this->createMock(MVCUser::class)), true], + [get_class(self::createStub(MVCUser::class)), true], ]; } /** - * @dataProvider supportsClassProvider - * * @phpstan-param class-string<\Symfony\Component\Security\Core\User\UserInterface> $class */ + #[DataProvider('supportsClassProvider')] public function testSupportsClass(string $class, bool $supports): void { self::assertSame($supports, $this->userProvider->supportsClass($class)); @@ -72,7 +72,7 @@ public function testSupportsClass(string $class, bool $supports): void public function testLoadUserByAPIUser(): void { - $apiUser = $this->createMock(APIUser::class); + $apiUser = self::createStub(APIUser::class); $user = $this->userProvider->loadUserByAPIUser($apiUser); @@ -103,7 +103,7 @@ public function testRefreshUserNotFound(): void public function testRefreshUserNotSupported(): void { - $user = $this->createMock(SymfonyUserInterface::class); + $user = self::createStub(SymfonyUserInterface::class); $this->expectException(UnsupportedUserException::class); $this->userProvider->refreshUser($user); @@ -151,7 +151,7 @@ public function testRefreshUser(): void public function testLoadUserByUsername(): void { $username = $this->getUserIdentifier(); - $apiUser = $this->createMock(APIUser::class); + $apiUser = self::createStub(APIUser::class); $this->userService ->expects(self::once()) diff --git a/tests/lib/MVC/Symfony/Security/User/EmailProviderTest.php b/tests/lib/MVC/Symfony/Security/User/EmailProviderTest.php index 261609b26e..45a96ceeb2 100644 --- a/tests/lib/MVC/Symfony/Security/User/EmailProviderTest.php +++ b/tests/lib/MVC/Symfony/Security/User/EmailProviderTest.php @@ -10,10 +10,9 @@ use Ibexa\Core\MVC\Symfony\Security\User\BaseProvider; use Ibexa\Core\MVC\Symfony\Security\User\EmailProvider; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\MVC\Symfony\Security\User\EmailProvider - */ +#[CoversClass(EmailProvider::class)] final class EmailProviderTest extends BaseProviderTestCase { protected function buildProvider(): BaseProvider diff --git a/tests/lib/MVC/Symfony/Security/User/UsernameProviderTest.php b/tests/lib/MVC/Symfony/Security/User/UsernameProviderTest.php index 5886976ba4..7d537e246e 100644 --- a/tests/lib/MVC/Symfony/Security/User/UsernameProviderTest.php +++ b/tests/lib/MVC/Symfony/Security/User/UsernameProviderTest.php @@ -10,10 +10,9 @@ use Ibexa\Core\MVC\Symfony\Security\User\BaseProvider; use Ibexa\Core\MVC\Symfony\Security\User\UsernameProvider; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\MVC\Symfony\Security\User\UsernameProvider - */ +#[CoversClass(UsernameProvider::class)] final class UsernameProviderTest extends BaseProviderTestCase { protected function buildProvider(): BaseProvider diff --git a/tests/lib/MVC/Symfony/Security/UserTest.php b/tests/lib/MVC/Symfony/Security/UserTest.php index 94a7efb783..36f7bdaf52 100644 --- a/tests/lib/MVC/Symfony/Security/UserTest.php +++ b/tests/lib/MVC/Symfony/Security/UserTest.php @@ -31,7 +31,7 @@ public function testConstruct() ], ] ) - ->setMethods(['getUserId']) + ->onlyMethods(['getUserId']) ->getMockForAbstractClass(); $roles = ['ROLE_USER']; @@ -92,7 +92,7 @@ public function testIsNotEqualTo() public function testIsEqualToNotSameUserType() { - $user = new User($this->createMock(APIUser::class)); + $user = new User(self::createStub(APIUser::class)); $user2 = $this->createMock(ReferenceUserInterface::class); $user2 ->expects(self::once()) @@ -103,8 +103,8 @@ public function testIsEqualToNotSameUserType() public function testSetAPIUser() { - $apiUserA = $this->createMock(APIUser::class); - $apiUserB = $this->createMock(APIUser::class); + $apiUserA = self::createStub(APIUser::class); + $apiUserB = self::createStub(APIUser::class); $user = new User($apiUserA); $user->setAPIUser($apiUserB); diff --git a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php index b4ac50d84b..e1d8cd3f70 100644 --- a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php +++ b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php @@ -11,39 +11,38 @@ use Ibexa\Contracts\Core\Repository\Values\User\User as APIUser; use Ibexa\Core\MVC\Symfony\Security\UserInterface; use Ibexa\Core\MVC\Symfony\Security\UserWrapped; -use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\User\EquatableInterface; use Symfony\Component\Security\Core\User\UserInterface as SymfonyUserInterface; final class UserWrappedTest extends TestCase { - private APIUser & MockObject $apiUser; + private APIUser&\PHPUnit\Framework\MockObject\Stub $apiUser; protected function setUp(): void { parent::setUp(); - $this->apiUser = $this->createMock(APIUser::class); + $this->apiUser = self::createStub(APIUser::class); } public function testGetSetAPIUser(): void { - $originalUser = $this->createMock(SymfonyUserInterface::class); + $originalUser = self::createStub(SymfonyUserInterface::class); $userWrapped = new UserWrapped($originalUser, $this->apiUser); self::assertSame($this->apiUser, $userWrapped->getAPIUser()); - $newApiUser = $this->createMock(APIUser::class); + $newApiUser = self::createStub(APIUser::class); $userWrapped->setAPIUser($newApiUser); self::assertSame($newApiUser, $userWrapped->getAPIUser()); } public function testGetSetWrappedUser(): void { - $originalUser = $this->createMock(SymfonyUserInterface::class); + $originalUser = self::createStub(SymfonyUserInterface::class); $userWrapped = new UserWrapped($originalUser, $this->apiUser); self::assertSame($originalUser, $userWrapped->getWrappedUser()); - $newWrappedUser = $this->createMock(UserInterface::class); + $newWrappedUser = self::createStub(UserInterface::class); $userWrapped->setWrappedUser($newWrappedUser); self::assertSame($newWrappedUser, $userWrapped->getWrappedUser()); } @@ -53,7 +52,7 @@ public function testRegularUser(): void $originalUser = $this->createMock(SymfonyUserInterface::class); $user = new UserWrapped($originalUser, $this->apiUser); - self::assertTrue($user->isEqualTo($this->createMock(SymfonyUserInterface::class))); + self::assertTrue($user->isEqualTo(self::createStub(SymfonyUserInterface::class))); $originalUser ->expects(self::once()) @@ -81,7 +80,7 @@ public function testIsEqualTo() { $originalUser = $this->createMock(UserEquatableInterface::class); $user = new UserWrapped($originalUser, $this->apiUser); - $otherUser = $this->createMock(SymfonyUserInterface::class); + $otherUser = self::createStub(SymfonyUserInterface::class); $originalUser ->expects(self::once()) ->method('isEqualTo') @@ -92,7 +91,7 @@ public function testIsEqualTo() public function testNotSerializeApiUser(): void { - $originalUser = $this->createMock(UserInterface::class); + $originalUser = self::createStub(UserInterface::class); $user = new UserWrapped($originalUser, $this->apiUser); $serialized = serialize($user); $unserializedUser = unserialize($serialized); diff --git a/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php b/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php index 2d8261b14c..4b196e55cb 100644 --- a/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php +++ b/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\Controller\Content\ViewController; use Ibexa\Core\MVC\Symfony\Security\Authorization\Attribute; use Ibexa\Core\MVC\Symfony\Security\Authorization\Voter\CoreVoter; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface; @@ -27,16 +28,14 @@ protected function setUp(): void $this->permissionResolver = $this->createMock(PermissionResolver::class); } - /** - * @dataProvider supportsAttributeProvider - */ + #[DataProvider('supportsAttributeProvider')] public function testSupportsAttribute($attribute, $expectedResult) { $voter = new CoreVoter($this->permissionResolver); self::assertSame($expectedResult, $voter->supportsAttribute($attribute)); } - public function supportsAttributeProvider() + public static function supportsAttributeProvider() { return [ ['foo', false], @@ -48,23 +47,21 @@ public function supportsAttributeProvider() new Attribute( 'foo', 'bar', - ['valueObject' => $this->getMockForAbstractClass(ValueObject::class)] + ['valueObject' => self::createStub(ValueObject::class)] ), false, ], ]; } - /** - * @dataProvider supportsClassProvider - */ + #[DataProvider('supportsClassProvider')] public function testSupportsClass($class) { $voter = new CoreVoter($this->permissionResolver); self::assertTrue($voter->supportsClass($class)); } - public function supportsClassProvider() + public static function supportsClassProvider() { return [ ['foo'], @@ -74,23 +71,21 @@ public function supportsClassProvider() ]; } - /** - * @dataProvider voteInvalidAttributeProvider - */ + #[DataProvider('voteInvalidAttributeProvider')] public function testVoteInvalidAttribute(array $attributes) { $voter = new CoreVoter($this->permissionResolver); self::assertSame( VoterInterface::ACCESS_ABSTAIN, $voter->vote( - $this->createMock(TokenInterface::class), + self::createStub(TokenInterface::class), new \stdClass(), $attributes ) ); } - public function voteInvalidAttributeProvider() + public static function voteInvalidAttributeProvider() { return [ [[]], @@ -102,7 +97,7 @@ public function voteInvalidAttributeProvider() new Attribute( 'foo', 'bar', - ['valueObject' => $this->getMockForAbstractClass(ValueObject::class)] + ['valueObject' => self::createStub(ValueObject::class)] ), ], false, @@ -110,9 +105,7 @@ public function voteInvalidAttributeProvider() ]; } - /** - * @dataProvider voteProvider - */ + #[DataProvider('voteProvider')] public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult) { $voter = new CoreVoter($this->permissionResolver); @@ -131,14 +124,14 @@ public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResu self::assertSame( $expectedResult, $voter->vote( - $this->createMock(TokenInterface::class), + self::createStub(TokenInterface::class), new \stdClass(), [$attribute] ) ); } - public function voteProvider() + public static function voteProvider() { return [ [ @@ -166,8 +159,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => $this->getMockForAbstractClass(ValueObject::class), + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => self::createStub(ValueObject::class), ] ), null, @@ -178,8 +171,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), null, @@ -190,8 +183,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => $this->getMockForAbstractClass(ValueObject::class), + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => self::createStub(ValueObject::class), ] ), null, @@ -202,8 +195,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), null, diff --git a/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php b/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php index 971b646df8..424b8541b7 100644 --- a/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php +++ b/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\Security\Authorization\Attribute; use Ibexa\Core\MVC\Symfony\Security\Authorization\Voter\ValueObjectVoter; use Ibexa\Core\Repository\Permission\PermissionResolver; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface; @@ -27,16 +28,14 @@ protected function setUp(): void $this->permissionResolver = $this->createMock(PermissionResolver::class); } - /** - * @dataProvider supportsAttributeProvider - */ + #[DataProvider('supportsAttributeProvider')] public function testSupportsAttribute($attribute, $expectedResult) { $voter = new ValueObjectVoter($this->permissionResolver); self::assertSame($expectedResult, $voter->supportsAttribute($attribute)); } - public function supportsAttributeProvider() + public static function supportsAttributeProvider() { return [ ['foo', false], @@ -48,23 +47,21 @@ public function supportsAttributeProvider() new Attribute( 'foo', 'bar', - ['valueObject' => $this->getMockForAbstractClass(ValueObject::class)] + ['valueObject' => self::createStub(ValueObject::class)] ), true, ], ]; } - /** - * @dataProvider supportsClassProvider - */ + #[DataProvider('supportsClassProvider')] public function testSupportsClass($class) { $voter = new ValueObjectVoter($this->permissionResolver); self::assertTrue($voter->supportsClass($class)); } - public function supportsClassProvider() + public static function supportsClassProvider() { return [ ['foo'], @@ -74,23 +71,21 @@ public function supportsClassProvider() ]; } - /** - * @dataProvider voteInvalidAttributeProvider - */ + #[DataProvider('voteInvalidAttributeProvider')] public function testVoteInvalidAttribute(array $attributes) { $voter = new ValueObjectVoter($this->permissionResolver); self::assertSame( VoterInterface::ACCESS_ABSTAIN, $voter->vote( - $this->createMock(TokenInterface::class), + self::createStub(TokenInterface::class), new \stdClass(), $attributes ) ); } - public function voteInvalidAttributeProvider() + public static function voteInvalidAttributeProvider() { return [ [[]], @@ -101,9 +96,7 @@ public function voteInvalidAttributeProvider() ]; } - /** - * @dataProvider voteProvider - */ + #[DataProvider('voteProvider')] public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult) { $voter = new ValueObjectVoter($this->permissionResolver); @@ -117,30 +110,26 @@ public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResu self::assertSame( $expectedResult, $voter->vote( - $this->createMock(TokenInterface::class), + self::createStub(TokenInterface::class), new \stdClass(), [$attribute] ) ); } - public function voteProvider() + public static function voteProvider() { return [ [ new Attribute('content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass( - ValueObject::class - ), + 'valueObject' => self::createStub(ValueObject::class), ]), true, VoterInterface::ACCESS_GRANTED, ], [ new Attribute('content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass( - ValueObject::class - ), + 'valueObject' => self::createStub(ValueObject::class), ]), false, VoterInterface::ACCESS_DENIED, @@ -150,8 +139,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), true, @@ -162,8 +151,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), true, @@ -174,8 +163,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), false, @@ -186,8 +175,8 @@ public function voteProvider() 'content', 'read', [ - 'valueObject' => $this->getMockForAbstractClass(ValueObject::class), - 'targets' => [$this->getMockForAbstractClass(ValueObject::class)], + 'valueObject' => self::createStub(ValueObject::class), + 'targets' => [self::createStub(ValueObject::class)], ] ), false, diff --git a/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php b/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php index 63db1fe238..243076e996 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php @@ -15,6 +15,8 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilder; use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilderInterface; use Ibexa\Core\MVC\Symfony\SiteAccess\VersatileMatcher; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -65,18 +67,16 @@ private function buildMatcher(): LogicalAnd ); } - /** - * @depends testConstruct - */ + #[Depends('testConstruct')] public function testSetMatcherBuilder(Compound $compoundMatcher): void { $this ->matcherBuilder ->expects(self::any()) ->method('buildMatcher') - ->will(self::returnValue($this->createMock(Matcher::class))); + ->will(self::returnValue(self::createStub(Matcher::class))); - $compoundMatcher->setRequest($this->createMock(SimplifiedRequest::class)); + $compoundMatcher->setRequest(self::createStub(SimplifiedRequest::class)); $compoundMatcher->setMatcherBuilder($this->matcherBuilder); $matchers = $compoundMatcher->getSubMatchers(); self::assertIsArray($matchers); @@ -86,11 +86,10 @@ public function testSetMatcherBuilder(Compound $compoundMatcher): void } /** - * @dataProvider matchProvider - * * @param \Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest $request * @param $expectedMatch */ + #[DataProvider('matchProvider')] public function testMatch(SimplifiedRequest $request, $expectedMatch): void { $compoundMatcher = $this->buildMatcher(); @@ -120,7 +119,7 @@ public function testSetRequest(): void ->method('buildMatcher') ->will(self::onConsecutiveCalls($matcher1, $matcher2)); - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $matcher1 ->expects(self::once()) ->method('setRequest') @@ -130,12 +129,12 @@ public function testSetRequest(): void ->method('setRequest') ->with($request); - $compoundMatcher->setRequest($this->createMock(SimplifiedRequest::class)); + $compoundMatcher->setRequest(self::createStub(SimplifiedRequest::class)); $compoundMatcher->setMatcherBuilder($this->matcherBuilder); $compoundMatcher->setRequest($request); } - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://fr.ezpublish.dev/eng'), 'fr_eng'], @@ -155,16 +154,16 @@ public function testReverseMatchSiteAccessNotConfigured(): void $this->matcherBuilder ->expects(self::any()) ->method('buildMatcher') - ->will(self::returnValue($this->createMock(VersatileMatcher::class))); + ->will(self::returnValue(self::createStub(VersatileMatcher::class))); - $compoundMatcher->setRequest($this->createMock(SimplifiedRequest::class)); + $compoundMatcher->setRequest(self::createStub(SimplifiedRequest::class)); $compoundMatcher->setMatcherBuilder($this->matcherBuilder); self::assertNull($compoundMatcher->reverseMatch('not_configured_sa')); } public function testReverseMatchNotVersatile(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -184,7 +183,7 @@ public function testReverseMatchNotVersatile(): void $matcher1 = $this->createMock(VersatileMatcher::class); $matcher2 = $this->getMockBuilder(Matcher::class) ->disableOriginalConstructor() - ->setMethods(['reverseMatch']) + ->addMethods(['reverseMatch']) ->getMockForAbstractClass(); $this->matcherBuilder @@ -203,7 +202,7 @@ public function testReverseMatchNotVersatile(): void ->expects(self::once()) ->method('reverseMatch') ->with($siteAccessName) - ->will(self::returnValue($this->createMock(VersatileMatcher::class))); + ->will(self::returnValue(self::createStub(VersatileMatcher::class))); $matcher2 ->expects(self::never()) ->method('reverseMatch'); @@ -214,7 +213,7 @@ public function testReverseMatchNotVersatile(): void public function testReverseMatchFail(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -249,7 +248,7 @@ public function testReverseMatchFail(): void ->expects(self::once()) ->method('reverseMatch') ->with($siteAccessName) - ->will(self::returnValue($this->createMock(VersatileMatcher::class))); + ->will(self::returnValue(self::createStub(VersatileMatcher::class))); $matcher2 ->expects(self::once()) ->method('reverseMatch') @@ -262,7 +261,7 @@ public function testReverseMatchFail(): void public function testReverseMatch(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -293,13 +292,13 @@ public function testReverseMatch(): void ) ); - $reverseMatchedMatcher1 = $this->createMock(VersatileMatcher::class); + $reverseMatchedMatcher1 = self::createStub(VersatileMatcher::class); $matcher1 ->expects(self::once()) ->method('reverseMatch') ->with($siteAccessName) ->will(self::returnValue($reverseMatchedMatcher1)); - $reverseMatchedMatcher2 = $this->createMock(VersatileMatcher::class); + $reverseMatchedMatcher2 = self::createStub(VersatileMatcher::class); $matcher2 ->expects(self::once()) ->method('reverseMatch') diff --git a/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php b/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php index 47d2d38759..191ff40d5d 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php @@ -15,6 +15,8 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilder; use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilderInterface; use Ibexa\Core\MVC\Symfony\SiteAccess\VersatileMatcher; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -55,17 +57,15 @@ private function buildMatcher(): LogicalOr ); } - /** - * @depends testConstruct - */ + #[Depends('testConstruct')] public function testSetMatcherBuilder(Compound $compoundMatcher): void { $this->matcherBuilder ->expects(self::any()) ->method('buildMatcher') - ->will(self::returnValue($this->createMock(Matcher::class))); + ->will(self::returnValue(self::createStub(Matcher::class))); - $compoundMatcher->setRequest($this->createMock(SimplifiedRequest::class)); + $compoundMatcher->setRequest(self::createStub(SimplifiedRequest::class)); $compoundMatcher->setMatcherBuilder($this->matcherBuilder); $matchers = $compoundMatcher->getSubMatchers(); self::assertIsArray($matchers); @@ -75,11 +75,10 @@ public function testSetMatcherBuilder(Compound $compoundMatcher): void } /** - * @dataProvider matchProvider - * * @param \Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest $request * @param string $expectedMatch */ + #[DataProvider('matchProvider')] public function testMatch(SimplifiedRequest $request, $expectedMatch): void { $compoundMatcher = $this->buildMatcher(); @@ -88,7 +87,7 @@ public function testMatch(SimplifiedRequest $request, $expectedMatch): void self::assertSame($expectedMatch, $compoundMatcher->match()); } - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://fr.ezpublish.dev/eng'), 'fr_eng'], @@ -109,16 +108,16 @@ public function testReverseMatchSiteAccessNotConfigured(): void $this->matcherBuilder ->expects(self::any()) ->method('buildMatcher') - ->will(self::returnValue($this->createMock(VersatileMatcher::class))); + ->will(self::returnValue(self::createStub(VersatileMatcher::class))); - $compoundMatcher->setRequest($this->createMock(SimplifiedRequest::class)); + $compoundMatcher->setRequest(self::createStub(SimplifiedRequest::class)); $compoundMatcher->setMatcherBuilder($this->matcherBuilder); self::assertNull($compoundMatcher->reverseMatch('not_configured_sa')); } public function testReverseMatchNotVersatile(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -137,11 +136,11 @@ public function testReverseMatchNotVersatile(): void $matcher1 = $this->getMockBuilder(Matcher::class) ->disableOriginalConstructor() - ->setMethods(['reverseMatch']) + ->addMethods(['reverseMatch']) ->getMockForAbstractClass(); $matcher2 = $this->getMockBuilder(Matcher::class) ->disableOriginalConstructor() - ->setMethods(['reverseMatch']) + ->addMethods(['reverseMatch']) ->getMockForAbstractClass(); $this->matcherBuilder @@ -169,7 +168,7 @@ public function testReverseMatchNotVersatile(): void public function testReverseMatchFail(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -217,7 +216,7 @@ public function testReverseMatchFail(): void public function testReverseMatch1(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -248,7 +247,7 @@ public function testReverseMatch1(): void ) ); - $reverseMatchedMatcher1 = $this->createMock(VersatileMatcher::class); + $reverseMatchedMatcher1 = self::createStub(VersatileMatcher::class); $matcher1 ->expects(self::once()) ->method('reverseMatch') @@ -268,7 +267,7 @@ public function testReverseMatch1(): void public function testReverseMatch2(): void { - $request = $this->createMock(SimplifiedRequest::class); + $request = self::createStub(SimplifiedRequest::class); $siteAccessName = 'fr_eng'; $mapUriConfig = ['eng' => true]; $mapHostConfig = ['fr.ezpublish.dev' => true]; @@ -304,7 +303,7 @@ public function testReverseMatch2(): void ->method('reverseMatch') ->with($siteAccessName) ->will(self::returnValue(null)); - $reverseMatchedMatcher2 = $this->createMock(VersatileMatcher::class); + $reverseMatchedMatcher2 = self::createStub(VersatileMatcher::class); $matcher2 ->expects(self::once()) ->method('reverseMatch') diff --git a/tests/lib/MVC/Symfony/SiteAccess/MatcherSerializationTest.php b/tests/lib/MVC/Symfony/SiteAccess/MatcherSerializationTest.php index 597646267f..37553a0d38 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/MatcherSerializationTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/MatcherSerializationTest.php @@ -11,15 +11,14 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\Compound\LogicalAnd; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\Compound\LogicalOr; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class MatcherSerializationTest extends TestCase { use SerializerTrait; - /** - * @dataProvider matcherProvider - */ + #[DataProvider('matcherProvider')] public function testDeserialize(Matcher $matcher, ?Matcher $expected = null): void { $serializedMatcher = $this->serializeMatcher($matcher); @@ -55,7 +54,7 @@ private function deserializeMatcher(string $serializedMatcher, string $matcherFQ /** * @return iterable */ - public function matcherProvider(): iterable + public static function matcherProvider(): iterable { $subMatchers = [ Matcher\Map\URI::class => new Matcher\Map\URI(['campaign' => 'event']), @@ -121,9 +120,9 @@ public function matcherProvider(): iterable ] ), ]; - yield 'MapURI' => $this->getMapURIMatcherTestCase(); - yield 'MapPort' => $this->getMapPortMatcherTestCase(); - yield 'MapHost' => $this->getMapHostMatcherTestCase(); + yield 'MapURI' => self::getMapURIMatcherTestCase(); + yield 'MapPort' => self::getMapPortMatcherTestCase(); + yield 'MapHost' => self::getMapHostMatcherTestCase(); yield 'CompoundAnd' => [ $logicalAnd, $expectedLogicalAnd, @@ -137,7 +136,7 @@ public function matcherProvider(): iterable /** * @return array{\Ibexa\Core\MVC\Symfony\SiteAccess\Matcher, \Ibexa\Core\MVC\Symfony\SiteAccess\Matcher} */ - private function getMapPortMatcherTestCase(): array + private static function getMapPortMatcherTestCase(): array { $matcherBeforeSerialization = new Matcher\Map\Port(['8080' => 'event']); $matcherBeforeSerialization->setMapKey('8080'); @@ -151,7 +150,7 @@ private function getMapPortMatcherTestCase(): array /** * @return array{\Ibexa\Core\MVC\Symfony\SiteAccess\Matcher, \Ibexa\Core\MVC\Symfony\SiteAccess\Matcher} */ - private function getMapHostMatcherTestCase(): array + private static function getMapHostMatcherTestCase(): array { $matcherBeforeSerialization = new Matcher\Map\Host(['map' => 'site']); $matcherBeforeSerialization->setMapKey('map'); @@ -165,7 +164,7 @@ private function getMapHostMatcherTestCase(): array /** * @return array{\Ibexa\Core\MVC\Symfony\SiteAccess\Matcher, \Ibexa\Core\MVC\Symfony\SiteAccess\Matcher} */ - private function getMapURIMatcherTestCase(): array + private static function getMapURIMatcherTestCase(): array { $matcherBeforeSerialization = new Matcher\Map\URI(['www.example.org' => 'event_site']); $matcherBeforeSerialization->setMapKey('www.example.org'); diff --git a/tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php b/tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php index c774ec8d2b..d5f904516e 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Provider\ChainSiteAccessProvider; use Ibexa\Core\MVC\Symfony\SiteAccess\Provider\StaticSiteAccessProvider; use Ibexa\Core\MVC\Symfony\SiteAccessGroup; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class ChainSiteAccessProviderTest extends TestCase @@ -45,7 +46,7 @@ protected function setUp(): void ]; } - public function siteAccessNamesProvider(): array + public static function siteAccessNamesProvider(): array { return [ 'existing_sa' => [self::EXISTING_SA_NAME], @@ -53,9 +54,7 @@ public function siteAccessNamesProvider(): array ]; } - /** - * @dataProvider siteAccessNamesProvider - */ + #[DataProvider('siteAccessNamesProvider')] public function testIsDefined(string $siteAccessName): void { $chainSiteAccessProvider = $this->getChainSiteAccessProvider(); @@ -104,7 +103,7 @@ public function testGetSiteAccesses(): void ); } - public function getExistingSiteProvider(): array + public static function getExistingSiteProvider(): array { return [ 'existing_sa' => [self::EXISTING_SA_NAME, [self::SA_GROUP]], @@ -113,12 +112,11 @@ public function getExistingSiteProvider(): array } /** - * @dataProvider getExistingSiteProvider - * * @param string[] $expectedGroups * * @throws \Ibexa\Core\Base\Exceptions\NotFoundException */ + #[DataProvider('getExistingSiteProvider')] public function testGetExistingSiteAccess(string $siteAccessName, array $expectedGroups): void { $chainSiteAccessProvider = $this->getChainSiteAccessProvider(); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php b/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php index 599c451a24..e1f41dceb3 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php @@ -12,6 +12,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilder; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; abstract class RouterBaseTestCase extends TestCase @@ -40,9 +41,7 @@ public function testConstruct(): Router return $this->createRouter(); } - /** - * @dataProvider matchProvider - */ + #[DataProvider('matchProvider')] public function testMatch(SimplifiedRequest $request, string $siteAccess) { $router = $this->createRouter(); @@ -54,7 +53,7 @@ public function testMatch(SimplifiedRequest $request, string $siteAccess) $router->setSiteAccess(); } - abstract public function matchProvider(): array; + abstract public static function matchProvider(): array; abstract protected function createRouter(): Router; diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php index 8470fbcff6..18fc4567c9 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php @@ -12,11 +12,12 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\HostElement; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\Map\Host as HostMapMatcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; class RouterHostElementTest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://www.example.com'), 'example'], @@ -82,9 +83,7 @@ public function testGetName() self::assertSame('host:element', $matcherHostElement->getName()); } - /** - * @dataProvider reverseMatchProvider - */ + #[DataProvider('reverseMatchProvider')] public function testReverseMatch($siteAccessName, $elementNumber, SimplifiedRequest $request, $expectedHost) { $matcher = new HostElement([$elementNumber]); @@ -94,7 +93,7 @@ public function testReverseMatch($siteAccessName, $elementNumber, SimplifiedRequ self::assertSame($expectedHost, $result->getRequest()->getHost()); } - public function reverseMatchProvider() + public static function reverseMatchProvider() { return [ ['foo', 1, SimplifiedRequest::fromUrl('http://bar.example.com/'), 'foo.example.com'], @@ -128,7 +127,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'HostElement' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php index 1693f769b3..7b6e1ca5b2 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php @@ -15,7 +15,7 @@ class RouterHostPortURITest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'fifth_sa'], @@ -160,7 +160,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'Map\\Host' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php index 645b3105ee..20d75651ab 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php @@ -14,7 +14,7 @@ class RouterHostTextTest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'default_sa'], @@ -101,7 +101,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'HostText' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php index a78712c5cc..15516297cf 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php @@ -9,6 +9,7 @@ use Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\Map\URI as URIMapMatcher; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class RouterMapURITest extends TestCase @@ -17,9 +18,8 @@ class RouterMapURITest extends TestCase * @param array $config * @param string $pathinfo * @param string $expectedMapKey - * - * @dataProvider setRequestProvider */ + #[DataProvider('setRequestProvider')] public function testSetGetRequest($config, $pathinfo, $expectedMapKey) { $request = new SimplifiedRequest('http', '', 80, $pathinfo); @@ -32,9 +32,8 @@ public function testSetGetRequest($config, $pathinfo, $expectedMapKey) /** * @param string $uri * @param string $expectedFixedUpURI - * - * @dataProvider fixupURIProvider */ + #[DataProvider('fixupURIProvider')] public function testAnalyseURI($uri, $expectedFixedUpURI) { $matcher = new URIMapMatcher([]); @@ -50,9 +49,8 @@ public function testAnalyseURI($uri, $expectedFixedUpURI) /** * @param string $fullUri * @param string $linkUri - * - * @dataProvider fixupURIProvider */ + #[DataProvider('fixupURIProvider')] public function testAnalyseLink($fullUri, $linkUri) { $matcher = new URIMapMatcher([]); @@ -65,7 +63,7 @@ public function testAnalyseLink($fullUri, $linkUri) self::assertSame($fullUri, $unserializedMatcher->analyseLink($linkUri)); } - public function setRequestProvider() + public static function setRequestProvider() { return [ [['foo' => 'bar'], '/bar/baz', 'bar'], @@ -73,7 +71,7 @@ public function setRequestProvider() ]; } - public function fixupURIProvider() + public static function fixupURIProvider() { return [ ['/foo', '/'], diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php index 05b8ad065c..b2f737ae97 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php @@ -13,7 +13,7 @@ class RouterPortHostURITest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'fifth_sa'], @@ -85,7 +85,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'Map\\Port' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php index 3855def8f3..da07ed99a5 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php @@ -14,7 +14,7 @@ class RouterSpecialPortsTest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'fifth_sa'], @@ -85,7 +85,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'Map\\URI' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php index 2f01b39b2e..8b9a08727f 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\MatcherBuilderInterface; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; use Ibexa\Core\MVC\Symfony\SiteAccess\VersatileMatcher; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Request; @@ -30,9 +31,7 @@ public function testConstructDebug() return $this->createRouter(true); } - /** - * @dataProvider matchProvider - */ + #[DataProvider('matchProvider')] public function testMatch(SimplifiedRequest $request, $siteAccess) { $router = $this->createRouter(); @@ -99,7 +98,7 @@ public function testMatchWithRequestHeader(): void $router->setSiteAccess(); } - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'default_sa'], @@ -167,8 +166,8 @@ public function testMatchByNameInvalidSiteAccess() { $this->expectException(\InvalidArgumentException::class); - $matcherBuilder = $this->createMock(MatcherBuilderInterface::class); - $logger = $this->createMock(LoggerInterface::class); + $matcherBuilder = self::createStub(MatcherBuilderInterface::class); + $logger = self::createStub(LoggerInterface::class); $siteAccessProvider = $this->createMock(SiteAccess\SiteAccessProviderInterface::class); $siteAccessProvider ->method('isDefined') @@ -181,7 +180,7 @@ public function testMatchByNameInvalidSiteAccess() public function testMatchByName() { $matcherBuilder = $this->createMock(MatcherBuilderInterface::class); - $logger = $this->createMock(LoggerInterface::class); + $logger = self::createStub(LoggerInterface::class); $matcherClass = 'Map\Host'; $matchedSiteAccess = 'foo'; $matcherConfig = [ @@ -212,12 +211,12 @@ public function testMatchByName() ->method('buildMatcher') ->will( self::onConsecutiveCalls( - $this->createMock(Matcher::class), + self::createStub(Matcher::class), $matcher ) ); - $reverseMatchedMatcher = $this->createMock(VersatileMatcher::class); + $reverseMatchedMatcher = self::createStub(VersatileMatcher::class); $matcher ->expects(self::once()) ->method('reverseMatch') @@ -254,7 +253,7 @@ public function testMatchByNameNoVersatileMatcher() ->expects(self::once()) ->method('buildMatcher') ->with($matcherClass, $matcherConfig, $request) - ->will(self::returnValue($this->createMock(Matcher::class))); + ->will(self::returnValue(self::createStub(Matcher::class))); $logger ->expects(self::once()) @@ -266,7 +265,7 @@ protected function createRouter($debug = false): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'Map\\URI' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php index 9e31cde1be..ec8d8c1ba9 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php @@ -12,11 +12,12 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIElement; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIElement as URIElementMatcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; class RouterURIElement2Test extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'default_sa'], @@ -71,9 +72,8 @@ public function matchProvider(): array * @param int $level * @param string $uri * @param string $expectedFixedUpURI - * - * @dataProvider analyseProvider */ + #[DataProvider('analyseProvider')] public function testAnalyseURI($level, $uri, $expectedFixedUpURI) { $matcher = new URIElementMatcher([$level]); @@ -87,9 +87,8 @@ public function testAnalyseURI($level, $uri, $expectedFixedUpURI) * @param int $level * @param string $uri * @param string $expectedFixedUpURI - * - * @dataProvider analyseProvider */ + #[DataProvider('analyseProvider')] public function testAnalyseURILevelAsInt($level, $uri, $expectedFixedUpURI) { $matcher = new URIElementMatcher($level); @@ -103,9 +102,8 @@ public function testAnalyseURILevelAsInt($level, $uri, $expectedFixedUpURI) * @param int $level * @param string $fullUri * @param string $linkUri - * - * @dataProvider analyseProvider */ + #[DataProvider('analyseProvider')] public function testAnalyseLink($level, $fullUri, $linkUri) { $matcher = new URIElementMatcher([$level]); @@ -115,7 +113,7 @@ public function testAnalyseLink($level, $fullUri, $linkUri) self::assertSame($fullUri, $matcher->analyseLink($linkUri)); } - public function analyseProvider() + public static function analyseProvider() { return [ [2, '/my/siteaccess/foo/bar', '/foo/bar'], @@ -133,9 +131,7 @@ public function analyseProvider() ]; } - /** - * @dataProvider reverseMatchProvider - */ + #[DataProvider('reverseMatchProvider')] public function testReverseMatch($siteAccessName, $originalPathinfo) { $expectedSiteAccessPath = str_replace('_', '/', $siteAccessName); @@ -149,7 +145,7 @@ public function testReverseMatch($siteAccessName, $originalPathinfo) self::assertSame('/foo/bar/baz', $result->analyseURI("/$expectedSiteAccessPath/foo/bar/baz")); } - public function reverseMatchProvider() + public static function reverseMatchProvider() { return [ ['some_thing', '/foo/bar'], @@ -181,7 +177,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'URIElement' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php index ff935ccf1b..703cfde401 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php @@ -12,11 +12,12 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIElement; use Ibexa\Core\MVC\Symfony\SiteAccess\Matcher\URIElement as URIElementMatcher; use Ibexa\Core\MVC\Symfony\SiteAccess\Router; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; class RouterURIElementTest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'default_sa'], @@ -76,9 +77,8 @@ public function testGetName() /** * @param string $uri * @param string $expectedFixedUpURI - * - * @dataProvider analyseProvider */ + #[DataProvider('analyseProvider')] public function testAnalyseURI($uri, $expectedFixedUpURI) { $matcher = new URIElementMatcher([1]); @@ -91,9 +91,8 @@ public function testAnalyseURI($uri, $expectedFixedUpURI) /** * @param string $fullUri * @param string $linkUri - * - * @dataProvider analyseProvider */ + #[DataProvider('analyseProvider')] public function testAnalyseLink($fullUri, $linkUri) { $matcher = new URIElementMatcher([1]); @@ -103,7 +102,7 @@ public function testAnalyseLink($fullUri, $linkUri) self::assertSame($fullUri, $matcher->analyseLink($linkUri)); } - public function analyseProvider() + public static function analyseProvider() { return [ ['/my_siteaccess/foo/bar', '/foo/bar'], @@ -111,9 +110,7 @@ public function analyseProvider() ]; } - /** - * @dataProvider reverseMatchProvider - */ + #[DataProvider('reverseMatchProvider')] public function testReverseMatch($siteAccessName, $originalPathinfo) { $matcher = new URIElementMatcher([1]); @@ -125,7 +122,7 @@ public function testReverseMatch($siteAccessName, $originalPathinfo) self::assertSame('/foo/bar/baz', $result->analyseURI("/$siteAccessName/foo/bar/baz")); } - public function reverseMatchProvider() + public static function reverseMatchProvider() { return [ ['something', '/foo/bar'], @@ -153,7 +150,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'URIElement' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php index b3002df776..b9b8959cf3 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php @@ -15,7 +15,7 @@ class RouterURITextTest extends RouterBaseTestCase { - public function matchProvider(): array + public static function matchProvider(): array { return [ [SimplifiedRequest::fromUrl('http://example.com'), 'default_sa'], @@ -131,7 +131,7 @@ protected function createRouter(): Router { return new Router( $this->matcherBuilder, - $this->createMock(LoggerInterface::class), + self::createStub(LoggerInterface::class), 'default_sa', [ 'URIText' => [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php b/tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php index 08cf724234..58056d3e4c 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php @@ -53,8 +53,8 @@ protected function setUp(): void public function testGetCurrentSiteAccess(): void { $service = new SiteAccessService( - $this->createMock(SiteAccessProviderInterface::class), - $this->createMock(ConfigResolverInterface::class) + self::createStub(SiteAccessProviderInterface::class), + self::createStub(ConfigResolverInterface::class) ); self::assertNull($service->getCurrent()); @@ -81,8 +81,8 @@ public function testGetSubscribedEvents(): void public function testOnConfigScopeChangeMakesGetCurrentReflectTheNewSiteAccess(): void { $service = new SiteAccessService( - $this->createStub(SiteAccessProviderInterface::class), - $this->createStub(ConfigResolverInterface::class) + self::createStub(SiteAccessProviderInterface::class), + self::createStub(ConfigResolverInterface::class) ); $baseSiteAccess = new SiteAccess('base'); @@ -97,8 +97,8 @@ public function testOnConfigScopeChangeMakesGetCurrentReflectTheNewSiteAccess(): public function testOnConfigScopeRestoreBringsBackThePreviousSiteAccess(): void { $service = new SiteAccessService( - $this->createStub(SiteAccessProviderInterface::class), - $this->createStub(ConfigResolverInterface::class) + self::createStub(SiteAccessProviderInterface::class), + self::createStub(ConfigResolverInterface::class) ); $baseSiteAccess = new SiteAccess('base'); @@ -114,8 +114,8 @@ public function testOnConfigScopeRestoreBringsBackThePreviousSiteAccess(): void public function testOnConfigScopeRestoreNeverDropsTheBaseSiteAccess(): void { $service = new SiteAccessService( - $this->createStub(SiteAccessProviderInterface::class), - $this->createStub(ConfigResolverInterface::class) + self::createStub(SiteAccessProviderInterface::class), + self::createStub(ConfigResolverInterface::class) ); $baseSiteAccess = new SiteAccess('base'); @@ -129,8 +129,8 @@ public function testOnConfigScopeRestoreNeverDropsTheBaseSiteAccess(): void public function testNestedConfigScopeChangesAndRestoresRoundTripLikeAStack(): void { $service = new SiteAccessService( - $this->createStub(SiteAccessProviderInterface::class), - $this->createStub(ConfigResolverInterface::class) + self::createStub(SiteAccessProviderInterface::class), + self::createStub(ConfigResolverInterface::class) ); $baseSiteAccess = new SiteAccess('base'); @@ -160,7 +160,7 @@ public function testGetSiteAccess(): void ); $service = new SiteAccessService( $staticSiteAccessProvider, - $this->createMock(ConfigResolverInterface::class) + self::createStub(ConfigResolverInterface::class) ); self::assertEquals( @@ -177,7 +177,7 @@ public function testGetSiteAccessThrowsNotFoundException(): void ); $service = new SiteAccessService( $staticSiteAccessProvider, - $this->createMock(ConfigResolverInterface::class) + self::createStub(ConfigResolverInterface::class) ); $this->expectException(NotFoundException::class); diff --git a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php index 5fbbe15c7f..ba8e99da44 100644 --- a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php +++ b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php @@ -25,8 +25,8 @@ class GlobalHelperTest extends TestCase /** @var \Ibexa\Core\MVC\Symfony\Templating\GlobalHelper */ protected $helper; - /** @var \PHPUnit\Framework\MockObject\MockObject */ - protected $container; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\DependencyInjection\ContainerInterface */ + protected \PHPUnit\Framework\MockObject\Stub $container; /** @var \PHPUnit\Framework\MockObject\MockObject */ protected $locationService; @@ -44,7 +44,7 @@ protected function setUp(): void { parent::setUp(); - $this->container = $this->createMock(ContainerInterface::class); + $this->container = self::createStub(ContainerInterface::class); $this->locationService = $this->createMock(LocationService::class); $this->configResolver = $this->createMock(ConfigResolverInterface::class); $this->router = $this->createMock(RouterInterface::class); @@ -56,7 +56,7 @@ public function testGetSiteaccess() { $request = new Request(); $requestStack = new RequestStack([$request]); - $siteAccess = $this->createMock(SiteAccess::class); + $siteAccess = self::createStub(SiteAccess::class); $request->attributes->set('siteaccess', $siteAccess); $this->helper->setRequestStack($requestStack); diff --git a/tests/lib/MVC/Symfony/Templating/RenderContentStrategyTest.php b/tests/lib/MVC/Symfony/Templating/RenderContentStrategyTest.php index 50eb8b22b9..a99c8e85a9 100644 --- a/tests/lib/MVC/Symfony/Templating/RenderContentStrategyTest.php +++ b/tests/lib/MVC/Symfony/Templating/RenderContentStrategyTest.php @@ -48,7 +48,7 @@ public function testDefaultFragmentRenderer(): void 'inline' ); - $contentMock = $this->createMock(Content::class); + $contentMock = self::createStub(Content::class); self::assertTrue($renderContentStrategy->supports($contentMock)); self::assertSame( @@ -64,7 +64,7 @@ public function testUnknownFragmentRenderer(): void [], ); - $contentMock = $this->createMock(Content::class); + $contentMock = self::createStub(Content::class); self::assertTrue($renderContentStrategy->supports($contentMock)); $this->expectException(InvalidArgumentException::class); @@ -82,7 +82,7 @@ public function testMultipleFragmentRenderers(): void ], ); - $contentMock = $this->createMock(Content::class); + $contentMock = self::createStub(Content::class); self::assertTrue($renderContentStrategy->supports($contentMock)); self::assertSame( @@ -112,7 +112,7 @@ public function testDuplicatedFragmentRenderers(): void ], ); - $contentMock = $this->createMock(Content::class); + $contentMock = self::createStub(Content::class); self::assertTrue($renderContentStrategy->supports($contentMock)); self::assertSame( diff --git a/tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php b/tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php index 08bd48ede7..a49135742c 100644 --- a/tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php +++ b/tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php @@ -48,7 +48,7 @@ public function testDefaultFragmentRenderer(): void 'inline' ); - $locationMock = $this->createMock(Location::class); + $locationMock = self::createStub(Location::class); self::assertTrue($renderLocationStrategy->supports($locationMock)); self::assertSame( @@ -64,7 +64,7 @@ public function testUnknownFragmentRenderer(): void [], ); - $locationMock = $this->createMock(Location::class); + $locationMock = self::createStub(Location::class); self::assertTrue($renderLocationStrategy->supports($locationMock)); $this->expectException(InvalidArgumentException::class); @@ -82,7 +82,7 @@ public function testMultipleFragmentRenderers(): void ], ); - $locationMock = $this->createMock(Location::class); + $locationMock = self::createStub(Location::class); self::assertTrue($renderLocationStrategy->supports($locationMock)); self::assertSame( diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/ContentExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/ContentExtensionTest.php index 34f47505af..bb0c3300e0 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/ContentExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/ContentExtensionTest.php @@ -45,9 +45,9 @@ public function getExtensions(): array $this->getRepositoryMock(), new TranslationHelper( $configResolver, - $this->createMock(ContentService::class), + self::createStub(ContentService::class), [], - $this->createMock(LoggerInterface::class) + self::createStub(LoggerInterface::class) ), $this->fieldHelperMock, $this->getFieldsGroupsListMock() diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/DataAttributesExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/DataAttributesExtensionTest.php index 7a48b05db1..e64d51445f 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/DataAttributesExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/DataAttributesExtensionTest.php @@ -20,7 +20,7 @@ public function getExtensions(): array ]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/filters'; } diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/FieldRenderingExtensionIntegrationTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/FieldRenderingExtensionIntegrationTest.php index a67f2a1769..29b36ab4b4 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/FieldRenderingExtensionIntegrationTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/FieldRenderingExtensionIntegrationTest.php @@ -35,11 +35,10 @@ class FieldRenderingExtensionIntegrationTest extends FileSystemTwigIntegrationTe public function getExtensions(): array { $configResolver = $this->getConfigResolverMock(); - $twig = $this->createMock(Environment::class); $resourceProvider = $this->getResourceProviderMock(); $fieldBlockRenderer = new FieldBlockRenderer( - $twig, + self::createStub(Environment::class), $resourceProvider, $this->getTemplatePath('base.html.twig') ); @@ -47,12 +46,12 @@ public function getExtensions(): array return [ new FieldRenderingExtension( $fieldBlockRenderer, - $this->createMock(ParameterProviderRegistryInterface::class), + self::createStub(ParameterProviderRegistryInterface::class), new TranslationHelper( $configResolver, - $this->createMock(ContentService::class), + self::createStub(ContentService::class), [], - $this->createMock(LoggerInterface::class) + self::createStub(LoggerInterface::class) ) ), ]; diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php index da79e8c9ee..9c1f8ea3dc 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php @@ -71,7 +71,7 @@ protected function getExtensions() ]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/functions/ibexa_file_size'; } diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/RenderExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/RenderExtensionTest.php index 1de91a5351..4c22941c5c 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/RenderExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/RenderExtensionTest.php @@ -55,7 +55,7 @@ protected function getExtensions(): array ]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/render'; } diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php index 9a5829ba48..3eeda21e2c 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php @@ -38,7 +38,7 @@ protected function getExtensions(): array ]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/routing_functions'; } @@ -89,7 +89,7 @@ protected function getExampleUnsupportedObject(): object private function getRouteReferenceGenerator(): RouteReferenceGeneratorInterface { $generator = new RouteReferenceGenerator( - $this->createMock(EventDispatcherInterface::class) + self::createStub(EventDispatcherInterface::class) ); $request = new Request(); $requestStack = new RequestStack([$request]); diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserExtensionTest.php index 4c7aeef798..19be4dde71 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserExtensionTest.php @@ -76,7 +76,7 @@ public function getUser(int $id, bool $isCurrent = false): User return $this->users[$id]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/user_functions'; } diff --git a/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserPreferenceExtensionTest.php b/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserPreferenceExtensionTest.php index 4430dd47df..b838ff7b67 100644 --- a/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserPreferenceExtensionTest.php +++ b/tests/lib/MVC/Symfony/Templating/Twig/Extension/UserPreferenceExtensionTest.php @@ -45,7 +45,7 @@ public function load(string $class): ?RuntimeExtensionInterface ]; } - protected function getFixturesDir(): string + protected static function getFixturesDirectory(): string { return __DIR__ . '/_fixtures/user_preference_functions'; } diff --git a/tests/lib/MVC/Symfony/Translation/BaseMessageExtractorPhpFileVisitorTestCase.php b/tests/lib/MVC/Symfony/Translation/BaseMessageExtractorPhpFileVisitorTestCase.php index f2543a0fc0..de1df8c975 100644 --- a/tests/lib/MVC/Symfony/Translation/BaseMessageExtractorPhpFileVisitorTestCase.php +++ b/tests/lib/MVC/Symfony/Translation/BaseMessageExtractorPhpFileVisitorTestCase.php @@ -14,6 +14,7 @@ use JMS\TranslationBundle\Translation\FileSourceFactory; use PhpParser\Parser; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use SplFileInfo; @@ -45,10 +46,9 @@ protected function setUp(): void } /** - * @dataProvider getDataForTestExtractTranslation - * * @param array<\JMS\TranslationBundle\Model\Message> $expectedMessages */ + #[DataProvider('getDataForTestExtractTranslation')] public function testExtractTranslation(string $phpFileName, array $expectedMessages): void { $messageCatalogue = new MessageCatalogue(); diff --git a/tests/lib/MVC/Symfony/Translation/ExceptionMessageTemplateFileVisitorTest.php b/tests/lib/MVC/Symfony/Translation/ExceptionMessageTemplateFileVisitorTest.php index d09c4b643c..85f735750e 100644 --- a/tests/lib/MVC/Symfony/Translation/ExceptionMessageTemplateFileVisitorTest.php +++ b/tests/lib/MVC/Symfony/Translation/ExceptionMessageTemplateFileVisitorTest.php @@ -15,12 +15,11 @@ use JMS\TranslationBundle\Model\MessageCatalogue; use JMS\TranslationBundle\Translation\Extractor\FileVisitorInterface; use JMS\TranslationBundle\Translation\FileSourceFactory; +use PHPUnit\Framework\Attributes\CoversClass; use Psr\Log\LoggerInterface; use SplFileInfo; -/** - * @covers \Ibexa\Core\MVC\Symfony\Translation\ExceptionMessageTemplateFileVisitor - */ +#[CoversClass(ExceptionMessageTemplateFileVisitor::class)] final class ExceptionMessageTemplateFileVisitorTest extends BaseMessageExtractorPhpFileVisitorTestCase { public static function getDataForTestExtractTranslation(): iterable diff --git a/tests/lib/MVC/Symfony/Translation/TranslatableExceptionsFileVisitorTest.php b/tests/lib/MVC/Symfony/Translation/TranslatableExceptionsFileVisitorTest.php index 88fa94ac16..49c5735f04 100644 --- a/tests/lib/MVC/Symfony/Translation/TranslatableExceptionsFileVisitorTest.php +++ b/tests/lib/MVC/Symfony/Translation/TranslatableExceptionsFileVisitorTest.php @@ -13,10 +13,9 @@ use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\Extractor\FileVisitorInterface; use JMS\TranslationBundle\Translation\FileSourceFactory; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\MVC\Symfony\Translation\TranslatableExceptionsFileVisitor - */ +#[CoversClass(TranslatableExceptionsFileVisitor::class)] final class TranslatableExceptionsFileVisitorTest extends BaseMessageExtractorPhpFileVisitorTestCase { public static function getDataForTestExtractTranslation(): iterable diff --git a/tests/lib/MVC/Symfony/Translation/ValidationErrorFileVisitorTest.php b/tests/lib/MVC/Symfony/Translation/ValidationErrorFileVisitorTest.php index 9dbc44e9a3..59e261df3f 100644 --- a/tests/lib/MVC/Symfony/Translation/ValidationErrorFileVisitorTest.php +++ b/tests/lib/MVC/Symfony/Translation/ValidationErrorFileVisitorTest.php @@ -13,10 +13,9 @@ use JMS\TranslationBundle\Model\Message; use JMS\TranslationBundle\Translation\Extractor\FileVisitorInterface; use JMS\TranslationBundle\Translation\FileSourceFactory; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\MVC\Symfony\Translation\ValidationErrorFileVisitor - */ +#[CoversClass(ValidationErrorFileVisitor::class)] final class ValidationErrorFileVisitorTest extends BaseMessageExtractorPhpFileVisitorTestCase { /** diff --git a/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php b/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php index f76a3fceb9..62bb2070c7 100644 --- a/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php +++ b/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php @@ -11,11 +11,12 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\MVC\Symfony\View\View; use InvalidArgumentException; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\MVC\Symfony\View\View - */ +#[CoversClass(View::class)] abstract class AbstractViewTestCase extends TestCase { abstract protected function createViewUnderTest($template = null, array $parameters = [], $viewType = 'full'): View; @@ -64,9 +65,7 @@ public function testHasParameter(): View return $view; } - /** - * @depends testHasParameter - */ + #[Depends('testHasParameter')] public function testGetParameter(View $view): View { self::assertSame('bar', $view->getParameter('foo')); @@ -74,9 +73,7 @@ public function testGetParameter(View $view): View return $view; } - /** - * @depends testGetParameter - */ + #[Depends('testGetParameter')] public function testGetParameterFail(View $view): void { $this->expectException(InvalidArgumentException::class); @@ -85,10 +82,9 @@ public function testGetParameterFail(View $view): void } /** - * @dataProvider goodTemplateIdentifierProvider - * * @param string|callable $templateIdentifier */ + #[DataProvider('goodTemplateIdentifierProvider')] public function testSetTemplateIdentifier($templateIdentifier): void { $contentView = $this->createViewUnderTest(); @@ -97,7 +93,7 @@ public function testSetTemplateIdentifier($templateIdentifier): void self::assertSame($templateIdentifier, $contentView->getTemplateIdentifier()); } - public function goodTemplateIdentifierProvider(): array + public static function goodTemplateIdentifierProvider(): array { return [ ['foo:bar:baz.html.twig'], @@ -110,10 +106,9 @@ static function (): string { } /** - * @dataProvider badTemplateIdentifierProvider - * * @param mixed $badTemplateIdentifier */ + #[DataProvider('badTemplateIdentifierProvider')] public function testSetTemplateIdentifierWrongType($badTemplateIdentifier): void { $this->expectException(InvalidArgumentType::class); @@ -122,7 +117,7 @@ public function testSetTemplateIdentifierWrongType($badTemplateIdentifier): void $contentView->setTemplateIdentifier($badTemplateIdentifier); } - public function badTemplateIdentifierProvider(): array + public static function badTemplateIdentifierProvider(): array { return [ [123], diff --git a/tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php b/tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php index 3087f377a2..7085d1070b 100644 --- a/tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php +++ b/tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php @@ -25,15 +25,14 @@ use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use ReflectionClass; use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; -/** - * @group mvc - */ +#[Group('mvc')] class ContentViewBuilderTest extends TestCase { private const int EXAMPLE_LOCATION_ID = 743; @@ -64,7 +63,7 @@ protected function setUp(): void $this->repository = $this ->getMockBuilder(Repository::class) ->disableOriginalConstructor() - ->setMethods([ + ->onlyMethods([ 'sudo', 'getPermissionResolver', 'getLocationService', @@ -215,12 +214,7 @@ public function testBuildEmbedViewWithoutContentViewEmbedPermission(): void ->willReturn($location); $this->permissionResolver - ->expects(self::at(0)) - ->method('canUser') - ->willReturn(false); - - $this->permissionResolver - ->expects(self::at(1)) + ->expects(self::exactly(2)) ->method('canUser') ->willReturn(false); @@ -342,7 +336,7 @@ public function testBuildViewWithContentWhichDoesNotBelongToLocation(): void ->willReturn($location); $this->permissionResolver - ->expects(self::at(0)) + ->expects(self::once()) ->method('canUser') ->willReturn(true); @@ -424,7 +418,7 @@ public function testBuildView(): void ->willReturn($location); $this->permissionResolver - ->expects(self::at(0)) + ->expects(self::once()) ->method('canUser') ->willReturn(true); diff --git a/tests/lib/MVC/Symfony/View/ContentViewTest.php b/tests/lib/MVC/Symfony/View/ContentViewTest.php index 3e353ef587..b0ef19890c 100644 --- a/tests/lib/MVC/Symfony/View/ContentViewTest.php +++ b/tests/lib/MVC/Symfony/View/ContentViewTest.php @@ -11,12 +11,12 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\MVC\Symfony\View\ContentView; use Ibexa\Core\MVC\Symfony\View\View; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @group mvc - * - * @covers \Ibexa\Core\MVC\Symfony\View\ContentView - */ +#[CoversClass(ContentView::class)] +#[Group('mvc')] class ContentViewTest extends AbstractViewTestCase { /** @@ -26,9 +26,7 @@ class ContentViewTest extends AbstractViewTestCase */ private $valueParams = ['content' => null]; - /** - * @dataProvider constructProvider - */ + #[DataProvider('constructProvider')] public function testConstruct($templateIdentifier, array $params) { $contentView = new ContentView($templateIdentifier, $params); @@ -36,7 +34,7 @@ public function testConstruct($templateIdentifier, array $params) self::assertSame($this->valueParams + $params, $contentView->getParameters()); } - public function constructProvider() + public static function constructProvider() { return [ ['some:valid:identifier', ['foo' => 'bar']], @@ -57,9 +55,7 @@ static function (): bool { ]; } - /** - * @dataProvider constructFailProvider - */ + #[DataProvider('constructFailProvider')] public function testConstructFail($templateIdentifier) { $this->expectException(InvalidArgumentType::class); @@ -67,7 +63,7 @@ public function testConstructFail($templateIdentifier) new ContentView($templateIdentifier); } - public function constructFailProvider() + public static function constructFailProvider() { return [ [123], diff --git a/tests/lib/MVC/Symfony/View/LoginFormViewTest.php b/tests/lib/MVC/Symfony/View/LoginFormViewTest.php index 6dbebcaf38..a2f21931ad 100644 --- a/tests/lib/MVC/Symfony/View/LoginFormViewTest.php +++ b/tests/lib/MVC/Symfony/View/LoginFormViewTest.php @@ -10,11 +10,10 @@ use Ibexa\Core\MVC\Symfony\View\LoginFormView; use Ibexa\Core\MVC\Symfony\View\View; +use PHPUnit\Framework\Attributes\Group; use Symfony\Component\Security\Core\Exception\AuthenticationException; -/** - * @group mvc - */ +#[Group('mvc')] final class LoginFormViewTest extends AbstractViewTestCase { public function testSetLastUsername(): void @@ -28,7 +27,7 @@ public function testSetLastUsername(): void public function testSetLastAuthenticationError(): void { - $exception = $this->createMock(AuthenticationException::class); + $exception = self::createStub(AuthenticationException::class); /** @var \Ibexa\Core\MVC\Symfony\View\LoginFormView $view */ $view = $this->createViewUnderTest(); diff --git a/tests/lib/MVC/Symfony/View/ViewManagerTest.php b/tests/lib/MVC/Symfony/View/ViewManagerTest.php index 0d5935bb4a..bed57a692f 100644 --- a/tests/lib/MVC/Symfony/View/ViewManagerTest.php +++ b/tests/lib/MVC/Symfony/View/ViewManagerTest.php @@ -18,13 +18,12 @@ use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Twig\Environment; -/** - * @group mvc - */ +#[Group('mvc')] class ViewManagerTest extends TestCase { /** @var \Ibexa\Core\MVC\Symfony\View\Manager */ @@ -33,8 +32,8 @@ class ViewManagerTest extends TestCase /** @var \PHPUnit\Framework\MockObject\MockObject|\Twig\Environment */ private $templateEngineMock; - /** @var \PHPUnit\Framework\MockObject\MockObject|\Symfony\Component\EventDispatcher\EventDispatcherInterface */ - private $eventDispatcherMock; + /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\EventDispatcher\EventDispatcherInterface */ + private \PHPUnit\Framework\MockObject\Stub $eventDispatcherMock; /** @var \PHPUnit\Framework\MockObject\MockObject|\Ibexa\Contracts\Core\Repository\Repository */ private $repositoryMock; @@ -51,7 +50,7 @@ protected function setUp(): void { parent::setUp(); $this->templateEngineMock = $this->createMock(Environment::class); - $this->eventDispatcherMock = $this->createMock(EventDispatcherInterface::class); + $this->eventDispatcherMock = self::createStub(EventDispatcherInterface::class); $this->repositoryMock = $this->createMock(Repository::class); $this->configResolverMock = $this->createMock(ConfigResolverInterface::class); $this->viewConfigurator = $this->createMock(Configurator::class); diff --git a/tests/lib/Notification/Renderer/RegistryTest.php b/tests/lib/Notification/Renderer/RegistryTest.php index 8e26bf154d..178c58423b 100644 --- a/tests/lib/Notification/Renderer/RegistryTest.php +++ b/tests/lib/Notification/Renderer/RegistryTest.php @@ -52,7 +52,7 @@ public function getTypeLabel(): string } }; - $nonTypedRenderer = $this->createMock(NotificationRenderer::class); + $nonTypedRenderer = self::createStub(NotificationRenderer::class); $registry = new Registry(); $registry->addRenderer('z_type', $typedRendererB); diff --git a/tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php b/tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php index a0e2be28d9..06caec719e 100644 --- a/tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php +++ b/tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php @@ -17,6 +17,7 @@ use Ibexa\Core\Pagination\Pagerfanta\ContentSearchHitAdapter; use Ibexa\Core\Pagination\Pagerfanta\FixedSearchResultHitAdapter; use Ibexa\Core\Pagination\Pagerfanta\LocationSearchHitAdapter; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class SearchHitAdapterFactoryTest extends TestCase @@ -65,9 +66,7 @@ public function testCreateAdapterForLocationQuery(): void ); } - /** - * @dataProvider dataProviderForCreateFixedAdapter - */ + #[DataProvider('dataProviderForCreateFixedAdapter')] public function testCreateFixedAdapter(Query $query, string $expectedSearchMethod): void { $hits = [ @@ -93,7 +92,7 @@ public function testCreateFixedAdapter(Query $query, string $expectedSearchMetho ); } - public function dataProviderForCreateFixedAdapter(): iterable + public static function dataProviderForCreateFixedAdapter(): iterable { yield 'content query' => [ new Query(), diff --git a/tests/lib/Pagination/BaseContentSearchResultAdapterTestCase.php b/tests/lib/Pagination/BaseContentSearchResultAdapterTestCase.php index 60be3dbbb2..9355ebd537 100644 --- a/tests/lib/Pagination/BaseContentSearchResultAdapterTestCase.php +++ b/tests/lib/Pagination/BaseContentSearchResultAdapterTestCase.php @@ -63,7 +63,7 @@ protected function mockSearchHitsForGetSlice( for ($i = 0; $i < self::EXAMPLE_LIMIT; ++$i) { $hits[] = new SearchHit( [ - 'valueObject' => $this->createMock(APIContent::class), + 'valueObject' => self::createStub(APIContent::class), ] ); } diff --git a/tests/lib/Pagination/BaseLocationSearchResultAdapterTestCase.php b/tests/lib/Pagination/BaseLocationSearchResultAdapterTestCase.php index 3453dc8791..d13e5c67c5 100644 --- a/tests/lib/Pagination/BaseLocationSearchResultAdapterTestCase.php +++ b/tests/lib/Pagination/BaseLocationSearchResultAdapterTestCase.php @@ -68,7 +68,7 @@ protected function mockSearchHitsForGetSlice( for ($i = 0; $i < self::EXAMPLE_LIMIT; ++$i) { $hits[] = new SearchHit( [ - 'valueObject' => $this->createMock(APILocation::class), + 'valueObject' => self::createStub(APILocation::class), ] ); } diff --git a/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php b/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php index 92e1935347..5dc2e97285 100644 --- a/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php +++ b/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php @@ -8,20 +8,29 @@ namespace Ibexa\Tests\Core\Persistence\Cache; +use PHPUnit\Framework\Attributes\DataProvider; + /** * Abstract test case for spi cache impl. */ abstract class AbstractCacheHandlerTestCase extends AbstractBaseHandlerTestCase { + /** + * Sentinel method name yielded by {@see providerForCachedLoadMethodsHit()}/ + * {@see providerForCachedLoadMethodsMiss()} implementations that legitimately have no cached + * load methods to test; PHPUnit 11 treats an empty data provider as a hard error, so a single + * sentinel row is yielded instead and the two consuming test methods skip immediately when + * they see it. + */ + protected const NO_DATA_METHOD = '__no_data__'; + abstract public function getHandlerMethodName(): string; abstract public function getHandlerClassName(): string; - abstract public function providerForUnCachedMethods(): array; + abstract public static function providerForUnCachedMethods(): array; /** - * @dataProvider providerForUnCachedMethods - * * @param string $method * @param array $arguments * @param array|null $tagGeneratingArguments @@ -30,6 +39,7 @@ abstract public function providerForUnCachedMethods(): array; * @param string|array|null $key * @param mixed $returnValue */ + #[DataProvider('providerForUnCachedMethods')] final public function testUnCachedMethods( string $method, array $arguments, @@ -62,22 +72,30 @@ final public function testUnCachedMethods( if ($tags || $key) { if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tags); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tags) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tags[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { $callsCount = count($keyGeneratingArguments); if (is_array($key)) { + $matcher = self::exactly($callsCount); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly($callsCount)) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$key); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $key) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $key[$matcher->numberOfInvocations() - 1]; + }); } else { $this->cacheIdentifierGeneratorMock ->expects(self::exactly($callsCount)) @@ -109,11 +127,9 @@ final public function testUnCachedMethods( self::assertEquals($returnValue, $actualReturnValue); } - abstract public function providerForCachedLoadMethodsHit(): array; + abstract public static function providerForCachedLoadMethodsHit(): array; /** - * @dataProvider providerForCachedLoadMethodsHit - * * @param string $method * @param array $arguments * @param string $key @@ -125,6 +141,7 @@ abstract public function providerForCachedLoadMethodsHit(): array; * @param bool $multi Default false, set to true if method will lookup several cache items. * @param array $additionalCalls Sets of additional calls being made to handlers, with 4 values (0: handler name, 1: handler class, 2: method, 3: return data) */ + #[DataProvider('providerForCachedLoadMethodsHit')] final public function testLoadMethodsCacheHit( string $method, array $arguments, @@ -137,25 +154,37 @@ final public function testLoadMethodsCacheHit( bool $multi = false, array $additionalCalls = [] ) { + if ($method === self::NO_DATA_METHOD) { + self::markTestSkipped('No cached load methods for this handler.'); + } + $cacheItem = $this->getCacheItem($key, $multi ? reset($data) : $data); $handlerMethodName = $this->getHandlerMethodName(); $this->loggerMock->expects(self::never())->method('logCall'); if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tagGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tagGeneratingResults) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tagGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { + $matcher = self::exactly(count($keyGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($keyGeneratingArguments))) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$keyGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $keyGeneratingResults) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $keyGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($multi) { @@ -188,11 +217,9 @@ final public function testLoadMethodsCacheHit( self::assertEquals($data, $return); } - abstract public function providerForCachedLoadMethodsMiss(): array; + abstract public static function providerForCachedLoadMethodsMiss(): array; /** - * @dataProvider providerForCachedLoadMethodsMiss - * * @param string $method * @param array $arguments * @param string $key @@ -204,6 +231,7 @@ abstract public function providerForCachedLoadMethodsMiss(): array; * @param bool $multi Default false, set to true if method will lookup several cache items. * @param array $additionalCalls Sets of additional calls being made to handlers, with 4 values (0: handler name, 1: handler class, 2: method, 3: return data) */ + #[DataProvider('providerForCachedLoadMethodsMiss')] final public function testLoadMethodsCacheMiss( string $method, array $arguments, @@ -216,6 +244,10 @@ final public function testLoadMethodsCacheMiss( bool $multi = false, array $additionalCalls = [] ) { + if ($method === self::NO_DATA_METHOD) { + self::markTestSkipped('No cached load methods for this handler.'); + } + $cacheItem = $this->getCacheItem($key, null); $handlerMethodName = $this->getHandlerMethodName(); @@ -223,22 +255,30 @@ final public function testLoadMethodsCacheMiss( $this->loggerMock ->expects(self::once()) ->method('logCall') - ->with(get_class($handler) . '::' . $method, self::isType('array')); + ->with(get_class($handler) . '::' . $method, self::isArray()); if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tagGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tagGeneratingResults) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tagGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { + $matcher = self::exactly(count($keyGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($keyGeneratingArguments))) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$keyGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $keyGeneratingResults) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $keyGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($multi) { diff --git a/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php b/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php index 8d9e394b2b..02f306bb76 100644 --- a/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php +++ b/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php @@ -8,6 +8,8 @@ namespace Ibexa\Tests\Core\Persistence\Cache; +use PHPUnit\Framework\Attributes\DataProvider; + /** * Abstract test case for spi cache impl, with in-memory handling. */ @@ -17,11 +19,9 @@ abstract public function getHandlerMethodName(): string; abstract public function getHandlerClassName(): string; - abstract public function providerForUnCachedMethods(): array; + abstract public static function providerForUnCachedMethods(): array; /** - * @dataProvider providerForUnCachedMethods - * * @param string $method * @param array $arguments * @param array|null $tagGeneratingArguments @@ -30,6 +30,7 @@ abstract public function providerForUnCachedMethods(): array; * @param array|null $key * @param mixed $returnValue */ + #[DataProvider('providerForUnCachedMethods')] final public function testUnCachedMethods( string $method, array $arguments, @@ -63,22 +64,30 @@ final public function testUnCachedMethods( if ($tags || $key) { if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tags); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tags) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tags[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { $callsCount = count($keyGeneratingArguments); if (is_array($key)) { + $matcher = self::exactly($callsCount); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly($callsCount)) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$key); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $key) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $key[$matcher->numberOfInvocations() - 1]; + }); } else { $this->cacheIdentifierGeneratorMock ->expects(self::exactly($callsCount)) @@ -109,11 +118,9 @@ final public function testUnCachedMethods( self::assertEquals($returnValue, $actualReturnValue); } - abstract public function providerForCachedLoadMethodsHit(): array; + abstract public static function providerForCachedLoadMethodsHit(): array; /** - * @dataProvider providerForCachedLoadMethodsHit - * * @param string $method * @param array $arguments * @param string $key @@ -125,6 +132,7 @@ abstract public function providerForCachedLoadMethodsHit(): array; * @param bool $multi Default false, set to true if method will lookup several cache items. * @param array $additionalCalls Sets of additional calls being made to handlers, with 4 values (0: handler name, 1: handler class, 2: method, 3: return data) */ + #[DataProvider('providerForCachedLoadMethodsHit')] final public function testLoadMethodsCacheHit( string $method, array $arguments, @@ -145,19 +153,27 @@ final public function testLoadMethodsCacheHit( $this->loggerMock->expects(self::never())->method('logCacheMiss'); if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tagGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tagGeneratingResults) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tagGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { + $matcher = self::exactly(count($keyGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($keyGeneratingArguments))) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$keyGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $keyGeneratingResults) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $keyGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($multi) { @@ -190,11 +206,9 @@ final public function testLoadMethodsCacheHit( self::assertEquals($data, $return); } - abstract public function providerForCachedLoadMethodsMiss(): array; + abstract public static function providerForCachedLoadMethodsMiss(): array; /** - * @dataProvider providerForCachedLoadMethodsMiss - * * @param string $method * @param array $arguments * @param string $key @@ -206,6 +220,7 @@ abstract public function providerForCachedLoadMethodsMiss(): array; * @param bool $multi Default false, set to true if method will lookup several cache items. * @param array $additionalCalls Sets of additional calls being made to handlers, with 4 values (0: handler name, 1: handler class, 2: method, 3: return data) */ + #[DataProvider('providerForCachedLoadMethodsMiss')] final public function testLoadMethodsCacheMiss( string $method, array $arguments, @@ -226,19 +241,27 @@ final public function testLoadMethodsCacheMiss( $this->loggerMock->expects(self::never())->method('logCacheHit'); if ($tagGeneratingArguments) { + $matcher = self::exactly(count($tagGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tagGeneratingArguments))) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...$tagGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$tagGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $tagGeneratingArguments, $tagGeneratingResults) { + $this->assertEquals($tagGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $tagGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($keyGeneratingArguments) { + $matcher = self::exactly(count($keyGeneratingArguments)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($keyGeneratingArguments))) + ->expects($matcher) ->method('generateKey') - ->withConsecutive(...$keyGeneratingArguments) - ->willReturnOnConsecutiveCalls(...$keyGeneratingResults); + ->willReturnCallback(function (...$parameters) use ($matcher, $keyGeneratingArguments, $keyGeneratingResults) { + $this->assertEquals($keyGeneratingArguments[$matcher->numberOfInvocations() - 1], $parameters); + + return $keyGeneratingResults[$matcher->numberOfInvocations() - 1]; + }); } if ($multi) { diff --git a/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php b/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php index a27674cb6d..9b59c010e4 100644 --- a/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php +++ b/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php @@ -10,6 +10,7 @@ use Ibexa\Core\Persistence\Cache\Adapter\TransactionalInMemoryCacheAdapter; use Ibexa\Core\Persistence\Cache\InMemory\InMemoryCache; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface; use Symfony\Component\Cache\CacheItem; @@ -145,9 +146,7 @@ public function testHasItem() self::assertTrue($this->cache->hasItem('first')); } - /** - * @dataProvider providerForDelete - */ + #[DataProvider('providerForDelete')] public function testDelete(string $method, $argument) { $this->innerPool @@ -165,7 +164,7 @@ public function testDelete(string $method, $argument) self::assertTrue($this->cache->$method($argument)); } - public function providerForDelete(): array + public static function providerForDelete(): array { return [ ['deleteItem', 'first'], @@ -176,9 +175,8 @@ public function providerForDelete(): array /** * Test for clear and invalidateTags as both expects a clear to in-memory as it on purpose does not track tags. - * - * @dataProvider providerForClearAndInvalidation */ + #[DataProvider('providerForClearAndInvalidation')] public function testClearAndInvalidation(string $method, $argument) { if ($argument) { @@ -202,7 +200,7 @@ public function testClearAndInvalidation(string $method, $argument) self::assertTrue($this->cache->$method($argument)); } - public function providerForClearAndInvalidation(): array + public static function providerForClearAndInvalidation(): array { return [ ['invalidateTags', ['my_tag']], diff --git a/tests/lib/Persistence/Cache/BookmarkHandlerTest.php b/tests/lib/Persistence/Cache/BookmarkHandlerTest.php index 973ea7d2c2..4b8351b708 100644 --- a/tests/lib/Persistence/Cache/BookmarkHandlerTest.php +++ b/tests/lib/Persistence/Cache/BookmarkHandlerTest.php @@ -29,7 +29,7 @@ public function getHandlerClassName(): string return SPIBookmarkHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? tags, array? $tags, string? $key, mixed? $returnValue return [ @@ -41,7 +41,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $bookmark = new Bookmark([ 'id' => 1, @@ -68,7 +68,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $bookmark = new Bookmark([ 'id' => 1, diff --git a/tests/lib/Persistence/Cache/ContentHandlerTest.php b/tests/lib/Persistence/Cache/ContentHandlerTest.php index 6c89b8e30c..ef89319501 100644 --- a/tests/lib/Persistence/Cache/ContentHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentHandlerTest.php @@ -19,10 +19,9 @@ use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Persistence\Cache\ContentHandler; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Cache\ContentHandler - */ +#[CoversClass(ContentHandler::class)] class ContentHandlerTest extends AbstractInMemoryCacheHandlerTestCase { public function getHandlerMethodName(): string @@ -38,7 +37,7 @@ public function getHandlerClassName(): string /** * @return array */ - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -78,7 +77,7 @@ public function providerForUnCachedMethods(): array /** * @return array */ - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $info = new ContentInfo(['id' => 2]); $version = new VersionInfo(['versionNo' => 1, 'contentInfo' => $info]); @@ -123,7 +122,7 @@ public function providerForCachedLoadMethodsHit(): array /** * @return array */ - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $info = new ContentInfo([ 'id' => 2, @@ -466,15 +465,26 @@ public function testDeleteContent() $this->cacheMock ->expects(self::never()) ->method('deleteItem'); + $matcher = self::exactly(2); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(2)) - ->method('generateTag') - ->withConsecutive( - ['content', [42], false], - ['content', [2], false] - ) - ->willReturnOnConsecutiveCalls('c-42', 'c-2'); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([42], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-42'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([2], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-2'; + } + }); $this->cacheMock ->expects(self::once()) diff --git a/tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php b/tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php index cd931f0693..01e555f108 100644 --- a/tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php @@ -26,7 +26,7 @@ public function getHandlerClassName(): string return Handler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $language = new SPILanguage(['id' => 5, 'languageCode' => 'eng-GB']); @@ -66,7 +66,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $object = new SPILanguage(['id' => 5, 'languageCode' => 'eng-GB']); @@ -80,7 +80,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $object = new SPILanguage(['id' => 5, 'languageCode' => 'eng-GB']); diff --git a/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php b/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php index d6262aefd6..c6afa6b592 100644 --- a/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php @@ -34,7 +34,7 @@ public function getHandlerClassName(): string /** * @return array */ - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $groupUpdate = new SPITypeGroupUpdateStruct(['id' => 3, 'identifier' => 'media']); $typeUpdate = new SPITypeUpdateStruct(['identifier' => 'article', 'remoteId' => '34o9tj8394t']); @@ -181,7 +181,7 @@ public function providerForUnCachedMethods(): array /** * @return array */ - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $group = new SPITypeGroup(['id' => 3, 'identifier' => 'media']); $type = new SPIType(['id' => 5, 'identifier' => 'article', 'remoteId' => '34o9tj8394t']); @@ -238,7 +238,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $group = new SPITypeGroup(['id' => 3, 'identifier' => 'media']); $type = new SPIType(['id' => 5, 'identifier' => 'article', 'remoteId' => '34o9tj8394t']); @@ -425,34 +425,60 @@ public function testPublish() ->method($method) ->with(...$arguments) ->willReturn(null); + $matcher = self::exactly(3); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(3)) - ->method('generateTag') - ->withConsecutive( - ['type', [5], false], - ['type_map', [], false], - ['content_fields_type', [5], false] - ) - ->willReturnOnConsecutiveCalls( - 't-5', - 'tm', - 'cft-5' - ); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('type', $parameters[0]); + $this->assertSame([5], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 't-5'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('type_map', $parameters[0]); + $this->assertSame([], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'tm'; + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('content_fields_type', $parameters[0]); + $this->assertSame([5], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'cft-5'; + } + }); + $matcher = self::exactly(3); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(3)) - ->method('generateKey') - ->withConsecutive( - ['content_type', [], true], - ['content_type_list_by_group', [3], true], - ['content_type_list_by_group', [4], true] - ) - ->willReturnOnConsecutiveCalls( - 'ibx-ct', - 'ibx-ctlbg-3', - 'ibx-ctlbg-4' - ); + ->expects($matcher) + ->method('generateKey')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content_type', $parameters[0]); + $this->assertSame([], $parameters[1]); + $this->assertTrue($parameters[2]); + + return 'ibx-ct'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content_type_list_by_group', $parameters[0]); + $this->assertSame([3], $parameters[1]); + $this->assertTrue($parameters[2]); + + return 'ibx-ctlbg-3'; + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('content_type_list_by_group', $parameters[0]); + $this->assertSame([4], $parameters[1]); + $this->assertTrue($parameters[2]); + + return 'ibx-ctlbg-4'; + } + }); $this->cacheMock ->expects(!empty($tags) ? self::once() : self::never()) diff --git a/tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php b/tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php index dcc7eb690d..22f6aea252 100644 --- a/tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php +++ b/tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Core\Persistence\Cache\Identifier\CacheIdentifierGenerator; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -37,7 +38,7 @@ public function setUp(): void ); } - public function providerForTestGenerateTag(): array + public static function providerForTestGenerateTag(): array { return [ [['content', [], false], 'c'], @@ -46,7 +47,7 @@ public function providerForTestGenerateTag(): array ]; } - public function providerForTestGenerateTagThrowsInvalidArgumentException(): array + public static function providerForTestGenerateTagThrowsInvalidArgumentException(): array { return [ [['test', [], false], 'c'], @@ -54,7 +55,7 @@ public function providerForTestGenerateTagThrowsInvalidArgumentException(): arra ]; } - public function providerForTestGenerateKey(): array + public static function providerForTestGenerateKey(): array { return [ [['content_type', [], true], 'ibx-ct'], @@ -63,7 +64,7 @@ public function providerForTestGenerateKey(): array ]; } - public function providerForTestGenerateKeyThrowsInvalidArgumentException(): array + public static function providerForTestGenerateKeyThrowsInvalidArgumentException(): array { return [ [['test', [], false], 'c'], @@ -71,9 +72,7 @@ public function providerForTestGenerateKeyThrowsInvalidArgumentException(): arra ]; } - /** - * @dataProvider providerForTestGenerateTag - */ + #[DataProvider('providerForTestGenerateTag')] public function testGenerateTag(array $arguments, string $resultKey): void { self::assertEquals( @@ -82,9 +81,7 @@ public function testGenerateTag(array $arguments, string $resultKey): void ); } - /** - * @dataProvider providerForTestGenerateTagThrowsInvalidArgumentException - */ + #[DataProvider('providerForTestGenerateTagThrowsInvalidArgumentException')] public function testGenerateTagThrowsInvalidArgumentException(array $arguments, string $resultKey): void { $this->expectException(InvalidArgumentException::class); @@ -95,9 +92,7 @@ public function testGenerateTagThrowsInvalidArgumentException(array $arguments, ); } - /** - * @dataProvider providerForTestGenerateKey - */ + #[DataProvider('providerForTestGenerateKey')] public function testGenerateKey(array $arguments, string $resultKey): void { self::assertEquals( @@ -106,9 +101,7 @@ public function testGenerateKey(array $arguments, string $resultKey): void ); } - /** - * @dataProvider providerForTestGenerateKeyThrowsInvalidArgumentException - */ + #[DataProvider('providerForTestGenerateKeyThrowsInvalidArgumentException')] public function testGenerateKeyThrowsInvalidArgumentException(array $arguments, string $resultKey): void { $this->expectException(InvalidArgumentException::class); diff --git a/tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php b/tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php index 90f3c80055..78711619fc 100644 --- a/tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php +++ b/tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Core\Persistence\Cache\Identifier; use Ibexa\Core\Persistence\Cache\Identifier\CacheIdentifierSanitizer; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -24,7 +25,7 @@ public function setUp(): void $this->cacheIdentifierSanitizer = new CacheIdentifierSanitizer(); } - public function providerForTestEscapeCacheKey(): array + public static function providerForTestEscapeCacheKey(): array { return [ [['key'], 'key'], @@ -33,9 +34,7 @@ public function providerForTestEscapeCacheKey(): array ]; } - /** - * @dataProvider providerForTestEscapeCacheKey - */ + #[DataProvider('providerForTestEscapeCacheKey')] public function testEscapeCacheKey(array $arguments, string $resultKey): void { self::assertEquals( diff --git a/tests/lib/Persistence/Cache/LocationHandlerTest.php b/tests/lib/Persistence/Cache/LocationHandlerTest.php index aada9945ec..708d722aec 100644 --- a/tests/lib/Persistence/Cache/LocationHandlerTest.php +++ b/tests/lib/Persistence/Cache/LocationHandlerTest.php @@ -27,7 +27,7 @@ public function getHandlerClassName(): string return SPILocationHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -74,7 +74,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $location = new Location(['id' => 12]); @@ -133,7 +133,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $location = new Location( [ diff --git a/tests/lib/Persistence/Cache/LocationPathConverterTest.php b/tests/lib/Persistence/Cache/LocationPathConverterTest.php index 49acecf2dc..a62e424409 100644 --- a/tests/lib/Persistence/Cache/LocationPathConverterTest.php +++ b/tests/lib/Persistence/Cache/LocationPathConverterTest.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Core\Persistence\Cache; use Ibexa\Core\Persistence\Cache\LocationPathConverter; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -24,7 +25,7 @@ public function setUp(): void $this->locationPathConverter = new LocationPathConverter(); } - public function providerForTestConvertToPathIds(): array + public static function providerForTestConvertToPathIds(): array { return [ [[''], []], @@ -34,9 +35,7 @@ public function providerForTestConvertToPathIds(): array ]; } - /** - * @dataProvider providerForTestConvertToPathIds - */ + #[DataProvider('providerForTestConvertToPathIds')] public function testConvertToPathIds(array $arguments, array $resultArray): void { self::assertEquals( diff --git a/tests/lib/Persistence/Cache/NotificationHandlerTest.php b/tests/lib/Persistence/Cache/NotificationHandlerTest.php index c88509654e..995041d4b6 100644 --- a/tests/lib/Persistence/Cache/NotificationHandlerTest.php +++ b/tests/lib/Persistence/Cache/NotificationHandlerTest.php @@ -30,7 +30,7 @@ public function getHandlerClassName(): string return SPINotificationHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $ownerId = 7; $notificationId = 5; @@ -126,7 +126,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $notificationId = 5; $ownerId = 7; @@ -174,7 +174,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $notificationId = 5; $ownerId = 7; diff --git a/tests/lib/Persistence/Cache/ObjectStateHandlerTest.php b/tests/lib/Persistence/Cache/ObjectStateHandlerTest.php index ea950678aa..09384e1d17 100644 --- a/tests/lib/Persistence/Cache/ObjectStateHandlerTest.php +++ b/tests/lib/Persistence/Cache/ObjectStateHandlerTest.php @@ -27,7 +27,7 @@ public function getHandlerClassName(): string return SPIObjectStateHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -42,7 +42,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $group = new SPIObjectStateGroup(['id' => 5]); $state = new SPIObjectState(['id' => 7]); @@ -95,7 +95,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $group = new SPIObjectStateGroup(['id' => 5]); $state = new SPIObjectState([ diff --git a/tests/lib/Persistence/Cache/PersistenceHandlerTest.php b/tests/lib/Persistence/Cache/PersistenceHandlerTest.php index 27d057361d..a42fbc6ac3 100644 --- a/tests/lib/Persistence/Cache/PersistenceHandlerTest.php +++ b/tests/lib/Persistence/Cache/PersistenceHandlerTest.php @@ -9,12 +9,13 @@ use Ibexa\Contracts\Core\Persistence as SPIPersistence; use Ibexa\Core\Persistence\Cache; +use Ibexa\Core\Persistence\Cache\Handler; +use PHPUnit\Framework\Attributes\CoversClass; /** * Test case for Persistence\Cache\Handler. - * - * @covers \Ibexa\Core\Persistence\Cache\Handler */ +#[CoversClass(Handler::class)] class PersistenceHandlerTest extends AbstractBaseHandlerTestCase { public function testHandler() diff --git a/tests/lib/Persistence/Cache/PersistenceLoggerTest.php b/tests/lib/Persistence/Cache/PersistenceLoggerTest.php index d6f928cf64..987f887d8c 100644 --- a/tests/lib/Persistence/Cache/PersistenceLoggerTest.php +++ b/tests/lib/Persistence/Cache/PersistenceLoggerTest.php @@ -9,11 +9,11 @@ namespace Ibexa\Tests\Core\Persistence\Cache; use Ibexa\Core\Persistence\Cache\PersistenceLogger; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Cache\PersistenceLogger - */ +#[CoversClass(PersistenceLogger::class)] class PersistenceLoggerTest extends TestCase { protected PersistenceLogger $logger; @@ -50,9 +50,7 @@ public function testLogCall(): PersistenceLogger return $this->logger; } - /** - * @depends testLogCall - */ + #[Depends('testLogCall')] public function testGetCallValues(PersistenceLogger $logger): void { $calls = $logger->getCalls(); diff --git a/tests/lib/Persistence/Cache/SectionHandlerTest.php b/tests/lib/Persistence/Cache/SectionHandlerTest.php index 2d3d1fbfaa..8597e4dfdf 100644 --- a/tests/lib/Persistence/Cache/SectionHandlerTest.php +++ b/tests/lib/Persistence/Cache/SectionHandlerTest.php @@ -25,7 +25,7 @@ public function getHandlerClassName(): string return SPISectionHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -40,7 +40,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $object = new SPISection(['id' => 5]); @@ -51,7 +51,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $object = new SPISection(['id' => 5]); diff --git a/tests/lib/Persistence/Cache/SettingHandlerTest.php b/tests/lib/Persistence/Cache/SettingHandlerTest.php index 3fabf581ef..34010a3070 100644 --- a/tests/lib/Persistence/Cache/SettingHandlerTest.php +++ b/tests/lib/Persistence/Cache/SettingHandlerTest.php @@ -25,7 +25,7 @@ public function getHandlerClassName(): string return SettingHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -57,7 +57,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $object = new Setting(['group' => 'group_a1', 'identifier' => 'identifier_b2']); @@ -76,7 +76,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $object = new Setting(['group' => 'group_a1', 'identifier' => 'identifier_b2']); diff --git a/tests/lib/Persistence/Cache/TransactionHandlerTest.php b/tests/lib/Persistence/Cache/TransactionHandlerTest.php index f4ac46b39e..f4e58c7730 100644 --- a/tests/lib/Persistence/Cache/TransactionHandlerTest.php +++ b/tests/lib/Persistence/Cache/TransactionHandlerTest.php @@ -8,10 +8,10 @@ namespace Ibexa\Tests\Core\Persistence\Cache; use Ibexa\Contracts\Core\Persistence\TransactionHandler; +use Ibexa\Core\Persistence\Cache\TransactionHandler as CoveredTransactionHandler; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Cache\TransactionHandler - */ +#[CoversClass(CoveredTransactionHandler::class)] class TransactionHandlerTest extends AbstractCacheHandlerTestCase { public function getHandlerMethodName(): string @@ -24,7 +24,7 @@ public function getHandlerClassName(): string return TransactionHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array $arguments, array? $cacheTagGeneratingArguments, array? $cacheKeyGeneratingArguments, array? $tags, string? $key return [ @@ -33,17 +33,19 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { // string $method, array $arguments, array? $cacheIdentifierGeneratorArguments, array? $cacheIdentifierGeneratorResults, string $key, mixed? $data return [ + [self::NO_DATA_METHOD, [], ''], ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { // string $method, array $arguments, array? $cacheIdentifierGeneratorArguments, array? $cacheIdentifierGeneratorResults, string $key, mixed? $data return [ + [self::NO_DATA_METHOD, [], ''], ]; } diff --git a/tests/lib/Persistence/Cache/TrashHandlerTest.php b/tests/lib/Persistence/Cache/TrashHandlerTest.php index 373446e032..01b5066d75 100644 --- a/tests/lib/Persistence/Cache/TrashHandlerTest.php +++ b/tests/lib/Persistence/Cache/TrashHandlerTest.php @@ -32,7 +32,7 @@ public function getHandlerClassName(): string return TrashHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -40,17 +40,19 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { // string $method, array $arguments, string $key, array? $tagGeneratingArguments, array? $tagGeneratingResults, array? $keyGeneratingArguments, array? $keyGeneratingResults, mixed? $data, bool $multi return [ + [self::NO_DATA_METHOD, [], ''], ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { // string $method, array $arguments, string $key, array? $tagGeneratingArguments, array? $tagGeneratingResults, array? $keyGeneratingArguments, array? $keyGeneratingResults, mixed? $data, bool $multi return [ + [self::NO_DATA_METHOD, [], ''], ]; } @@ -111,7 +113,6 @@ private function setUpRoleAssignmentInvalidation(int $locationId, int $contentId $this->loggerMock->expects(self::once())->method('logCall'); $innerHandler = $this->createMock($this->getHandlerClassName()); - $contentHandlerMock = $this->createMock(ContentHandler::class); $locationHandlerMock = $this->createMock(LocationHandler::class); $userHandlerMock = $this->createMock(PersistenceUserHandler::class); @@ -126,7 +127,7 @@ private function setUpRoleAssignmentInvalidation(int $locationId, int $contentId $this->persistenceHandlerMock ->method('contentHandler') - ->willReturn($contentHandlerMock); + ->willReturn(self::createStub(ContentHandler::class)); $this->persistenceHandlerMock ->method('locationHandler') @@ -140,20 +141,33 @@ private function setUpRoleAssignmentInvalidation(int $locationId, int $contentId ->expects(self::once()) ->method($this->getHandlerMethodName()) ->willReturn($innerHandler); + $matcher = self::exactly(3); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(3)) - ->method('generateTag') - ->withConsecutive( - ['role_assignment_role_list', [$roleId], false], - ['content', [$contentId], false], - ['location_path', [$locationId], false] - ) - ->willReturnOnConsecutiveCalls( - 'rarl-' . $roleId, - 'c-' . $contentId, - 'lp-' . $locationId - ); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher, $roleId, $contentId, $locationId) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('role_assignment_role_list', $parameters[0]); + $this->assertSame([$roleId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'rarl-' . $roleId; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([$contentId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-' . $contentId; + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('location_path', $parameters[0]); + $this->assertSame([$locationId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'lp-' . $locationId; + } + }); $this->cacheMock ->expects(self::once()) @@ -207,20 +221,33 @@ public function testDeleteTrashItem() 'lp-' . $trashedId, 'c-' . $relationSourceContentId, ]; + $matcher = self::exactly(3); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(3)) - ->method('generateTag') - ->withConsecutive( - ['content', [$relationSourceContentId], false], - ['content', [$contentId], false], - ['location_path', [$trashedId], false] - ) - ->willReturnOnConsecutiveCalls( - 'c-' . $relationSourceContentId, - 'c-' . $contentId, - 'lp-' . $trashedId - ); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher, $relationSourceContentId, $contentId, $trashedId) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([$relationSourceContentId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-' . $relationSourceContentId; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([$contentId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-' . $contentId; + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('location_path', $parameters[0]); + $this->assertSame([$trashedId], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'lp-' . $trashedId; + } + }); $this->cacheMock ->expects(self::once()) @@ -278,13 +305,17 @@ public function testEmptyTrash() 'c-' . $contentId, 'lp-' . $trashedId, ]; + $matcher = self::exactly(6); //one set of arguments and tags for each relation $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(6)) + ->expects($matcher) ->method('generateTag') - ->withConsecutive(...array_merge($cacheIdentifierGeneratorArguments, $cacheIdentifierGeneratorArguments)) - ->willReturnOnConsecutiveCalls(...array_merge($tags, $tags)); + ->willReturnCallback(function (...$parameters) use ($matcher, $cacheIdentifierGeneratorArguments, $tags) { + $this->assertSame(array_merge($cacheIdentifierGeneratorArguments, $cacheIdentifierGeneratorArguments)[$matcher->numberOfInvocations() - 1], $parameters); + + return array_merge($tags, $tags)[$matcher->numberOfInvocations() - 1]; + }); $this->cacheMock ->expects(self::once()) diff --git a/tests/lib/Persistence/Cache/URLHandlerTest.php b/tests/lib/Persistence/Cache/URLHandlerTest.php index 029e6f1920..2204c728f6 100644 --- a/tests/lib/Persistence/Cache/URLHandlerTest.php +++ b/tests/lib/Persistence/Cache/URLHandlerTest.php @@ -24,7 +24,7 @@ public function getHandlerClassName(): string return SpiURLHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -34,7 +34,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $url = new URL(['id' => 1]); @@ -44,7 +44,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $url = new URL(['id' => 1]); @@ -91,32 +91,54 @@ public function testUpdateUrlWhenAddressIsUpdated(): void ->method('updateUrl') ->with($urlId, $updateStruct) ->willReturn(true); + $matcher = self::exactly(4); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(4)) - ->method('generateTag') - ->withConsecutive( - ['url', [1], false], - ['content', [2], false], - ['content', [3], false], - ['content', [5], false] - ) - ->willReturnOnConsecutiveCalls( - 'url-1', - 'c-2', - 'c-3', - 'c-5' - ); - + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('url', $parameters[0]); + $this->assertSame([1], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'url-1'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([2], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-2'; + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([3], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-3'; + } + if ($matcher->numberOfInvocations() === 4) { + $this->assertSame('content', $parameters[0]); + $this->assertSame([5], $parameters[1]); + $this->assertFalse($parameters[2]); + + return 'c-5'; + } + }); + + $invalidateTagsMatcher = self::exactly(2); $this->cacheMock - ->expects(self::at(0)) + ->expects($invalidateTagsMatcher) ->method('invalidateTags') - ->with(['url-1']); + ->willReturnCallback(static function (array $tags) use ($invalidateTagsMatcher): bool { + if ($invalidateTagsMatcher->numberOfInvocations() === 1) { + self::assertSame(['url-1'], $tags); + } else { + self::assertSame(['c-2', 'c-3', 'c-5'], $tags); + } - $this->cacheMock - ->expects(self::at(1)) - ->method('invalidateTags') - ->with(['c-2', 'c-3', 'c-5']); + return true; + }); $handler = $this->persistenceCacheHandler->urlHandler(); $handler->updateUrl($urlId, $updateStruct); @@ -147,7 +169,7 @@ public function testUpdateUrlStatusIsUpdated() ->willReturn('url-1'); $this->cacheMock - ->expects(self::at(0)) + ->expects(self::once()) ->method('invalidateTags') ->with(['url-1']); diff --git a/tests/lib/Persistence/Cache/UrlAliasHandlerTest.php b/tests/lib/Persistence/Cache/UrlAliasHandlerTest.php index df892cd83e..5b6c1747f4 100644 --- a/tests/lib/Persistence/Cache/UrlAliasHandlerTest.php +++ b/tests/lib/Persistence/Cache/UrlAliasHandlerTest.php @@ -25,7 +25,7 @@ public function getHandlerClassName(): string return SPIUrlAliasHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { // string $method, array $arguments, array? $tagGeneratingArguments, array? $keyGeneratingArguments, array? $tags, array? $key, ?mixed $returnValue return [ @@ -141,7 +141,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $object = new UrlAlias(['id' => 5]); @@ -154,7 +154,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $object = new UrlAlias(['id' => 5]); diff --git a/tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php b/tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php index 07478e3a96..7b2f600fc8 100644 --- a/tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php +++ b/tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php @@ -22,7 +22,7 @@ public function getHandlerClassName(): string return SpiUrlWildcardHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $wildcard = new UrlWildcard(['id' => 1]); @@ -35,7 +35,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $wildcard = new UrlWildcard(['id' => 1]); @@ -46,7 +46,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $wildcard = new UrlWildcard(['id' => 1]); diff --git a/tests/lib/Persistence/Cache/UserHandlerTest.php b/tests/lib/Persistence/Cache/UserHandlerTest.php index a1248b54c0..4244190415 100644 --- a/tests/lib/Persistence/Cache/UserHandlerTest.php +++ b/tests/lib/Persistence/Cache/UserHandlerTest.php @@ -33,7 +33,7 @@ public function getHandlerClassName(): string return SPIUserHandler::class; } - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $user = new User(['id' => 14, 'login' => 'otto', 'email' => 'otto@ibexa.co']); $policy = new Policy(['id' => 13, 'roleId' => 9]); @@ -164,7 +164,7 @@ public function providerForUnCachedMethods(): array ]; } - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $user = new User(['id' => 14]); $role = new Role(['id' => 9]); @@ -268,7 +268,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $user = new User(['id' => 14]); $role = new Role(['id' => 9]); @@ -522,12 +522,12 @@ public function testPublishNewRoleDraft() ->willReturn($innerHandlerMock); $roleDraftId = 33; $innerHandlerMock - ->expects(self::at(0)) + ->expects(self::once()) ->method('loadRole') ->with($roleDraftId, Role::STATUS_DRAFT) ->willReturn(new Role(['originalId' => -1])); $innerHandlerMock - ->expects(self::at(1)) + ->expects(self::once()) ->method('publishRoleDraft') ->with($roleDraftId); $this->cacheMock @@ -570,16 +570,31 @@ public function testAssignRole() ->willReturn([new Location(['id' => '43'])]); $tags = ['ragl-14', 'rarl-9', 'lp-43']; + $matcher = self::exactly(3); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(3)) - ->method('generateTag') - ->withConsecutive( - ['role_assignment_group_list', [14], false], - ['role_assignment_role_list', [9], false], - ['location_path', [43], false] - ) - ->willReturnOnConsecutiveCalls(...$tags); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher, $tags) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('role_assignment_group_list', $parameters[0]); + $this->assertSame([14], $parameters[1]); + $this->assertFalse($parameters[2]); + + return $tags[0]; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('role_assignment_role_list', $parameters[0]); + $this->assertSame([9], $parameters[1]); + $this->assertFalse($parameters[2]); + + return $tags[1]; + } + $this->assertSame('location_path', $parameters[0]); + $this->assertEquals([43], $parameters[1]); + $this->assertFalse($parameters[2]); + + return $tags[2]; + }); $this->cacheMock ->expects(self::once()) @@ -625,11 +640,24 @@ public function testRemoveRoleAssignment(): void "ragl-$contentId", "rarl-$roleId", ]; + $matcher = self::exactly(count($tags)); $this->cacheIdentifierGeneratorMock - ->expects(self::exactly(count($tags))) - ->method('generateTag') - ->withConsecutive(['role_assignment'], ['role_assignment_group_list'], ['role_assignment_role_list']) - ->willReturnOnConsecutiveCalls(...$tags); + ->expects($matcher) + ->method('generateTag')->willReturnCallback(function (...$parameters) use ($matcher, $tags) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('role_assignment', $parameters[0]); + + return $tags[0]; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('role_assignment_group_list', $parameters[0]); + + return $tags[1]; + } + $this->assertSame('role_assignment_role_list', $parameters[0]); + + return $tags[2]; + }); $this->cacheMock->method('invalidateTags')->with($tags); diff --git a/tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php b/tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php index f78b167fc3..436d9f1794 100644 --- a/tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php +++ b/tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php @@ -36,7 +36,7 @@ public function getHandlerClassName(): string /** * {@inheritdoc} */ - public function providerForUnCachedMethods(): array + public static function providerForUnCachedMethods(): array { $userId = 7; $name = 'setting'; @@ -82,7 +82,7 @@ public function providerForUnCachedMethods(): array /** * {@inheritdoc} */ - public function providerForCachedLoadMethodsHit(): array + public static function providerForCachedLoadMethodsHit(): array { $userId = 7; $name = 'setting'; @@ -105,7 +105,7 @@ public function providerForCachedLoadMethodsHit(): array ]; } - public function providerForCachedLoadMethodsMiss(): array + public static function providerForCachedLoadMethodsMiss(): array { $userId = 7; $name = 'setting'; diff --git a/tests/lib/Persistence/Doctrine/JoinedTablesTrackerTest.php b/tests/lib/Persistence/Doctrine/JoinedTablesTrackerTest.php index 92e8f32375..97144cdde4 100644 --- a/tests/lib/Persistence/Doctrine/JoinedTablesTrackerTest.php +++ b/tests/lib/Persistence/Doctrine/JoinedTablesTrackerTest.php @@ -67,6 +67,6 @@ public function testDifferentTableIdentifiersOnSameQueryBuilderAreTrackedSeparat private function createQueryBuilder(): QueryBuilder { - return new QueryBuilder($this->createMock(Connection::class)); + return new QueryBuilder(self::createStub(Connection::class)); } } diff --git a/tests/lib/Persistence/Doctrine/Query/JsonTextFunctionTest.php b/tests/lib/Persistence/Doctrine/Query/JsonTextFunctionTest.php index 26588f178c..92526b44df 100644 --- a/tests/lib/Persistence/Doctrine/Query/JsonTextFunctionTest.php +++ b/tests/lib/Persistence/Doctrine/Query/JsonTextFunctionTest.php @@ -18,18 +18,16 @@ use Doctrine\ORM\Query\AST\Node; use Doctrine\ORM\Query\SqlWalker; use Ibexa\Core\Persistence\Doctrine\Query\JsonTextFunction; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use ReflectionProperty; use RuntimeException; -/** - * @covers \Ibexa\Core\Persistence\Doctrine\Query\JsonTextFunction - */ +#[CoversClass(JsonTextFunction::class)] final class JsonTextFunctionTest extends TestCase { - /** - * @dataProvider provideForGetSql - */ + #[DataProvider('provideForGetSql')] public function testItReadsTheKeyAsTextOn( AbstractPlatform $platform, string $expectedSql @@ -78,7 +76,7 @@ private function buildFunction(): JsonTextFunction foreach (['document', 'key'] as $property) { (new ReflectionProperty(JsonTextFunction::class, $property)) - ->setValue($function, $this->createMock(Node::class)); + ->setValue($function, self::createStub(Node::class)); } return $function; diff --git a/tests/lib/Persistence/Doctrine/SiteAccessAwareEntityManagerTest.php b/tests/lib/Persistence/Doctrine/SiteAccessAwareEntityManagerTest.php index 0ecfdb5db2..538c9f933c 100644 --- a/tests/lib/Persistence/Doctrine/SiteAccessAwareEntityManagerTest.php +++ b/tests/lib/Persistence/Doctrine/SiteAccessAwareEntityManagerTest.php @@ -100,7 +100,7 @@ public function testLockDelegatesToWrappedEntityManager(): void public function testGetRepositoryDelegatesToWrappedEntityManager(): void { - $repository = $this->createMock(EntityRepository::class); + $repository = self::createStub(EntityRepository::class); $wrapped = $this->createMock(EntityManagerInterface::class); $wrapped->expects(self::once()) ->method('getRepository') @@ -115,7 +115,7 @@ public function testGetRepositoryDelegatesToWrappedEntityManager(): void public function testGetClassMetadataDelegatesToWrappedEntityManager(): void { - $metadata = $this->createMock(ClassMetadata::class); + $metadata = self::createStub(ClassMetadata::class); $wrapped = $this->createMock(EntityManagerInterface::class); $wrapped->expects(self::once()) ->method('getClassMetadata') @@ -130,7 +130,7 @@ public function testGetClassMetadataDelegatesToWrappedEntityManager(): void public function testGetMetadataFactoryDelegatesToWrappedEntityManager(): void { - $metadataFactory = $this->createMock(ClassMetadataFactory::class); + $metadataFactory = self::createStub(ClassMetadataFactory::class); $wrapped = $this->createMock(EntityManagerInterface::class); $wrapped->expects(self::once()) ->method('getMetadataFactory') @@ -144,7 +144,7 @@ public function testGetMetadataFactoryDelegatesToWrappedEntityManager(): void public function testWrappedEntityManagerIsResolvedOnlyOnce(): void { - $wrapped = $this->createMock(EntityManagerInterface::class); + $wrapped = self::createStub(EntityManagerInterface::class); $this->entityManagerFactory->expects(self::once()) ->method('getEntityManager') ->willReturn($wrapped); @@ -156,8 +156,8 @@ public function testWrappedEntityManagerIsResolvedOnlyOnce(): void public function testResetForcesReResolutionOfWrappedEntityManager(): void { - $first = $this->createMock(EntityManagerInterface::class); - $second = $this->createMock(EntityManagerInterface::class); + $first = self::createStub(EntityManagerInterface::class); + $second = self::createStub(EntityManagerInterface::class); $this->entityManagerFactory->expects(self::exactly(2)) ->method('getEntityManager') ->willReturnOnConsecutiveCalls($first, $second); @@ -169,8 +169,8 @@ public function testResetForcesReResolutionOfWrappedEntityManager(): void public function testConfigScopeChangeForcesReResolutionOfWrappedEntityManager(): void { - $first = $this->createMock(EntityManagerInterface::class); - $second = $this->createMock(EntityManagerInterface::class); + $first = self::createStub(EntityManagerInterface::class); + $second = self::createStub(EntityManagerInterface::class); $this->entityManagerFactory->expects(self::exactly(2)) ->method('getEntityManager') ->willReturnOnConsecutiveCalls($first, $second); diff --git a/tests/lib/Persistence/FieldTypeRegistryTest.php b/tests/lib/Persistence/FieldTypeRegistryTest.php index f8b7aff505..3af4a7e9eb 100644 --- a/tests/lib/Persistence/FieldTypeRegistryTest.php +++ b/tests/lib/Persistence/FieldTypeRegistryTest.php @@ -12,10 +12,9 @@ use Ibexa\Core\Base\Exceptions\NotFound\FieldTypeNotFoundException; use Ibexa\Core\Persistence\FieldTypeRegistry; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\FieldTypeRegistry - */ +#[CoversClass(FieldTypeRegistry::class)] class FieldTypeRegistryTest extends TestCase { private const FIELD_TYPE_IDENTIFIER = 'some-type'; diff --git a/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php b/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php index c3c70e7678..51cc4e021b 100644 --- a/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php +++ b/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\IO\UrlRedecoratorInterface; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ImageConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class ImageConverterTest extends TestCase @@ -28,16 +29,16 @@ final class ImageConverterTest extends TestCase /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ImageConverter */ private $imageConverter; - /** @var \Ibexa\Core\IO\UrlRedecoratorInterface|\PHPUnit\Framework\MockObject\MockObject */ - private $urlRedecorator; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\IO\UrlRedecoratorInterface */ + private \PHPUnit\Framework\MockObject\Stub $urlRedecorator; - /** @var \Ibexa\Core\IO\IOServiceInterface|\PHPUnit\Framework\MockObject\MockObject */ - private $ioService; + /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\IO\IOServiceInterface */ + private \PHPUnit\Framework\MockObject\Stub $ioService; protected function setUp(): void { - $this->ioService = $this->createMock(IOServiceInterface::class); - $this->urlRedecorator = $this->createMock(UrlRedecoratorInterface::class); + $this->ioService = self::createStub(IOServiceInterface::class); + $this->urlRedecorator = self::createStub(UrlRedecoratorInterface::class); $this->imageConverter = new ImageConverter( $this->ioService, @@ -45,9 +46,7 @@ protected function setUp(): void ); } - /** - * @dataProvider dataProviderForTestToStorageFieldDefinition - */ + #[DataProvider('dataProviderForTestToStorageFieldDefinition')] public function testToStorageFieldDefinition( FieldDefinition $fieldDefinition, StorageFieldDefinition $expectedStorageDef @@ -62,7 +61,7 @@ public function testToStorageFieldDefinition( ); } - public function dataProviderForTestToStorageFieldDefinition(): iterable + public static function dataProviderForTestToStorageFieldDefinition(): iterable { yield 'No validators' => [ new FieldDefinition([ @@ -149,9 +148,7 @@ public function dataProviderForTestToStorageFieldDefinition(): iterable ]; } - /** - * @dataProvider dataProviderForTestToFieldDefinition - */ + #[DataProvider('dataProviderForTestToFieldDefinition')] public function testToFieldDefinition( StorageFieldDefinition $storageDef, FieldDefinition $expectedFieldDefinition @@ -166,7 +163,7 @@ public function testToFieldDefinition( ); } - public function dataProviderForTestToFieldDefinition(): iterable + public static function dataProviderForTestToFieldDefinition(): iterable { yield [ new StorageFieldDefinition([ diff --git a/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php index 933fcd5973..f56ba4f659 100644 --- a/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php @@ -12,10 +12,10 @@ use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway; use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Bookmark\Gateway - */ +#[CoversClass(Gateway::class)] class DoctrineDatabaseTest extends TestCase { public const EXISTING_BOOKMARK_ID = 1; @@ -75,23 +75,19 @@ public function testLoadBookmarkDataByUserIdAndLocationId() self::assertEquals([self::EXISTING_BOOKMARK_DATA], $data); } - /** - * @dataProvider dataProviderForLoadUserBookmarks - */ + #[DataProvider('dataProviderForLoadUserBookmarks')] public function testLoadUserBookmarks(int $userId, int $offset, int $limit, array $expected) { self::assertEquals($expected, $this->getGateway()->loadUserBookmarks($userId, $offset, $limit)); } - /** - * @dataProvider dataProviderForLoadUserBookmarks - */ + #[DataProvider('dataProviderForLoadUserBookmarks')] public function testCountUserBookmarks(int $userId, int $offset, int $limit, array $expected) { self::assertEquals(count($expected), $this->getGateway()->countUserBookmarks($userId)); } - public function dataProviderForLoadUserBookmarks(): array + public static function dataProviderForLoadUserBookmarks(): array { $fixtures = (require __DIR__ . '/../_fixtures/bookmarks.php')[DoctrineDatabase::TABLE_BOOKMARKS]; diff --git a/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php b/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php index 3e88f1cd1e..21676f991a 100644 --- a/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php @@ -11,11 +11,10 @@ use Ibexa\Contracts\Core\Persistence\Bookmark\Bookmark; use Ibexa\Contracts\Core\Persistence\Bookmark\CreateStruct; use Ibexa\Core\Persistence\Legacy\Bookmark\Mapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Bookmark\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Bookmark\Mapper */ diff --git a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php index a3b23139f9..f66972820b 100644 --- a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php @@ -33,11 +33,12 @@ use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Gateway as UrlAliasGateway; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use ReflectionException; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Handler - */ +#[CoversClass(Handler::class)] +#[CoversMethod(Handler::class, 'loadVersionInfoList')] class ContentHandlerTest extends TestCase { private const RELATION_ID = 1; @@ -129,7 +130,7 @@ public function testCreate() $fieldHandlerMock = $this->getFieldHandlerMock(); $locationMock = $this->getLocationGatewayMock(); $contentTypeHandlerMock = $this->getContentTypeHandlerMock(); - $contentTypeMock = $this->createMock(Type::class); + $contentTypeMock = self::createStub(Type::class); $createStruct = $this->getCreateStructFixture(); $contentTypeHandlerMock->expects(self::once()) @@ -164,7 +165,7 @@ public function testCreate() ->method('insertVersion') ->with( self::isInstanceOf(VersionInfo::class), - self::isType('array') + self::isArray() )->will(self::returnValue(1)); $fieldHandlerMock->expects(self::once()) @@ -225,7 +226,7 @@ public function testPublishFirstVersion() $fieldHandlerMock = $this->getFieldHandlerMock(); $metadataUpdateStruct = new MetadataUpdateStruct(); - $handler->expects(self::at(0)) + $handler->expects(self::once()) ->method('loadVersionInfo') ->with(23, 1) ->will( @@ -302,7 +303,7 @@ public function testPublish() $fieldHandlerMock = $this->getFieldHandlerMock(); $metadataUpdateStruct = new MetadataUpdateStruct(); - $handler->expects(self::at(0)) + $handler->expects(self::once()) ->method('loadVersionInfo') ->with(23, 2) ->will( @@ -320,7 +321,7 @@ public function testPublish() ); $handler - ->expects(self::at(1)) + ->expects(self::once()) ->method('setStatus') ->with(23, VersionInfo::STATUS_ARCHIVED, 1); @@ -547,15 +548,22 @@ public function testLoadContentList() 2 => $this->getContentFixtureForDraft(2, 2), 3 => $this->getContentFixtureForDraft(3, 1), ]; - $mapperMock->expects(self::at(0)) + $extractContentFromRowsMatcher = self::exactly(2); + $mapperMock->expects($extractContentFromRowsMatcher) ->method('extractContentFromRows') - ->with(self::equalTo([$contentRows[0]]), self::equalTo([$nameDataRows[0]])) - ->willReturn([$expected[2]]); + ->willReturnCallback(static function (array $rows, array $nameRows, string $prefix = 'content_', ?array $translations = null) use ($extractContentFromRowsMatcher, $contentRows, $nameDataRows, $expected): array { + if ($extractContentFromRowsMatcher->numberOfInvocations() === 1) { + self::assertSame([$contentRows[0]], $rows); + self::assertSame([$nameDataRows[0]], $nameRows); - $mapperMock->expects(self::at(1)) - ->method('extractContentFromRows') - ->with(self::equalTo([$contentRows[1]]), self::equalTo([$nameDataRows[1]])) - ->willReturn([$expected[3]]); + return [$expected[2]]; + } + + self::assertSame([$contentRows[1]], $rows); + self::assertSame([$nameDataRows[1]], $nameRows); + + return [$expected[3]]; + }); $fieldHandlerMock->expects(self::exactly(2)) ->method('loadExternalFieldData') @@ -639,7 +647,7 @@ public function testUpdateContent() $gatewayMock = $this->getGatewayMock(); $fieldHandlerMock = $this->getFieldHandlerMock(); $contentTypeHandlerMock = $this->getContentTypeHandlerMock(); - $contentTypeMock = $this->createMock(Type::class); + $contentTypeMock = self::createStub(Type::class); $contentStub = new Content( [ 'versionInfo' => new VersionInfo( @@ -674,16 +682,19 @@ public function testUpdateContent() self::isInstanceOf(Type::class) ); - $handler->expects(self::at(0)) + $loadMatcher = self::exactly(2); + $handler->expects($loadMatcher) ->method('load') ->with(14, 4) - ->will(self::returnValue($contentStub)); + ->willReturnCallback(static function () use ($loadMatcher, $contentStub) { + if ($loadMatcher->numberOfInvocations() === 1) { + return $contentStub; + } - $handler->expects(self::at(1)) - ->method('load') - ->with(14, 4); + return null; + }); - $handler->expects(self::at(2)) + $handler->expects(self::once()) ->method('loadContentInfo') ->with(14); @@ -754,7 +765,7 @@ public function testUpdateMetadata() ->with(14) ->will( self::returnValue( - $this->createMock(ContentInfo::class) + self::createStub(ContentInfo::class) ) ); @@ -819,7 +830,7 @@ public function testUpdateMetadataUpdatesPathIdentificationString() ->with(14) ->will( self::returnValue( - $this->createMock(ContentInfo::class) + self::createStub(ContentInfo::class) ) ); @@ -1089,7 +1100,7 @@ public function testRemoveRawContent() */ public function testDeleteContentWithLocations() { - $handlerMock = $this->getPartlyMockedHandler(['getAllLocationIds']); + $handlerMock = $this->getPartlyMockedHandler([]); $gatewayMock = $this->getGatewayMock(); $treeHandlerMock = $this->getTreeHandlerMock(); @@ -1265,7 +1276,7 @@ public function testCopyAllVersions() $mapperMock = $this->getMapperMock(); $fieldHandlerMock = $this->getFieldHandlerMock(); $contentTypeHandlerMock = $this->getContentTypeHandlerMock(); - $contentTypeMock = $this->createMock(Type::class); + $contentTypeMock = self::createStub(Type::class); $time = time(); $createStructStub = new CreateStruct( [ @@ -1284,11 +1295,6 @@ public function testCopyAllVersions() ->with(self::equalTo(23)) ->will(self::returnValue(new ContentInfo(['currentVersionNo' => 2]))); - $handler->expects(self::at(1)) - ->method('load') - ->with(self::equalTo(23), self::equalTo(2)) - ->will(self::returnValue(new Content())); - $mapperMock->expects(self::once()) ->method('createCreateStructFromContent') ->with(self::isInstanceOf(Content::class)) @@ -1338,19 +1344,26 @@ public function testCopyAllVersions() ), ] ); - $handler->expects(self::at(4)) + $copyLoadMatcher = self::exactly(2); + $handler->expects($copyLoadMatcher) ->method('load') - ->with(self::equalTo(23), self::equalTo(1)) - ->will( - self::returnValue( - new Content( - [ - 'versionInfo' => $versionInfo, - 'fields' => [], - ] - ) - ) - ); + ->willReturnCallback(static function ($contentId, $versionNo) use ($copyLoadMatcher, $versionInfo) { + self::assertSame(23, $contentId); + if ($copyLoadMatcher->numberOfInvocations() === 1) { + self::assertSame(2, $versionNo); + + return new Content(); + } + + self::assertSame(1, $versionNo); + + return new Content( + [ + 'versionInfo' => $versionInfo, + 'fields' => [], + ] + ); + }); $versionInfo->creationDate = $time; $versionInfo->modificationDate = $time; @@ -1358,7 +1371,7 @@ public function testCopyAllVersions() ->method('insertVersion') ->with( self::equalTo($versionInfo), - self::isType('array') + self::isArray() )->will(self::returnValue(42)); $versionInfo = clone $versionInfo; @@ -1457,8 +1470,6 @@ public function testSetStatus() } /** - * @covers \Ibexa\Contracts\Core\Persistence\Legacy\Content\Handler::loadVersionInfoList - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ public function testLoadVersionInfoList(): void @@ -1547,7 +1558,6 @@ protected function getContentHandler() protected function getPartlyMockedHandler(array $methods) { return $this->getMockBuilder(Handler::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getGatewayMock(), @@ -1561,6 +1571,7 @@ protected function getPartlyMockedHandler(array $methods) $this->getLanguageHandlerMock(), ] ) + ->onlyMethods(array_values($methods)) ->getMock(); } diff --git a/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php b/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php index cd65e130c6..6a56ecf686 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php @@ -22,10 +22,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Mapper; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldHandler - */ +#[CoversClass(FieldHandler::class)] class FieldHandlerTest extends LanguageAwareTestCase { /** @@ -84,7 +83,7 @@ protected function assertCreateNewFields($storageHandlerUpdatesFields = false) self::isInstanceOf(StorageFieldValue::class) )->will(self::returnValue(42)); - $callNo = 0; + $expectedStoreFields = []; $fieldValue = new FieldValue(); foreach ([1, 2, 3] as $fieldDefinitionId) { foreach (['eng-US', 'eng-GB'] as $languageCode) { @@ -105,24 +104,34 @@ protected function assertCreateNewFields($storageHandlerUpdatesFields = false) $originalField->languageCode = 'eng-GB'; continue; } - $storageHandlerMock->expects(self::at($callNo++)) - ->method('storeFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field) - )->will(self::returnValue($storageHandlerUpdatesFields)); + $expectedStoreFields[] = $field; } } + $invocationOrder = 0; + $storageHandlerMock->expects(self::exactly(5)) + ->method('storeFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $expectedStoreFields, $storageHandlerUpdatesFields) { + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedStoreFields[$invocationOrder], $parameters[1]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); + /* @var $copyField */ /* @var $originalField */ - $storageHandlerMock->expects(self::at($callNo)) + $storageHandlerMock->expects(self::once()) ->method('copyFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($copyField), - self::equalTo($originalField) - )->will(self::returnValue($storageHandlerUpdatesFields)); + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $copyField, $originalField, $storageHandlerUpdatesFields) { + $this->assertSame(5, $invocationOrder); + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($copyField, $parameters[1]); + $this->assertEquals($originalField, $parameters[2]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); } public function testCreateNewFields() @@ -190,10 +199,10 @@ protected function assertCreateNewFieldsForMainLanguage($storageHandlerUpdatesFi self::isInstanceOf(StorageFieldValue::class) )->will(self::returnValue(42)); - $callNo = 0; + $expectedFields = []; $fieldValue = new FieldValue(); foreach ([1, 2, 3] as $fieldDefinitionId) { - $field = new Field( + $expectedFields[] = new Field( [ 'id' => 42, 'fieldDefinitionId' => $fieldDefinitionId, @@ -203,13 +212,17 @@ protected function assertCreateNewFieldsForMainLanguage($storageHandlerUpdatesFi 'languageCode' => 'eng-GB', ] ); - $storageHandlerMock->expects(self::at($callNo++)) - ->method('storeFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field) - )->will(self::returnValue($storageHandlerUpdatesFields)); } + + $matcher = self::exactly(3); + $storageHandlerMock->expects($matcher) + ->method('storeFieldData') + ->willReturnCallback(function (...$parameters) use ($matcher, $expectedFields, $storageHandlerUpdatesFields) { + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedFields[$matcher->numberOfInvocations() - 1], $parameters[1]); + + return $storageHandlerUpdatesFields; + }); } public function testCreateNewFieldsForMainLanguage() @@ -272,7 +285,7 @@ protected function assertCreateExistingFieldsInNewVersion($storageHandlerUpdates self::isInstanceOf(StorageFieldValue::class) )->will(self::returnValue(42)); - $callNo = 0; + $expectedCopyCalls = []; $fieldValue = new FieldValue(); foreach ([1, 2, 3] as $fieldDefinitionId) { foreach (['eng-US', 'eng-GB'] as $languageIndex => $languageCode) { @@ -287,15 +300,21 @@ protected function assertCreateExistingFieldsInNewVersion($storageHandlerUpdates ); $originalField = clone $field; $field->versionNo = 1; - $storageHandlerMock->expects(self::at($callNo++)) - ->method('copyFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field), - self::equalTo($originalField) - )->will(self::returnValue($storageHandlerUpdatesFields)); + $expectedCopyCalls[] = ['field' => $field, 'original' => $originalField]; } } + + $matcher = self::exactly(6); + $storageHandlerMock->expects($matcher) + ->method('copyFieldData') + ->willReturnCallback(function (...$parameters) use ($matcher, $expectedCopyCalls, $storageHandlerUpdatesFields) { + $index = $matcher->numberOfInvocations() - 1; + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedCopyCalls[$index]['field'], $parameters[1]); + $this->assertEquals($expectedCopyCalls[$index]['original'], $parameters[2]); + + return $storageHandlerUpdatesFields; + }); } public function testCreateExistingFieldsInNewVersion() @@ -471,7 +490,7 @@ public function assertUpdateFieldsWithNewLanguage($storageHandlerUpdatesFields = self::isInstanceOf(StorageFieldValue::class) ); - $callNo = 0; + $expectedStoreFields = []; $fieldValue = new FieldValue(); foreach ([1, 2, 3] as $fieldDefinitionId) { $field = new Field( @@ -491,23 +510,33 @@ public function assertUpdateFieldsWithNewLanguage($storageHandlerUpdatesFields = $originalField->languageCode = 'eng-GB'; continue; } - $storageHandlerMock->expects(self::at($callNo++)) - ->method('storeFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field) - )->will(self::returnValue($storageHandlerUpdatesFields)); + $expectedStoreFields[] = $field; } + $invocationOrder = 0; + $storageHandlerMock->expects(self::exactly(2)) + ->method('storeFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $expectedStoreFields, $storageHandlerUpdatesFields) { + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedStoreFields[$invocationOrder], $parameters[1]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); + /* @var $copyField */ /* @var $originalField */ - $storageHandlerMock->expects(self::at($callNo)) + $storageHandlerMock->expects(self::once()) ->method('copyFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($copyField), - self::equalTo($originalField) - )->will(self::returnValue($storageHandlerUpdatesFields)); + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $copyField, $originalField, $storageHandlerUpdatesFields) { + $this->assertSame(2, $invocationOrder); + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($copyField, $parameters[1]); + $this->assertEquals($originalField, $parameters[2]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); } public function testUpdateFieldsWithNewLanguage() @@ -589,7 +618,7 @@ public function assertUpdateFieldsExistingLanguages($storageHandlerUpdatesFields { $storageHandlerMock = $this->getStorageHandlerMock(); - $callNo = 0; + $expectedStoreFields = []; $fieldValue = new FieldValue(); $fieldsToCopy = []; foreach ([1, 2, 3] as $fieldDefinitionId) { @@ -614,25 +643,34 @@ public function assertUpdateFieldsExistingLanguages($storageHandlerUpdatesFields 'original' => $originalField, ]; } else { - $storageHandlerMock->expects(self::at($callNo++)) - ->method('storeFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field) - )->will(self::returnValue($storageHandlerUpdatesFields)); + $expectedStoreFields[] = $field; } } } - foreach ($fieldsToCopy as $fieldToCopy) { - $storageHandlerMock->expects(self::at($callNo++)) - ->method('copyFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($fieldToCopy['copy']), - self::equalTo($fieldToCopy['original']) - )->will(self::returnValue($storageHandlerUpdatesFields)); - } + $invocationOrder = 0; + $storeCount = count($expectedStoreFields); + $storageHandlerMock->expects(self::exactly($storeCount)) + ->method('storeFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $expectedStoreFields, $storageHandlerUpdatesFields) { + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedStoreFields[$invocationOrder], $parameters[1]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); + + $storageHandlerMock->expects(self::exactly(count($fieldsToCopy))) + ->method('copyFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $fieldsToCopy, $storeCount, $storageHandlerUpdatesFields) { + $index = $invocationOrder - $storeCount; + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($fieldsToCopy[$index]['copy'], $parameters[1]); + $this->assertEquals($fieldsToCopy[$index]['original'], $parameters[2]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); } public function testUpdateFieldsExistingLanguages() @@ -696,7 +734,7 @@ public function assertUpdateFieldsForInitialLanguage($storageHandlerUpdatesField { $storageHandlerMock = $this->getStorageHandlerMock(); - $callNo = 0; + $expectedStoreFields = []; $fieldValue = new FieldValue(); $fieldsToCopy = []; foreach ([1, 2, 3] as $id => $fieldDefinitionId) { @@ -722,23 +760,32 @@ public function assertUpdateFieldsForInitialLanguage($storageHandlerUpdatesField } // This field is inserted as empty $field->value = null; - $storageHandlerMock->expects(self::at($callNo++)) - ->method('storeFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($field) - )->will(self::returnValue($storageHandlerUpdatesFields)); + $expectedStoreFields[] = $field; } - foreach ($fieldsToCopy as $fieldToCopy) { - $storageHandlerMock->expects(self::at($callNo++)) - ->method('copyFieldData') - ->with( - self::isInstanceOf(VersionInfo::class), - self::equalTo($fieldToCopy['copy']), - self::equalTo($fieldToCopy['original']) - )->will(self::returnValue($storageHandlerUpdatesFields)); - } + $invocationOrder = 0; + $storeCount = count($expectedStoreFields); + $storageHandlerMock->expects(self::exactly($storeCount)) + ->method('storeFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $expectedStoreFields, $storageHandlerUpdatesFields) { + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($expectedStoreFields[$invocationOrder], $parameters[1]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); + + $storageHandlerMock->expects(self::exactly(count($fieldsToCopy))) + ->method('copyFieldData') + ->willReturnCallback(function (...$parameters) use (&$invocationOrder, $fieldsToCopy, $storeCount, $storageHandlerUpdatesFields) { + $index = $invocationOrder - $storeCount; + $this->assertInstanceOf(VersionInfo::class, $parameters[0]); + $this->assertEquals($fieldsToCopy[$index]['copy'], $parameters[1]); + $this->assertEquals($fieldsToCopy[$index]['original'], $parameters[2]); + ++$invocationOrder; + + return $storageHandlerUpdatesFields; + }); } public function testUpdateFieldsForInitialLanguage() @@ -1095,7 +1142,7 @@ protected function getFieldTypeRegistryMock() )->method( 'getFieldType' )->with( - self::isType('string') + self::isString() )->will( self::returnValue($this->getFieldTypeMock()) ); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php index 1d2a57364e..635c541fec 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php @@ -16,14 +16,13 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\AuthorConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\AuthorConverter - * - * @group fieldType - * @group ibexa_author - */ +#[CoversClass(AuthorConverter::class)] +#[Group('fieldType')] +#[Group('ibexa_author')] class AuthorTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\AuthorConverter */ diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php index c36677479e..9e9f1b4795 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CheckboxConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CheckboxConverter - */ +#[CoversClass(CheckboxConverter::class)] class CheckboxTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CheckboxConverter */ @@ -28,10 +28,8 @@ protected function setUp(): void $this->converter = new CheckboxConverter(); } - /** - * @group fieldType - * @group ibexa_boolean - */ + #[Group('fieldType')] + #[Group('ibexa_boolean')] public function testToStorageValue() { $value = new FieldValue(); @@ -45,10 +43,8 @@ public function testToStorageValue() self::assertSame('', $storageFieldValue->sortKeyString); } - /** - * @group fieldType - * @group ibexa_boolean - */ + #[Group('fieldType')] + #[Group('ibexa_boolean')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -62,10 +58,8 @@ public function testToFieldValue() self::assertSame($storageFieldValue->sortKeyInt, $fieldValue->sortKey); } - /** - * @group fieldType - * @group ibexa_boolean - */ + #[Group('fieldType')] + #[Group('ibexa_boolean')] public function testToStorageFieldDefinition() { $defaultBool = false; @@ -85,10 +79,8 @@ public function testToStorageFieldDefinition() ); } - /** - * @group fieldType - * @group ibexa_boolean - */ + #[Group('fieldType')] + #[Group('ibexa_boolean')] public function testToFieldDefinition() { $defaultBool = true; diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php index 7d2f97f0bc..7789f88f99 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php @@ -14,11 +14,12 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CountryConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CountryConverter - */ +#[CoversClass(CountryConverter::class)] class CountryTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\CountryConverter */ @@ -30,7 +31,7 @@ protected function setUp(): void $this->converter = new CountryConverter(); } - public function providerForTestToStorageValue() + public static function providerForTestToStorageValue() { return [ [['BE', 'FR'], 'belgium,france', 'BE,FR', 'belgium,france'], @@ -38,12 +39,9 @@ public function providerForTestToStorageValue() ]; } - /** - * @group fieldType - * @group country - * - * @dataProvider providerForTestToStorageValue - */ + #[Group('fieldType')] + #[Group('country')] + #[DataProvider('providerForTestToStorageValue')] public function testToStorageValue($data, $sortKey, $dataText, $sortKeyString) { $value = new FieldValue(); @@ -56,7 +54,7 @@ public function testToStorageValue($data, $sortKey, $dataText, $sortKeyString) self::assertSame($sortKeyString, $storageFieldValue->sortKeyString); } - public function providerForTestToFieldValue() + public static function providerForTestToFieldValue() { return [ ['BE,FR', 'belgium,france', ['BE', 'FR']], @@ -64,12 +62,9 @@ public function providerForTestToFieldValue() ]; } - /** - * @group fieldType - * @group country - * - * @dataProvider providerForTestToFieldValue - */ + #[Group('fieldType')] + #[Group('country')] + #[DataProvider('providerForTestToFieldValue')] public function testToFieldValue($dataText, $sortKeyString, $data) { $storageFieldValue = new StorageFieldValue(); @@ -81,10 +76,8 @@ public function testToFieldValue($dataText, $sortKeyString, $data) self::assertSame($data, $fieldValue->data); } - /** - * @group fieldType - * @group country - */ + #[Group('fieldType')] + #[Group('country')] public function testToStorageFieldDefinitionMultiple() { $defaultValue = new FieldValue(); @@ -116,10 +109,8 @@ public function testToStorageFieldDefinitionMultiple() ); } - /** - * @group fieldType - * @group country - */ + #[Group('fieldType')] + #[Group('country')] public function testToStorageFieldDefinitionSingle() { $fieldTypeConstraints = new FieldTypeConstraints(); @@ -147,10 +138,8 @@ public function testToStorageFieldDefinitionSingle() ); } - /** - * @group fieldType - * @group country - */ + #[Group('fieldType')] + #[Group('country')] public function testToFieldDefinitionMultiple() { $fieldDef = new PersistenceFieldDefinition(); @@ -174,10 +163,8 @@ public function testToFieldDefinitionMultiple() ); } - /** - * @group fieldType - * @group country - */ + #[Group('fieldType')] + #[Group('country')] public function testToFieldDefinitionSingle() { $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php index 2d24478333..878ca69718 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php @@ -18,13 +18,14 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateAndTimeConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use ReflectionObject; use SimpleXMLElement; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateAndTimeConverter - */ +#[CoversClass(DateAndTimeConverter::class)] class DateAndTimeTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateAndTimeConverter */ @@ -40,10 +41,8 @@ protected function setUp(): void $this->date = new DateTime('@1048633200'); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToStorageValue() { $value = new FieldValue(); @@ -60,10 +59,8 @@ public function testToStorageValue() self::assertSame('', $storageFieldValue->sortKeyString); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -87,7 +84,7 @@ public function testToFieldValue() /** * @return mixed[] */ - public function providerForTestToStorageValueMissingData(): array + public static function providerForTestToStorageValueMissingData(): array { return [ [['current_time' => 1048633200, 'rfc850' => 'Thu, 01 Jan 2003 00:00:00 GMT']], @@ -96,13 +93,11 @@ public function providerForTestToStorageValueMissingData(): array } /** - * @group fieldType - * @group dateTime - * - * @dataProvider providerForTestToStorageValueMissingData - * * @param mixed[]|null $data */ + #[Group('fieldType')] + #[Group('dateTime')] + #[DataProvider('providerForTestToStorageValueMissingData')] public function testToStorageValueNoTimestampKey(?array $data): void { $value = new FieldValue(); @@ -116,10 +111,8 @@ public function testToStorageValueNoTimestampKey(?array $data): void self::assertSame('', $storageFieldValue->sortKeyString); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToStorageFieldDefinitionWithAdjustment() { $storageFieldDef = new StorageFieldDefinition(); @@ -157,10 +150,8 @@ public function testToStorageFieldDefinitionWithAdjustment() } } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToStorageFieldDefinitionNoDefault() { $storageFieldDef = new StorageFieldDefinition(); @@ -190,10 +181,8 @@ public function testToStorageFieldDefinitionNoDefault() self::assertNull($storageFieldDef->dataText5); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToStorageFieldDefinitionCurrentDate() { $storageFieldDef = new StorageFieldDefinition(); @@ -240,10 +229,8 @@ private function getXMLToDateIntervalMap() ]; } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToFieldDefinitionNoDefault() { $fieldDef = new PersistenceFieldDefinition(); @@ -258,10 +245,8 @@ public function testToFieldDefinitionNoDefault() self::assertNull($fieldDef->defaultValue->data); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToFieldDefinitionCurrentDate() { $time = time(); @@ -283,10 +268,8 @@ public function testToFieldDefinitionCurrentDate() self::assertEqualsWithDelta($time + 1, $dateTimeFromString->getTimestamp(), 1, 'Time does not match within 1s delta'); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToFieldDefinitionWithAdjustmentAndSeconds() { $fieldDef = new PersistenceFieldDefinition(); @@ -314,10 +297,8 @@ public function testToFieldDefinitionWithAdjustmentAndSeconds() self::assertLessThanOrEqual($timestamp + 1, $dateTimeFromString->getTimestamp()); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testToFieldDefinitionWithAdjustmentNoSeconds() { $fieldDef = new PersistenceFieldDefinition(); @@ -371,10 +352,8 @@ private function getXMLStringFromDateInterval(DateInterval $dateInterval): strin return $xmlString; } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testGetDateIntervalFromXML() { $dateIntervalReference = DateInterval::createFromDateString('2 years, 1 months, -4 days, 2 hours, 0 minutes, 34 seconds'); @@ -395,10 +374,8 @@ public function testGetDateIntervalFromXML() self::assertSame($dateIntervalReference->invert, $generatedDateInterval->invert); } - /** - * @group fieldType - * @group dateTime - */ + #[Group('fieldType')] + #[Group('dateTime')] public function testGenerateDateIntervalXML() { $dateIntervalReference = DateInterval::createFromDateString('2 years, 1 month, -4 days, 2 hours, 0 minute, 34 seconds'); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateTest.php index 1da59eb651..b2f246f3ca 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateTest.php @@ -16,14 +16,14 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateConverter - * - * @group fieldType - * @group date - */ +#[CoversClass(DateConverter::class)] +#[Group('fieldType')] +#[Group('date')] class DateTest extends TestCase { protected DateConverter $converter; @@ -38,10 +38,9 @@ protected function setUp(): void } /** - * @dataProvider providerForTestToStorageValue - * * @param array|null $data */ + #[DataProvider('providerForTestToStorageValue')] public function testToStorageValue( ?array $data, int $sortKey, @@ -144,9 +143,7 @@ public function testToFieldValue(): void self::assertSame($storageFieldValue->sortKeyInt, $fieldValue->sortKey); } - /** - * @dataProvider providerForTestToStorageFieldDefinition - */ + #[DataProvider('providerForTestToStorageFieldDefinition')] public function testToStorageFieldDefinition(int $defaultType): void { $storageFieldDef = new StorageFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php index a526c25ae2..59d937fc3d 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php @@ -10,11 +10,11 @@ use Ibexa\Contracts\Core\Persistence\Content\Type\FieldDefinition as PersistenceFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ISBNConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ISBNConverter - */ +#[CoversClass(ISBNConverter::class)] class ISBNTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ISBNConverter */ @@ -25,9 +25,7 @@ protected function setUp(): void $this->converter = new ISBNConverter(); } - /** - * @dataProvider providerForTestToFieldDefinition - */ + #[DataProvider('providerForTestToFieldDefinition')] public function testToFieldDefinition($dataInt, $excpectedIsbn13Value) { $fieldDef = new PersistenceFieldDefinition(); @@ -42,7 +40,7 @@ public function testToFieldDefinition($dataInt, $excpectedIsbn13Value) self::assertSame($excpectedIsbn13Value, $fieldSettings['isISBN13']); } - public function providerForTestToFieldDefinition() + public static function providerForTestToFieldDefinition() { return [ [1, true], diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php index efd77df1df..34770679af 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\KeywordConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\KeywordConverter - */ +#[CoversClass(KeywordConverter::class)] class KeywordTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\KeywordConverter */ @@ -28,10 +28,8 @@ protected function setUp(): void $this->converter = new KeywordConverter(); } - /** - * @group fieldType - * @group keyword - */ + #[Group('fieldType')] + #[Group('keyword')] public function testToStorageValue() { $value = new FieldValue(); @@ -47,10 +45,8 @@ public function testToStorageValue() self::assertEquals('', $storageFieldValue->sortKeyString); } - /** - * @group fieldType - * @group keyword - */ + #[Group('fieldType')] + #[Group('keyword')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -61,19 +57,15 @@ public function testToFieldValue() self::assertEquals('', $fieldValue->sortKey); } - /** - * @group fieldType - * @group keyword - */ + #[Group('fieldType')] + #[Group('keyword')] public function testToStorageFieldDefinition() { $this->converter->toStorageFieldDefinition(new PersistenceFieldDefinition(), new StorageFieldDefinition()); } - /** - * @group fieldType - * @group keyword - */ + #[Group('fieldType')] + #[Group('keyword')] public function testToFieldDefinition() { $this->converter->toFieldDefinition(new StorageFieldDefinition(), new PersistenceFieldDefinition()); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php index 842fd2ed64..50bf0727c1 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php @@ -13,11 +13,11 @@ use Ibexa\Core\FieldType\Media\Type as MediaType; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\MediaConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\MediaConverter - */ +#[CoversClass(MediaConverter::class)] class MediaTest extends TestCase { protected $converter; @@ -27,10 +27,8 @@ protected function setUp(): void $this->converter = new MediaConverter(); } - /** - * @group fieldType - * @group ibexa_media - */ + #[Group('fieldType')] + #[Group('ibexa_media')] public function testToStorageFieldDefinition() { $storageFieldDef = new StorageFieldDefinition(); @@ -65,10 +63,8 @@ public function testToStorageFieldDefinition() ); } - /** - * @group fieldType - * @group ibexa_media - */ + #[Group('fieldType')] + #[Group('ibexa_media')] public function testToFieldDefinition() { $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php index bf3354a294..135c78a1fc 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php @@ -14,11 +14,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationListConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationListConverter - */ +#[CoversClass(RelationListConverter::class)] class RelationListTest extends TestCase { /** @var \PHPUnit\Framework\MockObject\MockObject|\Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationListConverter */ @@ -30,14 +30,12 @@ protected function setUp(): void $this->converter = $this ->getMockBuilder(RelationListConverter::class) ->disableOriginalConstructor() - ->setMethods(['getRelationXmlHashFromDB']) + ->onlyMethods(['getRelationXmlHashFromDB']) ->getMock(); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToStorageValue() { $destinationContentIds = [3, 2, 1]; @@ -103,10 +101,8 @@ public function testToStorageValue() ); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToStorageValueEmpty() { $destinationContentIds = []; @@ -137,10 +133,8 @@ public function testToStorageValueEmpty() ); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -164,10 +158,8 @@ public function testToFieldValue() ); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToFieldValueEmpty() { $storageFieldValue = new StorageFieldValue(); @@ -191,10 +183,8 @@ public function testToFieldValueEmpty() ); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToStorageFieldDefinition() { $fieldDefinition = new PersistenceFieldDefinition( @@ -234,10 +224,8 @@ public function testToStorageFieldDefinition() ); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToFieldDefinitionMultiple() { $storageFieldDefinition = new StorageFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php index 878fda37a5..d91015cef2 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\FieldType\RelationList\Type; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationConverter - */ +#[CoversClass(RelationConverter::class)] class RelationTest extends TestCase { /** @var \PHPUnit\Framework\MockObject\MockObject|\Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationConverter */ @@ -28,10 +28,8 @@ protected function setUp(): void $this->converter = new RelationConverter(); } - /** - * @group fieldType - * @group relationlist - */ + #[Group('fieldType')] + #[Group('relationlist')] public function testToStorageFieldDefinition() { $fieldDefinition = new PersistenceFieldDefinition( diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php index 8ba5a8d52d..617a281ba6 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php @@ -15,11 +15,11 @@ use Ibexa\Core\Persistence\Legacy\Content\MultilingualStorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\SelectionConverter - */ +#[CoversClass(SelectionConverter::class)] class SelectionTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\SelectionConverter */ @@ -32,10 +32,8 @@ protected function setUp(): void $this->converter = new SelectionConverter(); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToStorageValue() { $fieldValue = new FieldValue(); @@ -56,10 +54,8 @@ public function testToStorageValue() ); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToStorageValueEmpty() { $fieldValue = new FieldValue(); @@ -80,10 +76,8 @@ public function testToStorageValueEmpty() ); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -104,10 +98,8 @@ public function testToFieldValue() ); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToFieldValueEmpty() { $storageFieldValue = new StorageFieldValue(); @@ -128,10 +120,8 @@ public function testToFieldValueEmpty() ); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToStorageFieldDefinitionMultiple() { $fieldDefinition = new PersistenceFieldDefinition( @@ -168,10 +158,8 @@ public function testToStorageFieldDefinitionMultiple() self::assertEquals($expectedStorageFieldDefinition, $actualStorageFieldDefinition); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToStorageFieldDefinitionSingle() { $fieldDefinition = new PersistenceFieldDefinition( @@ -206,10 +194,8 @@ public function testToStorageFieldDefinitionSingle() self::assertEquals($expectedStorageFieldDefinition, $actualStorageFieldDefinition); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToFieldDefinitionMultiple() { $storageFieldDefinition = new StorageFieldDefinition(); @@ -275,10 +261,8 @@ public function testToFieldDefinitionMultiple() self::assertEquals($expectedFieldDefinition, $actualFieldDefinition); } - /** - * @group fieldType - * @group selection - */ + #[Group('fieldType')] + #[Group('selection')] public function testToFieldDefinitionSingleEmpty() { $storageFieldDefinition = new StorageFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SerializableConverterTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SerializableConverterTest.php index b05cd2b2ae..1f73e89fe8 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SerializableConverterTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SerializableConverterTest.php @@ -16,11 +16,10 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\SerializableConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\SerializableConverter - */ +#[CoversClass(SerializableConverter::class)] class SerializableConverterTest extends TestCase { private const EXAMPLE_DATA = [ diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php index 5fab303af7..fcd9549697 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php @@ -15,11 +15,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextBlockConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextBlockConverter - */ +#[CoversClass(TextBlockConverter::class)] class TextBlockTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextBlockConverter */ @@ -41,10 +41,8 @@ protected function setUp(): void EOT; } - /** - * @group fieldType - * @group textBlock - */ + #[Group('fieldType')] + #[Group('textBlock')] public function testToStorageValue() { $value = new FieldValue(); @@ -58,10 +56,8 @@ public function testToStorageValue() self::assertSame(0, $storageFieldValue->sortKeyInt); } - /** - * @group fieldType - * @group textBlock - */ + #[Group('fieldType')] + #[Group('textBlock')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -74,10 +70,8 @@ public function testToFieldValue() self::assertSame($storageFieldValue->sortKeyString, $fieldValue->sortKey); } - /** - * @group fieldType - * @group textBlock - */ + #[Group('fieldType')] + #[Group('textBlock')] public function testToStorageFieldDefinition() { $storageFieldDef = new StorageFieldDefinition(); @@ -101,10 +95,8 @@ public function testToStorageFieldDefinition() ); } - /** - * @group fieldType - * @group textBlock - */ + #[Group('fieldType')] + #[Group('textBlock')] public function testToFieldDefinition() { $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php index 4c4c0c984c..89af58b6b5 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php @@ -14,11 +14,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextLineConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextLineConverter - */ +#[CoversClass(TextLineConverter::class)] class TextLineTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TextLineConverter */ @@ -30,10 +30,8 @@ protected function setUp(): void $this->converter = new TextLineConverter(); } - /** - * @group fieldType - * @group textLine - */ + #[Group('fieldType')] + #[Group('textLine')] public function testToStorageValue() { $value = new FieldValue(); @@ -47,10 +45,8 @@ public function testToStorageValue() self::assertSame(0, $storageFieldValue->sortKeyInt); } - /** - * @group fieldType - * @group textLine - */ + #[Group('fieldType')] + #[Group('textLine')] public function testToFieldValue() { $storageFieldValue = new StorageFieldValue(); @@ -64,10 +60,8 @@ public function testToFieldValue() self::assertSame($storageFieldValue->sortKeyString, $fieldValue->sortKey); } - /** - * @group fieldType - * @group textLine - */ + #[Group('fieldType')] + #[Group('textLine')] public function testToStorageFieldDefinitionWithValidator() { $defaultText = 'This is a default text'; @@ -101,10 +95,8 @@ public function testToStorageFieldDefinitionWithValidator() ); } - /** - * @group fieldType - * @group textLine - */ + #[Group('fieldType')] + #[Group('textLine')] public function testToStorageFieldDefinitionNoValidator() { $defaultText = 'This is a default text'; @@ -130,10 +122,8 @@ public function testToStorageFieldDefinitionNoValidator() ); } - /** - * @group fieldType - * @group textLine - */ + #[Group('fieldType')] + #[Group('textLine')] public function testToFieldDefinition() { $defaultText = 'This is a default value'; diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php index 17259a0f4d..341ac289d2 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php @@ -13,17 +13,17 @@ use Ibexa\Contracts\Core\Persistence\Content\Type\FieldDefinition as PersistenceFieldDefinition; use Ibexa\Core\FieldType\FieldSettings; use Ibexa\Core\FieldType\Time\Type as TimeType; +use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateAndTimeConverter; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TimeConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\DateAndTimeConverter - * - * @group fieldType - * @group time - */ +#[CoversClass(DateAndTimeConverter::class)] +#[Group('fieldType')] +#[Group('time')] class TimeTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\TimeConverter */ diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php index 0f3a167f4b..b5faeb7219 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php @@ -12,11 +12,11 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\UrlConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\UrlConverter - */ +#[CoversClass(UrlConverter::class)] class UrlTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\UrlConverter */ @@ -28,10 +28,8 @@ protected function setUp(): void $this->converter = new UrlConverter(); } - /** - * @group fieldType - * @group url - */ + #[Group('fieldType')] + #[Group('url')] public function testToStorageValue() { $value = new FieldValue(); @@ -45,10 +43,8 @@ public function testToStorageValue() self::assertSame($text, $storageFieldValue->dataText); } - /** - * @group fieldType - * @group url - */ + #[Group('fieldType')] + #[Group('url')] public function testToFieldValue() { $text = "A link's text"; @@ -67,19 +63,15 @@ public function testToFieldValue() self::assertEquals($urlId, $fieldValue->data['urlId']); } - /** - * @group fieldType - * @group url - */ + #[Group('fieldType')] + #[Group('url')] public function testToStorageFieldDefinition() { $this->converter->toStorageFieldDefinition(new PersistenceFieldDefinition(), new StorageFieldDefinition()); } - /** - * @group fieldType - * @group url - */ + #[Group('fieldType')] + #[Group('url')] public function testToFieldDefinition() { $this->converter->toFieldDefinition(new StorageFieldDefinition(), new PersistenceFieldDefinition()); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php b/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php index fa711c96a2..da1eea921f 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php @@ -10,10 +10,9 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\ConverterRegistry as Registry; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\FieldValue\ConverterRegistry - */ +#[CoversClass(Registry::class)] class FieldValueConverterRegistryTest extends TestCase { private const TYPE_NAME = 'some-type'; diff --git a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php index 9b361a053b..52d1ce3edb 100644 --- a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php @@ -22,10 +22,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends LanguageAwareTestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Gateway/RandomSortClauseHandlerFactoryTest.php b/tests/lib/Persistence/Legacy/Content/Gateway/RandomSortClauseHandlerFactoryTest.php index ccc27882d6..c24915e2b9 100644 --- a/tests/lib/Persistence/Legacy/Content/Gateway/RandomSortClauseHandlerFactoryTest.php +++ b/tests/lib/Persistence/Legacy/Content/Gateway/RandomSortClauseHandlerFactoryTest.php @@ -23,7 +23,7 @@ class RandomSortClauseHandlerFactoryTest extends TestCase */ public function testGetGateway(): void { - $platform = $this->createMock(AbstractPlatform::class); + $platform = self::createStub(AbstractPlatform::class); $connection = $this->createMock(Connection::class); $connection ->method('getDatabasePlatform') @@ -52,7 +52,7 @@ public function testGetGateway(): void */ public function testGetGatewayNotImplemented(): void { - $platform = $this->createMock(AbstractPlatform::class); + $platform = self::createStub(AbstractPlatform::class); $connection = $this->createMock(Connection::class); $connection ->method('getDatabasePlatform') diff --git a/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php index 5a743d93b4..9297e0e998 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php @@ -16,10 +16,9 @@ use Ibexa\Core\Persistence\Cache\InMemory\InMemoryCache; use Ibexa\Core\Persistence\Legacy\Content\Language\CachingHandler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Language\CachingHandler - */ +#[CoversClass(CachingHandler::class)] class CachingLanguageHandlerTest extends TestCase { /** @@ -254,17 +253,25 @@ public function testDelete() $cacheMock = $this->getLanguageCacheMock(); $innerHandlerMock = $this->getInnerLanguageHandlerMock(); $cacheIdentifierGeneratorMock = $this->getCacheIdentifierGeneratorMock(); - - $cacheIdentifierGeneratorMock->expects(self::exactly(2)) - ->method('generateKey') - ->withConsecutive( - ['language', [2], true], - ['language_list', [], true] - ) - ->willReturnOnConsecutiveCalls( - 'ibx-la-2', - 'ibx-lal' - ); + $matcher = self::exactly(2); + + $cacheIdentifierGeneratorMock->expects($matcher) + ->method('generateKey')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('language', $parameters[0]); + $this->assertSame([2], $parameters[1]); + $this->assertTrue($parameters[2]); + + return 'ibx-la-2'; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('language_list', $parameters[0]); + $this->assertSame([], $parameters[1]); + $this->assertTrue($parameters[2]); + + return 'ibx-lal'; + } + }); $innerHandlerMock->expects(self::once()) ->method('delete') diff --git a/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php index 6e1a1dc9ff..02e803e263 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php @@ -11,10 +11,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Language\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Language\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Language\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php index 7cbde56b28..8eaefac6d3 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php @@ -14,10 +14,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Language\Handler; use Ibexa\Core\Persistence\Legacy\Content\Language\Mapper as LanguageMapper; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Language\Handler - */ +#[CoversClass(Handler::class)] class LanguageHandlerTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php index 55e19d5dfe..7d7ce7ddf6 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php @@ -11,10 +11,9 @@ use Ibexa\Contracts\Core\Persistence\Content\Language\CreateStruct; use Ibexa\Core\Persistence\Legacy\Content\Language\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Language\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { public function testCreateLanguageFromCreateStruct() diff --git a/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php b/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php index 14c39c2035..4eeb0543d8 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php @@ -11,14 +11,14 @@ use Ibexa\Contracts\Core\Persistence\Content\Language\Handler as LanguageHandler; use Ibexa\Core\Persistence\Legacy\Content\Language\MaskGenerator; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\DataProvider; class MaskGeneratorTest extends LanguageAwareTestCase { /** * @param array $languages - * - * @dataProvider getLanguageMaskData */ + #[DataProvider('getLanguageMaskData')] public function testGenerateLanguageMaskFromLanguagesCodes(array $languages, bool $isAlwaysAvailable, int $expectedMask): void { $generator = $this->getMaskGenerator(); @@ -69,9 +69,8 @@ public static function getLanguageMaskData(): array * @param string $languageCode * @param bool $alwaysAvailable * @param int $expectedIndicator - * - * @dataProvider getLanguageIndicatorData */ + #[DataProvider('getLanguageIndicatorData')] public function testGenerateLanguageIndicator( $languageCode, $alwaysAvailable, @@ -153,9 +152,8 @@ public function testIsLanguageAlwaysAvailableNoDefault() /** * @param int $langMask * @param bool $expectedResult - * - * @dataProvider isAlwaysAvailableProvider */ + #[DataProvider('isAlwaysAvailableProvider')] public function testIsAlwaysAvailable($langMask, $expectedResult) { $generator = $this->getMaskGenerator(); @@ -167,7 +165,7 @@ public function testIsAlwaysAvailable($langMask, $expectedResult) * * @return array */ - public function isAlwaysAvailableProvider() + public static function isAlwaysAvailableProvider() { return [ [2, false], @@ -178,9 +176,7 @@ public function isAlwaysAvailableProvider() ]; } - /** - * @dataProvider removeAlwaysAvailableFlagProvider - */ + #[DataProvider('removeAlwaysAvailableFlagProvider')] public function testRemoveAlwaysAvailableFlag($langMask, $expectedResult) { $generator = $this->getMaskGenerator(); @@ -192,7 +188,7 @@ public function testRemoveAlwaysAvailableFlag($langMask, $expectedResult) * * @return array */ - public function removeAlwaysAvailableFlagProvider() + public static function removeAlwaysAvailableFlagProvider() { return [ [3, 2], @@ -205,9 +201,8 @@ public function removeAlwaysAvailableFlagProvider() /** * @param int $langMask * @param array $expectedResult - * - * @dataProvider languageIdsFromMaskProvider */ + #[DataProvider('languageIdsFromMaskProvider')] public function testExtractLanguageIdsFromMask($langMask, array $expectedResult) { $generator = $this->getMaskGenerator(); @@ -219,7 +214,7 @@ public function testExtractLanguageIdsFromMask($langMask, array $expectedResult) * * @return array */ - public function languageIdsFromMaskProvider() + public static function languageIdsFromMaskProvider() { return [ [ diff --git a/tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php b/tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php index 0c0c1b792f..e16e7263ce 100644 --- a/tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php +++ b/tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php @@ -117,7 +117,7 @@ protected function getFieldNameGeneratorMock() protected function getFullTextMapper(Persistence\Legacy\Content\Type\Handler $contentTypeHandler) { return new FullTextMapper( - $this->createMock(FieldRegistry::class), + self::createStub(FieldRegistry::class), $contentTypeHandler ); } diff --git a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php index ce3d273c65..57464531a8 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php @@ -17,10 +17,11 @@ use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway\DoctrineDatabase; use Ibexa\Core\Search\Legacy\Content; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends LanguageAwareTestCase { protected function getLocationGateway() @@ -388,9 +389,7 @@ public function testHideUpdateHidden() ); } - /** - * @depends testHideUpdateHidden - */ + #[Depends('testHideUpdateHidden')] public function testHideUnhideUpdateHidden() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -414,9 +413,7 @@ public function testHideUnhideUpdateHidden() ); } - /** - * @depends testHideUpdateHidden - */ + #[Depends('testHideUpdateHidden')] public function testHideUnhideParentTree() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -443,9 +440,7 @@ public function testHideUnhideParentTree() ); } - /** - * @depends testHideUpdateHidden - */ + #[Depends('testHideUpdateHidden')] public function testHideUnhidePartialSubtree() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -525,9 +520,7 @@ public function testCreateLocation() ); } - /** - * @depends testCreateLocation - */ + #[Depends('testCreateLocation')] public function testGetMainNodeId() { $gateway = $this->getLocationGateway(); @@ -589,11 +582,8 @@ public static function getCreateLocationValues() ]; } - /** - * @depends testCreateLocation - * - * @dataProvider getCreateLocationValues - */ + #[Depends('testCreateLocation')] + #[DataProvider('getCreateLocationValues')] public function testCreateLocationValues($field, $value) { if ($value === null) { @@ -648,11 +638,8 @@ public static function getCreateLocationReturnValues() ]; } - /** - * @depends testCreateLocation - * - * @dataProvider getCreateLocationReturnValues - */ + #[Depends('testCreateLocation')] + #[DataProvider('getCreateLocationReturnValues')] public function testCreateLocationReturnValues($field, $value) { if ($value === null) { @@ -694,9 +681,7 @@ public static function getUpdateLocationData() ]; } - /** - * @dataProvider getUpdateLocationData - */ + #[DataProvider('getUpdateLocationData')] public function testUpdateLocation($field, $value) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -799,13 +784,11 @@ private function buildContentTreeSelectContentWithParentQuery( } /** - * @depends testCreateLocation - * - * @dataProvider getNodeAssignmentValues - * * @param string $field * @param array $expectedResult */ + #[Depends('testCreateLocation')] + #[DataProvider('getNodeAssignmentValues')] public function testCreateLocationNodeAssignmentCreation(string $field, array $expectedResult) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -833,9 +816,7 @@ public function testCreateLocationNodeAssignmentCreation(string $field, array $e ); } - /** - * @depends testCreateLocation - */ + #[Depends('testCreateLocation')] public function testCreateLocationNodeAssignmentCreationMainLocation() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -971,11 +952,8 @@ public static function getConvertNodeAssignmentsLocationValues() ]; } - /** - * @depends testCreateLocationNodeAssignmentCreation - * - * @dataProvider getConvertNodeAssignmentsLocationValues - */ + #[Depends('testCreateLocationNodeAssignmentCreation')] + #[DataProvider('getConvertNodeAssignmentsLocationValues')] public function testConvertNodeAssignments($field, $value) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1033,9 +1011,7 @@ public function testConvertNodeAssignments($field, $value) } } - /** - * @depends testCreateLocationNodeAssignmentCreation - */ + #[Depends('testCreateLocationNodeAssignmentCreation')] public function testConvertNodeAssignmentsMainLocation() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1069,9 +1045,7 @@ public function testConvertNodeAssignmentsMainLocation() ); } - /** - * @depends testCreateLocationNodeAssignmentCreation - */ + #[Depends('testCreateLocationNodeAssignmentCreation')] public function testConvertNodeAssignmentsParentHidden() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1109,9 +1083,7 @@ public function testConvertNodeAssignmentsParentHidden() ); } - /** - * @depends testCreateLocationNodeAssignmentCreation - */ + #[Depends('testCreateLocationNodeAssignmentCreation')] public function testConvertNodeAssignmentsParentInvisible() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1149,9 +1121,7 @@ public function testConvertNodeAssignmentsParentInvisible() ); } - /** - * @depends testCreateLocationNodeAssignmentCreation - */ + #[Depends('testCreateLocationNodeAssignmentCreation')] public function testConvertNodeAssignmentsUpdateAssignment() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1422,7 +1392,7 @@ public function testRemoveLocation() } } - public function providerForTestUpdatePathIdentificationString() + public static function providerForTestUpdatePathIdentificationString() { return [ [77, 2, 'new_solutions', 'new_solutions'], @@ -1432,10 +1402,8 @@ public function providerForTestUpdatePathIdentificationString() /** * Test for the updatePathIdentificationString() method. - * - * - * @dataProvider providerForTestUpdatePathIdentificationString */ + #[DataProvider('providerForTestUpdatePathIdentificationString')] public function testUpdatePathIdentificationString( $locationId, $parentLocationId, diff --git a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php index bd7a083373..79f4cd387f 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php @@ -14,10 +14,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Location\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTrashTest extends LanguageAwareTestCase { protected function getLocationGateway() @@ -92,9 +92,7 @@ public static function getUntrashedLocationValues() ]; } - /** - * @dataProvider getUntrashedLocationValues - */ + #[DataProvider('getUntrashedLocationValues')] public function testUntrashLocationDefault($property, $value) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -185,9 +183,7 @@ public static function getLoadTrashValues() ]; } - /** - * @dataProvider getLoadTrashValues - */ + #[DataProvider('getLoadTrashValues')] public function testLoadTrashByLocationId($field, $value) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -290,9 +286,7 @@ public static function getTrashValues() ]; } - /** - * @dataProvider getTrashValues - */ + #[DataProvider('getTrashValues')] public function testListTrashItem($key, $value) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); diff --git a/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php index b4b66a462c..9235ec0345 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php @@ -11,10 +11,9 @@ use Ibexa\Contracts\Core\Persistence\Content\Location\Trashed; use Ibexa\Core\Persistence\Legacy\Content\Location\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Location\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php index 3a4beafc3f..bcd5bab08a 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php @@ -14,10 +14,9 @@ use Ibexa\Core\Persistence\Legacy\Content as CoreContent; use Ibexa\Core\Persistence\Legacy\Content\Location\Trash\Handler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Location\Trash\Handler - */ +#[CoversClass(Handler::class)] class TrashHandlerTest extends TestCase { /** @@ -63,7 +62,7 @@ public function testTrashSubtree() $handler = $this->getTrashHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('getSubtreeContent') ->with(20) ->will( @@ -85,30 +84,34 @@ public function testTrashSubtree() ) ); + $countLocationsByContentIdMatcher = self::exactly(2); $this->locationGateway - ->expects(self::at(1)) + ->expects($countLocationsByContentIdMatcher) ->method('countLocationsByContentId') - ->with(10) - ->will(self::returnValue(1)); + ->willReturnCallback(static function ($contentId) use ($countLocationsByContentIdMatcher) { + if ($countLocationsByContentIdMatcher->numberOfInvocations() === 1) { + self::assertSame(10, $contentId); + + return 1; + } + + self::assertSame(11, $contentId); + + return 2; + }); $this->locationGateway - ->expects(self::at(2)) + ->expects(self::once()) ->method('trashLocation') ->with(20); $this->locationGateway - ->expects(self::at(3)) - ->method('countLocationsByContentId') - ->with(11) - ->will(self::returnValue(2)); - - $this->locationGateway - ->expects(self::at(4)) + ->expects(self::once()) ->method('removeLocation') ->with(21); $this->locationGateway - ->expects(self::at(5)) + ->expects(self::once()) ->method('loadTrashByLocation') ->with(20) ->will(self::returnValue($array = ['data…'])); @@ -129,7 +132,7 @@ public function testTrashSubtreeReturnsNull() $handler = $this->getTrashHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('getSubtreeContent') ->with(20) ->will( @@ -151,25 +154,29 @@ public function testTrashSubtreeReturnsNull() ) ); + $countLocationsByContentIdMatcher = self::exactly(2); $this->locationGateway - ->expects(self::at(1)) + ->expects($countLocationsByContentIdMatcher) ->method('countLocationsByContentId') - ->with(10) - ->will(self::returnValue(2)); + ->willReturnCallback(static function ($contentId) use ($countLocationsByContentIdMatcher) { + if ($countLocationsByContentIdMatcher->numberOfInvocations() === 1) { + self::assertSame(10, $contentId); + + return 2; + } + + self::assertSame(11, $contentId); + + return 1; + }); $this->locationGateway - ->expects(self::at(2)) + ->expects(self::once()) ->method('removeLocation') ->with(20); $this->locationGateway - ->expects(self::at(3)) - ->method('countLocationsByContentId') - ->with(11) - ->will(self::returnValue(1)); - - $this->locationGateway - ->expects(self::at(4)) + ->expects(self::once()) ->method('trashLocation') ->with(21); @@ -182,7 +189,7 @@ public function testTrashSubtreeUpdatesMainLocation() $handler = $this->getTrashHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('getSubtreeContent') ->with(20) ->will( @@ -204,30 +211,34 @@ public function testTrashSubtreeUpdatesMainLocation() ) ); + $countLocationsByContentIdMatcher = self::exactly(2); $this->locationGateway - ->expects(self::at(1)) + ->expects($countLocationsByContentIdMatcher) ->method('countLocationsByContentId') - ->with(10) - ->will(self::returnValue(1)); + ->willReturnCallback(static function ($contentId) use ($countLocationsByContentIdMatcher) { + if ($countLocationsByContentIdMatcher->numberOfInvocations() === 1) { + self::assertSame(10, $contentId); + + return 1; + } + + self::assertSame(11, $contentId); + + return 2; + }); $this->locationGateway - ->expects(self::at(2)) + ->expects(self::once()) ->method('trashLocation') ->with(20); $this->locationGateway - ->expects(self::at(3)) - ->method('countLocationsByContentId') - ->with(11) - ->will(self::returnValue(2)); - - $this->locationGateway - ->expects(self::at(4)) + ->expects(self::once()) ->method('removeLocation') ->with(21); $this->locationGateway - ->expects(self::at(5)) + ->expects(self::once()) ->method('getFallbackMainNodeData') ->with(11, 21) ->will( @@ -246,7 +257,7 @@ public function testTrashSubtreeUpdatesMainLocation() ->with(11, 100); $this->locationGateway - ->expects(self::at(6)) + ->expects(self::once()) ->method('loadTrashByLocation') ->with(20) ->will(self::returnValue($array = ['data…'])); @@ -267,7 +278,7 @@ public function testRecover() $handler = $this->getTrashHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('untrashLocation') ->with(69, 23) ->will( @@ -284,13 +295,13 @@ public function testLoadTrashItem() $handler = $this->getTrashHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('loadTrashByLocation') ->with(69) ->will(self::returnValue($array = ['data…'])); $this->locationMapper - ->expects(self::at(0)) + ->expects(self::once()) ->method('createLocationFromRow') ->with($array, null, new Trashed()); @@ -314,62 +325,76 @@ public function testEmptyTrash(): void ], ]; - // Index for locationGateway calls - $i = 0; - // Index for contentHandler calls - $iContent = 0; - // Index for locationMapper calls - $iLocation = 0; - $this->locationGateway - ->expects(self::at($i++)) + ->expects(self::once()) ->method('countTrashed') ->willReturn(2); $this->locationGateway - ->expects(self::at($i++)) + ->expects(self::once()) ->method('listTrashed') ->willReturn($expectedTrashed); - $trashedItemIds = []; - $trashedContentIds = []; + $createLocationFromRowMatcher = self::exactly(count($expectedTrashed)); + $this->locationMapper + ->expects($createLocationFromRowMatcher) + ->method('createLocationFromRow') + ->willReturnCallback(static function () use ($createLocationFromRowMatcher, $expectedTrashed): Trashed { + $trashedElement = $expectedTrashed[$createLocationFromRowMatcher->numberOfInvocations() - 1]; - foreach ($expectedTrashed as $trashedElement) { - $this->locationMapper - ->expects(self::at($iLocation++)) - ->method('createLocationFromRow') - ->willReturn( - new Trashed( - [ - 'id' => $trashedElement['node_id'], - 'contentId' => $trashedElement['contentobject_id'], - 'pathString' => $trashedElement['path_string'], - ] - ) + return new Trashed( + [ + 'id' => $trashedElement['node_id'], + 'contentId' => $trashedElement['contentobject_id'], + 'pathString' => $trashedElement['path_string'], + ] ); + }); + + $loadReverseRelationsMatcher = self::exactly(count($expectedTrashed)); + $this->contentHandler + ->expects($loadReverseRelationsMatcher) + ->method('loadReverseRelations') + ->willReturnCallback(static function ($contentId) use ($loadReverseRelationsMatcher, $expectedTrashed): array { + $trashedElement = $expectedTrashed[$loadReverseRelationsMatcher->numberOfInvocations() - 1]; + self::assertSame($trashedElement['contentobject_id'], $contentId); + + return []; + }); + + $removeElementFromTrashMatcher = self::exactly(count($expectedTrashed)); + $this->locationGateway + ->expects($removeElementFromTrashMatcher) + ->method('removeElementFromTrash') + ->willReturnCallback(static function ($nodeId) use ($removeElementFromTrashMatcher, $expectedTrashed): void { + $trashedElement = $expectedTrashed[$removeElementFromTrashMatcher->numberOfInvocations() - 1]; + self::assertSame($trashedElement['node_id'], $nodeId); + }); - $this->contentHandler - ->expects(self::at($iContent++)) - ->method('loadReverseRelations') - ->with($trashedElement['contentobject_id']) - ->willReturn([]); + $countLocationsByContentIdMatcher = self::exactly(count($expectedTrashed)); + $this->locationGateway + ->expects($countLocationsByContentIdMatcher) + ->method('countLocationsByContentId') + ->willReturnCallback(static function ($contentId) use ($countLocationsByContentIdMatcher, $expectedTrashed) { + $trashedElement = $expectedTrashed[$countLocationsByContentIdMatcher->numberOfInvocations() - 1]; + self::assertSame($trashedElement['contentobject_id'], $contentId); - $this->locationGateway - ->expects(self::at($i++)) - ->method('removeElementFromTrash') - ->with($trashedElement['node_id']); + return 0; + }); - $this->locationGateway - ->expects(self::at($i++)) - ->method('countLocationsByContentId') - ->with($trashedElement['contentobject_id']) - ->willReturn(0); + $deleteContentMatcher = self::exactly(count($expectedTrashed)); + $this->contentHandler + ->expects($deleteContentMatcher) + ->method('deleteContent') + ->willReturnCallback(static function ($contentId) use ($deleteContentMatcher, $expectedTrashed): void { + $trashedElement = $expectedTrashed[$deleteContentMatcher->numberOfInvocations() - 1]; + self::assertSame($trashedElement['contentobject_id'], $contentId); + }); - $this->contentHandler - ->expects(self::at($iContent++)) - ->method('deleteContent') - ->with($trashedElement['contentobject_id']); + $trashedItemIds = []; + $trashedContentIds = []; + foreach ($expectedTrashed as $trashedElement) { $trashedItemIds[] = $trashedElement['node_id']; $trashedContentIds[] = $trashedElement['contentobject_id']; } diff --git a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php index 3809898d80..15507fcae8 100644 --- a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php @@ -11,6 +11,7 @@ use Ibexa\Contracts\Core\Persistence\Content\ContentInfo; use Ibexa\Contracts\Core\Persistence\Content\Location; use Ibexa\Contracts\Core\Persistence\Content\Location\CreateStruct; +use Ibexa\Contracts\Core\Persistence\Content\Location\Handler as CoveredHandler; use Ibexa\Contracts\Core\Persistence\Content\Location\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\ObjectState; use Ibexa\Contracts\Core\Persistence\Content\ObjectState\Group as ObjectStateGroup; @@ -23,10 +24,12 @@ use Ibexa\Core\Persistence\Legacy\Content\ObjectState\Handler as ObjectStateHandler; use Ibexa\Core\Persistence\Legacy\Content\TreeHandler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Location\Handler - */ +#[CoversClass(Handler::class)] +#[CoversMethod(CoveredHandler::class, 'countLocationsByContent')] class LocationHandlerTest extends TestCase { /** @@ -80,7 +83,7 @@ protected function getLocationHandler() $this->locationGateway, $this->locationMapper, $this->contentHandler, - $this->createMock(ObjectStateHandler::class), + self::createStub(ObjectStateHandler::class), $this->treeHandler ); } @@ -201,22 +204,24 @@ public function testMoveSubtree() 'parent_node_id' => 2, 'contentobject_id' => 67, ]; - $this->locationGateway - ->expects(self::at(0)) - ->method('getBasicNodeData') - ->with(69) - ->will(self::returnValue($sourceData)); - $destinationData = [ 'node_id' => 77, 'path_string' => '/1/2/77/', 'contentobject_id' => 68, ]; + + $getBasicNodeDataMatcher = self::exactly(2); $this->locationGateway - ->expects(self::at(1)) + ->expects($getBasicNodeDataMatcher) ->method('getBasicNodeData') - ->with(77) - ->will(self::returnValue($destinationData)); + ->willReturnCallback(static function (int $nodeId) use ($getBasicNodeDataMatcher, $sourceData, $destinationData) { + $expectedArgs = [$sourceData['node_id'], $destinationData['node_id']]; + $returnValues = [$sourceData, $destinationData]; + $index = $getBasicNodeDataMatcher->numberOfInvocations() - 1; + self::assertSame($expectedArgs[$index], $nodeId); + + return $returnValues[$index]; + }); $this->locationGateway ->expects(self::once()) @@ -228,36 +233,40 @@ public function testMoveSubtree() ->method('updateNodeAssignment') ->with(67, 2, 77, 5); + $loadLocationMatcher = self::exactly(2); $this->treeHandler - ->expects(self::at(0)) + ->expects($loadLocationMatcher) ->method('loadLocation') - ->with($sourceData['node_id']) - ->will(self::returnValue( - new Location( - [ + ->willReturnCallback(static function (int $nodeId) use ($loadLocationMatcher, $sourceData, $destinationData) { + $expectedArgs = [$sourceData['node_id'], $destinationData['node_id']]; + $returnValues = [ + new Location([ 'id' => $sourceData['node_id'], 'contentId' => $sourceData['contentobject_id'], - ] - ) - )); - - $this->treeHandler - ->expects(self::at(1)) - ->method('loadLocation') - ->with($destinationData['node_id']) - ->will(self::returnValue(new Location(['contentId' => $destinationData['contentobject_id']]))); + ]), + new Location(['contentId' => $destinationData['contentobject_id']]), + ]; + $index = $loadLocationMatcher->numberOfInvocations() - 1; + self::assertSame($expectedArgs[$index], $nodeId); - $this->contentHandler - ->expects(self::at(0)) - ->method('loadContentInfo') - ->with($destinationData['contentobject_id']) - ->will(self::returnValue(new ContentInfo(['sectionId' => 12345]))); + return $returnValues[$index]; + }); + $loadContentInfoMatcher = self::exactly(2); $this->contentHandler - ->expects(self::at(1)) + ->expects($loadContentInfoMatcher) ->method('loadContentInfo') - ->with($sourceData['contentobject_id']) - ->will(self::returnValue(new ContentInfo(['mainLocationId' => 69]))); + ->willReturnCallback(static function (int $contentId) use ($loadContentInfoMatcher, $sourceData, $destinationData) { + $expectedArgs = [$destinationData['contentobject_id'], $sourceData['contentobject_id']]; + $returnValues = [ + new ContentInfo(['sectionId' => 12345]), + new ContentInfo(['mainLocationId' => 69]), + ]; + $index = $loadContentInfoMatcher->numberOfInvocations() - 1; + self::assertSame($expectedArgs[$index], $contentId); + + return $returnValues[$index]; + }); $this->treeHandler ->expects(self::once()) @@ -272,7 +281,7 @@ public function testHideUpdateHidden() $handler = $this->getLocationHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('getBasicNodeData') ->with(69) ->will( @@ -293,15 +302,13 @@ public function testHideUpdateHidden() $handler->hide(69); } - /** - * @depends testHideUpdateHidden - */ + #[Depends('testHideUpdateHidden')] public function testHideUnhideUpdateHidden() { $handler = $this->getLocationHandler(); $this->locationGateway - ->expects(self::at(0)) + ->expects(self::once()) ->method('getBasicNodeData') ->with(69) ->will( @@ -476,39 +483,6 @@ public function testCopySubtree() ->with($destinationData['node_id']) ->will(self::returnValue($destinationData)); - $objectStateHandlerCall = 0; - $this->objectStateHandler->expects(self::at($objectStateHandlerCall++)) - ->method('loadAllGroups') - ->will( - self::returnValue( - [ - new ObjectStateGroup(['id' => 10]), - new ObjectStateGroup(['id' => 20]), - ] - ) - ); - $this->objectStateHandler->expects(self::at($objectStateHandlerCall++)) - ->method('loadObjectStates') - ->with(self::equalTo(10)) - ->will( - self::returnValue( - [ - new ObjectState(['id' => 11, 'groupId' => 10]), - new ObjectState(['id' => 12, 'groupId' => 10]), - ] - ) - ); - $this->objectStateHandler->expects(self::at($objectStateHandlerCall++)) - ->method('loadObjectStates') - ->with(self::equalTo(20)) - ->will( - self::returnValue( - [ - new ObjectState(['id' => 21, 'groupId' => 20]), - new ObjectState(['id' => 22, 'groupId' => 20]), - ] - ) - ); $defaultObjectStates = [ new ObjectState(['id' => 11, 'groupId' => 10]), new ObjectState(['id' => 21, 'groupId' => 20]), @@ -519,100 +493,180 @@ public function testCopySubtree() array_column($subtreeContentRows, 'contentobject_id') ) ); - foreach ($contentIds as $index => $contentId) { - $this->contentHandler - ->expects(self::at($index * 2)) - ->method('copy') - ->with($contentId, 1) - ->will( - self::returnValue( - new Content( - [ - 'versionInfo' => new VersionInfo( - [ - 'contentInfo' => new ContentInfo( - [ - 'id' => $contentId + $offset, - 'currentVersionNo' => 1, - ] - ), - ] - ), - ] - ) - ) - ); + // loadAllGroups(), loadObjectStates() and setContentState() are all called on the same + // mock in a single global order: loadAllGroups() once, loadObjectStates() twice (once per + // object state group), then setContentState() once per content id per default object state. + $objectStateHandlerInvocationOrder = 0; + + $setContentStateExpectedArgs = []; + foreach ($contentIds as $contentId) { foreach ($defaultObjectStates as $objectState) { - $this->objectStateHandler->expects(self::at($objectStateHandlerCall++)) - ->method('setContentState') - ->with( - $contentId + $offset, - $objectState->groupId, - $objectState->id - ); + $setContentStateExpectedArgs[] = [$contentId + $offset, $objectState->groupId, $objectState->id]; } + } - $this->contentHandler - ->expects(self::at($index * 2 + 1)) - ->method('publish') - ->with( - $contentId + $offset, - 1, - self::isInstanceOf(Content\MetadataUpdateStruct::class) - ) - ->will( - self::returnValue( - new Content( - [ - 'versionInfo' => new VersionInfo( - [ - 'contentInfo' => new ContentInfo( - [ - 'id' => ($contentId + $offset), - ] - ), - ] - ), - ] - ) - ) - ); + $this->objectStateHandler + ->expects(self::once()) + ->method('loadAllGroups') + ->willReturnCallback(static function () use (&$objectStateHandlerInvocationOrder) { + self::assertSame(0, $objectStateHandlerInvocationOrder++); + + return [ + new ObjectStateGroup(['id' => 10]), + new ObjectStateGroup(['id' => 20]), + ]; + }); + + $this->objectStateHandler + ->expects(self::exactly(2)) + ->method('loadObjectStates') + ->willReturnCallback(static function (int $groupId) use (&$objectStateHandlerInvocationOrder) { + $order = $objectStateHandlerInvocationOrder++; + switch ($order) { + case 1: + self::assertSame(10, $groupId); + + return [ + new ObjectState(['id' => 11, 'groupId' => 10]), + new ObjectState(['id' => 12, 'groupId' => 10]), + ]; + case 2: + self::assertSame(20, $groupId); + + return [ + new ObjectState(['id' => 21, 'groupId' => 20]), + new ObjectState(['id' => 22, 'groupId' => 20]), + ]; + default: + self::fail(sprintf('Unexpected invocation order %d for loadObjectStates()', $order)); + } + }); + + $this->objectStateHandler + ->expects(self::exactly(count($setContentStateExpectedArgs))) + ->method('setContentState') + ->willReturnCallback(static function (int $contentId, int $groupId, int $stateId) use (&$objectStateHandlerInvocationOrder, $setContentStateExpectedArgs) { + $order = $objectStateHandlerInvocationOrder++; + $index = $order - 3; + self::assertArrayHasKey($index, $setContentStateExpectedArgs); + self::assertSame($setContentStateExpectedArgs[$index], [$contentId, $groupId, $stateId]); + + return true; + }); + + // copy(), publish() and (later) loadContentInfo() are all called on the content handler + // mock in a single global order: copy()/publish() alternate per content id, then + // loadContentInfo() is called twice at the end. + $contentHandlerInvocationOrder = 0; + + $copyExpectedArgs = []; + $copyReturnValues = []; + $publishExpectedArgs = []; + $publishReturnValues = []; + foreach ($contentIds as $contentId) { + $copyExpectedArgs[] = [$contentId, 1]; + $copyReturnValues[] = new Content( + [ + 'versionInfo' => new VersionInfo( + [ + 'contentInfo' => new ContentInfo( + [ + 'id' => $contentId + $offset, + 'currentVersionNo' => 1, + ] + ), + ] + ), + ] + ); + $publishExpectedArgs[] = [$contentId + $offset, 1]; + $publishReturnValues[] = new Content( + [ + 'versionInfo' => new VersionInfo( + [ + 'contentInfo' => new ContentInfo( + [ + 'id' => $contentId + $offset, + ] + ), + ] + ), + ] + ); } - $lastContentHandlerIndex = $index * 2 + 1; + $this->contentHandler + ->expects(self::exactly(count($contentIds))) + ->method('copy') + ->willReturnCallback(static function (int $contentId, int $versionNo) use (&$contentHandlerInvocationOrder, $copyExpectedArgs, $copyReturnValues) { + $order = $contentHandlerInvocationOrder++; + self::assertSame(0, $order % 2, sprintf('Expected copy() at an even invocation order, got %d', $order)); + $index = intdiv($order, 2); + self::assertSame($copyExpectedArgs[$index], [$contentId, $versionNo]); + + return $copyReturnValues[$index]; + }); + + $this->contentHandler + ->expects(self::exactly(count($contentIds))) + ->method('publish') + ->willReturnCallback(static function (int $contentId, int $versionNo, Content\MetadataUpdateStruct $metadataUpdateStruct) use (&$contentHandlerInvocationOrder, $publishExpectedArgs, $publishReturnValues) { + $order = $contentHandlerInvocationOrder++; + self::assertSame(1, $order % 2, sprintf('Expected publish() at an odd invocation order, got %d', $order)); + $index = intdiv($order, 2); + self::assertSame($publishExpectedArgs[$index], [$contentId, $versionNo]); + + return $publishReturnValues[$index]; + }); + + $locationCreateStructReturnValues = []; + $expectedCreateStructArgs = []; + $createReturnValues = []; foreach ($subtreeContentRows as $index => $row) { $mapper = new Mapper(); $createStruct = $mapper->getLocationCreateStruct($row); - $this->locationMapper - ->expects(self::at($index)) - ->method('getLocationCreateStruct') - ->with($row) - ->will(self::returnValue($createStruct)); - - $createStruct = clone $createStruct; - $createStruct->contentId = $createStruct->contentId + $offset; - $createStruct->parentId = $index === 0 ? $destinationData['node_id'] : $createStruct->parentId + $offset; - $createStruct->invisible = true; - $createStruct->mainLocationId = $mainLocationsMap[$index]; - $handler - ->expects(self::at($index)) - ->method('create') - ->with($createStruct) - ->will( - self::returnValue( - new Location( - [ - 'id' => $row['node_id'] + $offset, - 'contentId' => $row['contentobject_id'], - 'hidden' => false, - 'invisible' => true, - ] - ) - ) - ); + $locationCreateStructReturnValues[$index] = $createStruct; + + $expectedCreateStruct = clone $createStruct; + $expectedCreateStruct->contentId = $expectedCreateStruct->contentId + $offset; + $expectedCreateStruct->parentId = $index === 0 ? $destinationData['node_id'] : $expectedCreateStruct->parentId + $offset; + $expectedCreateStruct->invisible = true; + $expectedCreateStruct->mainLocationId = $mainLocationsMap[$index]; + $expectedCreateStructArgs[$index] = $expectedCreateStruct; + + $createReturnValues[$index] = new Location( + [ + 'id' => $row['node_id'] + $offset, + 'contentId' => $row['contentobject_id'], + 'hidden' => false, + 'invisible' => true, + ] + ); } + $getLocationCreateStructMatcher = self::exactly(count($subtreeContentRows)); + $this->locationMapper + ->expects($getLocationCreateStructMatcher) + ->method('getLocationCreateStruct') + ->willReturnCallback(static function (array $row) use ($getLocationCreateStructMatcher, $subtreeContentRows, $locationCreateStructReturnValues) { + $index = $getLocationCreateStructMatcher->numberOfInvocations() - 1; + self::assertSame($subtreeContentRows[$index], $row); + + return $locationCreateStructReturnValues[$index]; + }); + + $createMatcher = self::exactly(count($subtreeContentRows)); + $handler + ->expects($createMatcher) + ->method('create') + ->willReturnCallback(static function (CreateStruct $createStruct) use ($createMatcher, $expectedCreateStructArgs, $createReturnValues) { + $index = $createMatcher->numberOfInvocations() - 1; + self::assertEquals($expectedCreateStructArgs[$index], $createStruct); + + return $createReturnValues[$index]; + }); + foreach ($updateMainLocationsMap as $contentId => $locationId) { $handler ->expects(self::any()) @@ -627,16 +681,23 @@ public function testCopySubtree() ->will(self::returnValue(new Location(['contentId' => $destinationData['contentobject_id']]))); $this->contentHandler - ->expects(self::at($lastContentHandlerIndex + 1)) + ->expects(self::exactly(2)) ->method('loadContentInfo') - ->with($destinationData['contentobject_id']) - ->will(self::returnValue(new ContentInfo(['sectionId' => 12345]))); - - $this->contentHandler - ->expects(self::at($lastContentHandlerIndex + 2)) - ->method('loadContentInfo') - ->with(21) - ->will(self::returnValue(new ContentInfo(['mainLocationId' => 1010]))); + ->willReturnCallback(static function (int $contentId) use (&$contentHandlerInvocationOrder, $contentIds, $destinationData) { + $order = $contentHandlerInvocationOrder++; + switch ($order) { + case count($contentIds) * 2: + self::assertSame($destinationData['contentobject_id'], $contentId); + + return new ContentInfo(['sectionId' => 12345]); + case count($contentIds) * 2 + 1: + self::assertSame(21, $contentId); + + return new ContentInfo(['mainLocationId' => 1010]); + default: + self::fail(sprintf('Unexpected invocation order %d for loadContentInfo()', $order)); + } + }); $handler ->expects(self::once()) @@ -649,9 +710,6 @@ public function testCopySubtree() ); } - /** - * @covers \Ibexa\Contracts\Core\Persistence\Content\Location\Handler::countLocationsByContent - */ public function testCountLocationsByContent(): void { $handler = $this->getLocationHandler(); @@ -676,7 +734,6 @@ public function testCountLocationsByContent(): void protected function getPartlyMockedHandler(array $methods) { return $this->getMockBuilder(LocationHandler::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->locationGateway = $this->createMock(Gateway::class), @@ -686,6 +743,7 @@ protected function getPartlyMockedHandler(array $methods) $this->treeHandler = $this->createMock(TreeHandler::class), ] ) + ->onlyMethods(array_values($methods)) ->getMock(); } } diff --git a/tests/lib/Persistence/Legacy/Content/Mapper/ResolveVirtualFieldSubscriberTest.php b/tests/lib/Persistence/Legacy/Content/Mapper/ResolveVirtualFieldSubscriberTest.php index 90d22e8f3d..0534b6f3e8 100644 --- a/tests/lib/Persistence/Legacy/Content/Mapper/ResolveVirtualFieldSubscriberTest.php +++ b/tests/lib/Persistence/Legacy/Content/Mapper/ResolveVirtualFieldSubscriberTest.php @@ -317,7 +317,7 @@ private function getConverterRegistry(): ConverterRegistry { $converterRegistry = $this->createMock(ConverterRegistry::class); $converterRegistry->method('getConverter') - ->willReturn($this->createMock(Converter::class)); + ->willReturn(self::createStub(Converter::class)); return $converterRegistry; } diff --git a/tests/lib/Persistence/Legacy/Content/MapperTest.php b/tests/lib/Persistence/Legacy/Content/MapperTest.php index 076136a45b..b09eb0ba0f 100644 --- a/tests/lib/Persistence/Legacy/Content/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/MapperTest.php @@ -29,12 +29,13 @@ use Ibexa\Core\Persistence\Legacy\Content\Mapper\ResolveVirtualFieldSubscriber; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; use Ibexa\Core\Persistence\Legacy\Content\StorageRegistry; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends LanguageAwareTestCase { /** @@ -166,7 +167,7 @@ public function testConvertToStorageValue() public function testExtractContentFromRows() { - $rowsFixture = $this->getContentExtractFixture(); + $rowsFixture = self::getContentExtractFixture(); $nameRowsFixture = $this->getNamesExtractFixture(); $contentType = $this->getContentTypeFromRows($rowsFixture); @@ -202,7 +203,7 @@ public function testExtractContentFromRows() public function testExtractContentFromRowsWithNewFieldDefinitions(): void { - $rowsFixture = $this->getContentExtractFixture(); + $rowsFixture = self::getContentExtractFixture(); $nameRowsFixture = $this->getNamesExtractFixture(); $contentType = $this->getContentTypeFromRows($rowsFixture); @@ -250,7 +251,7 @@ public function testExtractContentFromRowsWithNewFieldDefinitions(): void public function testExtractContentFromRowsWithRemovedFieldDefinitions(): void { - $rowsFixture = $this->getContentExtractFixture(); + $rowsFixture = self::getContentExtractFixture(); $nameRowsFixture = $this->getNamesExtractFixture(); $contentType = $this->getContentTypeFromRows($rowsFixture); @@ -397,9 +398,7 @@ public function testCreateCreateStructFromContent() // fields } - /** - * @depends testCreateCreateStructFromContent - */ + #[Depends('testCreateCreateStructFromContent')] public function testCreateCreateStructFromContentBasicProperties($data) { $content = $data['original']; @@ -417,9 +416,7 @@ public function testCreateCreateStructFromContentBasicProperties($data) self::assertGreaterThanOrEqual($time, $struct->modified); } - /** - * @depends testCreateCreateStructFromContent - */ + #[Depends('testCreateCreateStructFromContent')] public function testCreateCreateStructFromContentParentLocationsEmpty($data) { self::assertEquals( @@ -428,9 +425,7 @@ public function testCreateCreateStructFromContentParentLocationsEmpty($data) ); } - /** - * @depends testCreateCreateStructFromContent - */ + #[Depends('testCreateCreateStructFromContent')] public function testCreateCreateStructFromContentFieldCount($data) { self::assertEquals( @@ -439,9 +434,7 @@ public function testCreateCreateStructFromContentFieldCount($data) ); } - /** - * @depends testCreateCreateStructFromContent - */ + #[Depends('testCreateCreateStructFromContent')] public function testCreateCreateStructFromContentFieldsNoId($data) { foreach ($data['result']->fields as $field) { @@ -484,11 +477,10 @@ public function testCreateCreateStructFromContentWithPreserveOriginalLanguage() } /** - * @dataProvider extractContentInfoFromRowProvider - * * @param array $fixtures * @param string $prefix */ + #[DataProvider('extractContentInfoFromRowProvider')] public function testExtractContentInfoFromRow(array $fixtures, $prefix) { $contentInfoReference = $this->getContentExtractReference()->versionInfo->contentInfo; @@ -507,9 +499,9 @@ public function testExtractContentInfoFromRow(array $fixtures, $prefix) * * @return array */ - public function extractContentInfoFromRowProvider() + public static function extractContentInfoFromRowProvider() { - $fixtures = $this->getContentExtractFixture(); + $fixtures = self::getContentExtractFixture(); $fixturesNoPrefix = []; foreach ($fixtures[0] as $key => $value) { $keyNoPrefix = $key === 'content_tree_main_node_id' @@ -544,7 +536,7 @@ public function testCreateRelationFromCreateStruct() */ public function extractVersionInfoFromRowProvider() { - $fixturesAll = $this->getContentExtractFixture(); + $fixturesAll = self::getContentExtractFixture(); $fixtures = $fixturesAll[0]; $fixtures['content_version_names'] = [ ['content_translation' => 'eng-US', 'name' => 'Something'], @@ -570,7 +562,7 @@ public function extractVersionInfoFromRowProvider() * * @return array */ - protected function getContentExtractFixture() + protected static function getContentExtractFixture() { return require __DIR__ . '/_fixtures/extract_content_from_rows.php'; } @@ -670,7 +662,6 @@ protected function getValueConverterRegistryMock() { if (!isset($this->valueConverterRegistryMock)) { $this->valueConverterRegistryMock = $this->getMockBuilder(Registry::class) - ->setMethods([]) ->getMock(); $this->valueConverterRegistryMock @@ -703,8 +694,8 @@ protected function getEventDispatcher(): EventDispatcherInterface $eventDispatcher->addSubscriber( new ResolveVirtualFieldSubscriber( $this->getValueConverterRegistryMock(), - $this->createMock(StorageRegistry::class), - $this->createMock(Gateway::class) + self::createStub(StorageRegistry::class), + self::createStub(Gateway::class) ) ); diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php index 92ec9e8d05..aa89965495 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php @@ -12,10 +12,9 @@ use Ibexa\Core\Persistence\Legacy\Content\ObjectState\Gateway; use Ibexa\Core\Persistence\Legacy\Content\ObjectState\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\ObjectState\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends LanguageAwareTestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php index d91c48aecb..f5eab27292 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php @@ -12,10 +12,9 @@ use Ibexa\Contracts\Core\Persistence\Content\ObjectState\InputStruct; use Ibexa\Core\Persistence\Legacy\Content\ObjectState\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\ObjectState\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends LanguageAwareTestCase { public function testCreateObjectStateFromData() diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php index 8d1fc3f9ba..9e4d6de00b 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php @@ -16,10 +16,9 @@ use Ibexa\Core\Persistence\Legacy\Content\ObjectState\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase as APIBaseTest; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\ObjectState\Handler - */ +#[CoversClass(Handler::class)] class ObjectStateHandlerTest extends LanguageAwareTestCase { /** @@ -253,27 +252,21 @@ public function testDeleteGroup() ) ); - $gatewayMock->expects(self::exactly(2)) - ->method('deleteObjectStateLinks'); - - $gatewayMock->expects(self::exactly(2)) - ->method('deleteObjectState'); - - $gatewayMock->expects(self::at(1)) - ->method('deleteObjectStateLinks') - ->with(self::equalTo(1)); - - $gatewayMock->expects(self::at(2)) - ->method('deleteObjectState') - ->with(self::equalTo(1)); - - $gatewayMock->expects(self::at(3)) + $deleteObjectStateLinksMatcher = self::exactly(2); + $gatewayMock->expects($deleteObjectStateLinksMatcher) ->method('deleteObjectStateLinks') - ->with(self::equalTo(2)); + ->willReturnCallback(static function ($stateId) use ($deleteObjectStateLinksMatcher): void { + $expected = $deleteObjectStateLinksMatcher->numberOfInvocations() === 1 ? 1 : 2; + self::assertSame($expected, $stateId); + }); - $gatewayMock->expects(self::at(4)) + $deleteObjectStateMatcher = self::exactly(2); + $gatewayMock->expects($deleteObjectStateMatcher) ->method('deleteObjectState') - ->with(self::equalTo(2)); + ->willReturnCallback(static function ($stateId) use ($deleteObjectStateMatcher): void { + $expected = $deleteObjectStateMatcher->numberOfInvocations() === 1 ? 1 : 2; + self::assertSame($expected, $stateId); + }); $gatewayMock->expects(self::once()) ->method('deleteObjectStateGroup') @@ -451,20 +444,18 @@ public function testSetPriority() ) ); - $gatewayMock->expects(self::exactly(3)) - ->method('updateObjectStatePriority'); - - $gatewayMock->expects(self::at(2)) - ->method('updateObjectStatePriority') - ->with(self::equalTo(2), self::equalTo(0)); - - $gatewayMock->expects(self::at(3)) - ->method('updateObjectStatePriority') - ->with(self::equalTo(1), self::equalTo(1)); - - $gatewayMock->expects(self::at(4)) + $updateObjectStatePriorityMatcher = self::exactly(3); + $gatewayMock->expects($updateObjectStatePriorityMatcher) ->method('updateObjectStatePriority') - ->with(self::equalTo(3), self::equalTo(2)); + ->willReturnCallback(static function ($stateId, $priority) use ($updateObjectStatePriorityMatcher): void { + [$expectedStateId, $expectedPriority] = match ($updateObjectStatePriorityMatcher->numberOfInvocations()) { + 1 => [2, 0], + 2 => [1, 1], + 3 => [3, 2], + }; + self::assertSame($expectedStateId, $stateId); + self::assertSame($expectedPriority, $priority); + }); $handler->setPriority(2, 0); } @@ -635,7 +626,6 @@ protected function getMapperMock() if (!isset($this->mapperMock)) { $this->mapperMock = $this->getMockBuilder(Mapper::class) ->setConstructorArgs([$this->getLanguageHandler()]) - ->setMethods([]) ->getMock(); } diff --git a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php index 3b647a309d..6ebd997440 100644 --- a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php @@ -10,10 +10,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Section\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Section\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Section\Gateway\DoctrineDatabase::insertSection - */ +#[CoversMethod(DoctrineDatabase::class, 'insertSection')] class DoctrineDatabaseTest extends TestCase { /** @@ -232,9 +232,7 @@ public function testDeleteSection() ); } - /** - * @depends testCountContentObjectsInSection - */ + #[Depends('testCountContentObjectsInSection')] public function testAssignSectionToContent() { $this->insertDatabaseFixture( diff --git a/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php index 21b5808771..9c03dd0184 100644 --- a/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php @@ -11,10 +11,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Section\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Section\Handler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Section\Handler - */ +#[CoversClass(Handler::class)] class SectionHandlerTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/StorageHandlerTest.php b/tests/lib/Persistence/Legacy/Content/StorageHandlerTest.php index 414f8e75df..1783ce96c4 100644 --- a/tests/lib/Persistence/Legacy/Content/StorageHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/StorageHandlerTest.php @@ -16,10 +16,9 @@ use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; use Ibexa\Core\Persistence\Legacy\Content\StorageRegistry; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\StorageHandler - */ +#[CoversClass(StorageHandler::class)] class StorageHandlerTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Content\StorageRegistry&\PHPUnit\Framework\MockObject\MockObject */ @@ -248,7 +247,6 @@ protected function getStorageRegistryMock(): StorageRegistry if (!isset($this->storageRegistryMock)) { $this->storageRegistryMock = $this->getMockBuilder(StorageRegistry::class) ->setConstructorArgs([[]]) - ->setMethods([]) ->getMock(); } diff --git a/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php b/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php index 1b3b31a113..5208863b4d 100644 --- a/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php +++ b/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php @@ -11,10 +11,9 @@ use Ibexa\Core\FieldType\NullStorage; use Ibexa\Core\Persistence\Legacy\Content\StorageRegistry; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\StorageRegistry - */ +#[CoversClass(StorageRegistry::class)] class StorageRegistryTest extends TestCase { private const TYPE_NAME = 'some-type'; diff --git a/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php b/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php index 6c2b0f1ba8..f8a3aee065 100644 --- a/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php @@ -134,126 +134,150 @@ public function testRemoveSubtree() ] ); - // Original call - $this->getLocationGatewayMock() - ->expects(self::at(0)) - ->method('getBasicNodeData') - ->with(42) - ->will( - self::returnValue( - [ - 'contentobject_id' => 100, - 'main_node_id' => 200, - ] - ) - ); - $this->getLocationGatewayMock() - ->expects(self::at(1)) - ->method('getChildren') - ->with(42) - ->will( - self::returnValue( - [ - ['node_id' => 201], - ['node_id' => 202], - ] - ) - ); + // Calls to getBasicNodeData(), getChildren(), countLocationsByContentId(), removeLocation() + // and deleteNodeAssignment() interleave across the original call and both recursive calls, + // so a single shared counter tracks the global invocation order across all of them. + $invocationOrder = 0; - // First recursive call $this->getLocationGatewayMock() - ->expects(self::at(2)) + ->expects(self::exactly(3)) ->method('getBasicNodeData') - ->with(201) - ->will( - self::returnValue( - [ - 'contentobject_id' => 101, - 'main_node_id' => 201, - ] - ) - ); + ->willReturnCallback(static function (int $nodeId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 0: + self::assertSame(42, $nodeId); + + return [ + 'contentobject_id' => 100, + 'main_node_id' => 200, + ]; + case 2: + self::assertSame(201, $nodeId); + + return [ + 'contentobject_id' => 101, + 'main_node_id' => 201, + ]; + case 7: + self::assertSame(202, $nodeId); + + return [ + 'contentobject_id' => 102, + 'main_node_id' => 202, + ]; + default: + self::fail(sprintf('Unexpected invocation order %d for getBasicNodeData()', $order)); + } + }); + $this->getLocationGatewayMock() - ->expects(self::at(3)) + ->expects(self::exactly(3)) ->method('getChildren') - ->with(201) - ->will(self::returnValue([])); + ->willReturnCallback(static function (int $nodeId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 1: + self::assertSame(42, $nodeId); + + return [ + ['node_id' => 201], + ['node_id' => 202], + ]; + case 3: + self::assertSame(201, $nodeId); + + return []; + case 8: + self::assertSame(202, $nodeId); + + return []; + default: + self::fail(sprintf('Unexpected invocation order %d for getChildren()', $order)); + } + }); + $this->getLocationGatewayMock() - ->expects(self::at(4)) + ->expects(self::exactly(2)) ->method('countLocationsByContentId') - ->with(101) - ->will(self::returnValue(1)); + ->willReturnCallback(static function (int $contentId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 4: + self::assertSame(101, $contentId); + + return 1; + case 9: + self::assertSame(102, $contentId); + + return 2; + default: + self::fail(sprintf('Unexpected invocation order %d for countLocationsByContentId()', $order)); + } + }); + $treeHandler ->expects(self::once()) ->method('removeRawContent') ->with(101); + $this->getLocationGatewayMock() - ->expects(self::at(5)) + ->expects(self::exactly(3)) ->method('removeLocation') - ->with(201); + ->willReturnCallback(static function (int $nodeId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 5: + self::assertSame(201, $nodeId); + break; + case 11: + self::assertSame(202, $nodeId); + break; + case 13: + self::assertSame(42, $nodeId); + break; + default: + self::fail(sprintf('Unexpected invocation order %d for removeLocation()', $order)); + } + }); + $this->getLocationGatewayMock() - ->expects(self::at(6)) + ->expects(self::exactly(3)) ->method('deleteNodeAssignment') - ->with(101); + ->willReturnCallback(static function (int $contentId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 6: + self::assertSame(101, $contentId); + break; + case 12: + self::assertSame(102, $contentId); + break; + case 14: + self::assertSame(100, $contentId); + break; + default: + self::fail(sprintf('Unexpected invocation order %d for deleteNodeAssignment()', $order)); + } + }); - // Second recursive call $this->getLocationGatewayMock() - ->expects(self::at(7)) - ->method('getBasicNodeData') - ->with(202) - ->will( - self::returnValue( - [ - 'contentobject_id' => 102, - 'main_node_id' => 202, - ] - ) - ); - $this->getLocationGatewayMock() - ->expects(self::at(8)) - ->method('getChildren') - ->with(202) - ->will(self::returnValue([])); - $this->getLocationGatewayMock() - ->expects(self::at(9)) - ->method('countLocationsByContentId') - ->with(102) - ->will(self::returnValue(2)); - $this->getLocationGatewayMock() - ->expects(self::at(10)) + ->expects(self::once()) ->method('getFallbackMainNodeData') ->with(102, 202) - ->will( - self::returnValue( - [ - 'node_id' => 203, - 'contentobject_version' => 1, - 'parent_node_id' => 204, - ] - ) - ); + ->willReturnCallback(static function () use (&$invocationOrder) { + self::assertSame(10, $invocationOrder++); + + return [ + 'node_id' => 203, + 'contentobject_version' => 1, + 'parent_node_id' => 204, + ]; + }); $treeHandler ->expects(self::once()) ->method('changeMainLocation') ->with(102, 203); - $this->getLocationGatewayMock() - ->expects(self::at(11)) - ->method('removeLocation') - ->with(202); - $this->getLocationGatewayMock() - ->expects(self::at(12)) - ->method('deleteNodeAssignment') - ->with(102); - - // Continuation of the original call - $this->getLocationGatewayMock() - ->expects(self::at(13)) - ->method('removeLocation') - ->with(42); - $this->getLocationGatewayMock() - ->expects(self::at(14)) - ->method('deleteNodeAssignment') - ->with(100); // Start $treeHandler->removeSubtree(42); @@ -264,7 +288,7 @@ public function testSetSectionForSubtree() $treeHandler = $this->getTreeHandler(); $this->getLocationGatewayMock() - ->expects(self::at(0)) + ->expects(self::once()) ->method('getBasicNodeData') ->with(69) ->will( @@ -295,29 +319,47 @@ public function testChangeMainLocation() ] ); - $treeHandler - ->expects(self::at(0)) - ->method('loadLocation') - ->with(34) - ->will(self::returnValue(new Location(['parentId' => 42]))); + // loadLocation() and loadContentInfo() are called on the same partial mock in an + // interleaved order, so a shared counter tracks the global invocation order. + $invocationOrder = 0; $treeHandler - ->expects(self::at(1)) - ->method('loadContentInfo') - ->with('12') - ->will(self::returnValue(new ContentInfo(['currentVersionNo' => 1]))); - - $treeHandler - ->expects(self::at(2)) + ->expects(self::exactly(2)) ->method('loadLocation') - ->with(42) - ->will(self::returnValue(new Location(['contentId' => 84]))); + ->willReturnCallback(static function (int $locationId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 0: + self::assertSame(34, $locationId); + + return new Location(['parentId' => 42]); + case 2: + self::assertSame(42, $locationId); + + return new Location(['contentId' => 84]); + default: + self::fail(sprintf('Unexpected invocation order %d for loadLocation()', $order)); + } + }); $treeHandler - ->expects(self::at(3)) + ->expects(self::exactly(2)) ->method('loadContentInfo') - ->with('84') - ->will(self::returnValue(new ContentInfo(['sectionId' => 4]))); + ->willReturnCallback(static function ($contentId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 1: + self::assertEquals('12', $contentId); + + return new ContentInfo(['currentVersionNo' => 1]); + case 3: + self::assertEquals('84', $contentId); + + return new ContentInfo(['sectionId' => 4]); + default: + self::fail(sprintf('Unexpected invocation order %d for loadContentInfo()', $order)); + } + }); $this->getLocationGatewayMock() ->expects(self::once()) @@ -342,29 +384,47 @@ public function testChangeMainLocationToLocationWithoutContentInfo() ] ); - $treeHandler - ->expects(self::at(0)) - ->method('loadLocation') - ->with(34) - ->will(self::returnValue(new Location(['parentId' => 1]))); + // loadLocation() and loadContentInfo() are called on the same partial mock in an + // interleaved order, so a shared counter tracks the global invocation order. + $invocationOrder = 0; $treeHandler - ->expects(self::at(1)) - ->method('loadContentInfo') - ->with('12') - ->will(self::returnValue(new ContentInfo(['currentVersionNo' => 1]))); - - $treeHandler - ->expects(self::at(2)) + ->expects(self::exactly(2)) ->method('loadLocation') - ->with(1) - ->will(self::returnValue(new Location(['contentId' => 84]))); + ->willReturnCallback(static function (int $locationId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 0: + self::assertSame(34, $locationId); + + return new Location(['parentId' => 1]); + case 2: + self::assertSame(1, $locationId); + + return new Location(['contentId' => 84]); + default: + self::fail(sprintf('Unexpected invocation order %d for loadLocation()', $order)); + } + }); $treeHandler - ->expects(self::at(3)) + ->expects(self::exactly(2)) ->method('loadContentInfo') - ->with('84') - ->will(self::returnValue(new ContentInfo(['sectionId' => 4]))); + ->willReturnCallback(static function ($contentId) use (&$invocationOrder) { + $order = $invocationOrder++; + switch ($order) { + case 1: + self::assertEquals('12', $contentId); + + return new ContentInfo(['currentVersionNo' => 1]); + case 3: + self::assertEquals('84', $contentId); + + return new ContentInfo(['sectionId' => 4]); + default: + self::fail(sprintf('Unexpected invocation order %d for loadContentInfo()', $order)); + } + }); $this->getLocationGatewayMock() ->expects(self::once()) @@ -549,7 +609,6 @@ protected function getFieldHandlerMock() protected function getPartlyMockedTreeHandler(array $methods) { return $this->getMockBuilder(TreeHandler::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getLocationGatewayMock(), @@ -559,6 +618,7 @@ protected function getPartlyMockedTreeHandler(array $methods) $this->getFieldHandlerMock(), ] ) + ->onlyMethods(array_values($methods)) ->getMock(); } diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php index b6ccbd287b..cf23b6b18c 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php @@ -25,11 +25,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Type\StorageDispatcherInterface; use Ibexa\Core\Persistence\Legacy\Content\Type\Update\Handler as UpdateHandler; use Ibexa\Core\Persistence\Legacy\Exception; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\Handler - */ +#[CoversClass(Handler::class)] class ContentTypeHandlerTest extends TestCase { /** @@ -114,7 +113,6 @@ public function testUpdateGroup() ); $handlerMock = $this->getMockBuilder(Handler::class) - ->setMethods(['loadGroup']) ->setConstructorArgs([ $gatewayMock, $mapperMock, @@ -122,6 +120,7 @@ public function testUpdateGroup() $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['loadGroup']) ->getMock(); $handlerMock->expects(self::once()) @@ -552,7 +551,6 @@ public function testUpdate() ); $handlerMock = $this->getMockBuilder(Handler::class) - ->setMethods(['load']) ->setConstructorArgs([ $gatewayMock, $this->getMapperMock(), @@ -560,6 +558,7 @@ public function testUpdate() $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['load']) ->getMock(); $handlerMock->expects(self::once()) @@ -652,7 +651,6 @@ public function testCreateVersion() ); $handlerMock = $this->getMockBuilder(Handler::class) - ->setMethods(['load', 'internalCreate']) ->setConstructorArgs([ $gatewayMock, $mapperMock, @@ -660,6 +658,7 @@ public function testCreateVersion() $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['load', 'internalCreate']) ->getMock(); $handlerMock->expects(self::once()) @@ -706,7 +705,6 @@ public function testCopy() ); $handlerMock = $this->getMockBuilder(Handler::class) - ->setMethods(['load', 'internalCreate', 'update']) ->setConstructorArgs([ $gatewayMock, $mapperMock, @@ -714,6 +712,7 @@ public function testCopy() $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['load', 'internalCreate', 'update']) ->getMock(); $userId = 42; @@ -1037,23 +1036,20 @@ public function testPublishNoOldType() $handler = $this->getPartlyMockedHandler(['load']); $updateHandlerMock = $this->getUpdateHandlerMock(); - $handler->expects(self::at(0)) + $matcher = self::exactly(2); + $handler->expects($matcher) ->method('load') - ->with( - self::equalTo(23), - self::equalTo(1) - )->will( - self::returnValue(new Type()) - ); + ->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame([23, 1], $parameters); - $handler->expects(self::at(1)) - ->method('load') - ->with( - self::equalTo(23), - self::equalTo(0) - )->will( - self::throwException(new Exception\TypeNotFound((string)23, 0)) - ); + return new Type(); + } + + $this->assertSame([23, 0], $parameters); + + throw new Exception\TypeNotFound((string)23, 0); + }); $updateHandlerMock->expects(self::never()) ->method('updateContentObjects'); @@ -1095,7 +1091,6 @@ protected function getHandler() protected function getPartlyMockedHandler(array $methods) { return $this->getMockBuilder(Handler::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getGatewayMock(), @@ -1105,6 +1100,7 @@ protected function getPartlyMockedHandler(array $methods) $this->getFieldTypeAliasResolver(), ] ) + ->onlyMethods(array_values($methods)) ->getMock(); } @@ -1134,10 +1130,12 @@ protected function getGatewayMock() protected function getMapperMock($methods = []) { if (!isset($this->mapperMock)) { - $this->mapperMock = $this->getMockBuilder(Mapper::class) - ->disableOriginalConstructor() - ->setMethods($methods) - ->getMock(); + $builder = $this->getMockBuilder(Mapper::class) + ->disableOriginalConstructor(); + if ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + $this->mapperMock = $builder->getMock(); } return $this->mapperMock; @@ -1153,7 +1151,6 @@ public function getUpdateHandlerMock() if (!isset($this->updateHandlerMock)) { $this->updateHandlerMock = $this->getMockBuilder(UpdateHandler::class) ->disableOriginalConstructor() - ->setMethods([]) ->getMock(); } @@ -1221,7 +1218,6 @@ public function testRemoveContentTypeTranslation() ); $handlerMock = $this->getMockBuilder(Handler::class) - ->setMethods(['load', 'update']) ->setConstructorArgs([ $this->getGatewayMock(), $mapperMock, @@ -1229,6 +1225,7 @@ public function testRemoveContentTypeTranslation() $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['load', 'update']) ->getMock(); $handlerMock->expects(self::once()) diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php index d084762f64..07ebf4a5ab 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php @@ -14,13 +14,16 @@ use Ibexa\Core\Persistence\Legacy\Content\Mapper as ContentMapper; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; +use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action\AddField; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; use ReflectionObject; /** * Test case for content type Updater. */ +#[CoversMethod(ContentUpdater::class, '__construct')] class AddFieldTest extends TestCase { /** @@ -54,9 +57,6 @@ class AddFieldTest extends TestCase */ protected $addFieldAction; - /** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater::__construct - */ public function testConstructor() { $action = new AddField( @@ -90,7 +90,7 @@ public function testApplySingleVersionSingleTranslation() ->will(self::returnValue([])); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects(self::once()) ->method('load') ->with($contentId, 1) ->will(self::returnValue([])); @@ -130,7 +130,7 @@ public function testApplySingleVersionMultipleTranslations() ->will(self::returnValue([])); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects(self::once()) ->method('load') ->with($contentId, 1) ->will(self::returnValue([])); @@ -141,17 +141,21 @@ public function testApplySingleVersionMultipleTranslations() ->with([], []) ->will(self::returnValue([$content])); + $matcher = self::exactly(2); $action - ->expects(self::at(0)) + ->expects($matcher) ->method('insertField') - ->with($content, $this->getFieldReference(null, 1, 'eng-GB')) - ->will(self::returnValue('fieldId1')); + ->willReturnCallback(function (...$parameters) use ($matcher, $content) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertEquals([$content, $this->getFieldReference(null, 1, 'eng-GB')], $parameters); - $action - ->expects(self::at(1)) - ->method('insertField') - ->with($content, $this->getFieldReference(null, 1, 'ger-DE')) - ->will(self::returnValue('fieldId2')); + return 'fieldId1'; + } + + $this->assertEquals([$content, $this->getFieldReference(null, 1, 'ger-DE')], $parameters); + + return 'fieldId2'; + }); $action->apply($contentId); } @@ -176,41 +180,39 @@ public function testApplyMultipleVersionsSingleTranslation() ->with(self::equalTo([['id' => $contentId, 'version' => 1], ['id' => $contentId, 'version' => 2]])) ->will(self::returnValue([])); + $loadMatcher = self::exactly(2); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects($loadMatcher) ->method('load') - ->with($contentId, 1) - ->will(self::returnValue([])); + ->willReturnCallback(function (...$parameters) use ($loadMatcher, $contentId) { + $this->assertSame([$contentId, $loadMatcher->numberOfInvocations(), null], $parameters); - $this->getContentMapperMock() - ->expects(self::at(0)) - ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content1])); - - $this->getContentGatewayMock() - ->expects(self::at(3)) - ->method('load') - ->with($contentId, 2) - ->will(self::returnValue([])); + return []; + }); + $extractMatcher = self::exactly(2); $this->getContentMapperMock() - ->expects(self::at(1)) + ->expects($extractMatcher) ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content2])); + ->willReturnCallback(function (...$parameters) use ($extractMatcher, $content1, $content2) { + $this->assertSame([[], [], 'content_', null], $parameters); - $action - ->expects(self::at(0)) - ->method('insertField') - ->with($content1, $this->getFieldReference(null, 1, 'eng-GB')) - ->will(self::returnValue('fieldId1')); + return $extractMatcher->numberOfInvocations() === 1 ? [$content1] : [$content2]; + }); + $insertMatcher = self::exactly(2); $action - ->expects(self::at(1)) + ->expects($insertMatcher) ->method('insertField') - ->with($content2, $this->getFieldReference('fieldId1', 2, 'eng-GB')) - ->will(self::returnValue('fieldId1')); + ->willReturnCallback(function (...$parameters) use ($insertMatcher, $content1, $content2) { + if ($insertMatcher->numberOfInvocations() === 1) { + $this->assertEquals([$content1, $this->getFieldReference(null, 1, 'eng-GB')], $parameters); + } else { + $this->assertEquals([$content2, $this->getFieldReference('fieldId1', 2, 'eng-GB')], $parameters); + } + + return 'fieldId1'; + }); $action->apply($contentId); } @@ -235,53 +237,50 @@ public function testApplyMultipleVersionsMultipleTranslations() ->with(self::equalTo([['id' => $contentId, 'version' => 1], ['id' => $contentId, 'version' => 2]])) ->will(self::returnValue([])); + $loadMatcher = self::exactly(2); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects($loadMatcher) ->method('load') - ->with($contentId, 1) - ->will(self::returnValue([])); - - $this->getContentMapperMock() - ->expects(self::at(0)) - ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content1])); + ->willReturnCallback(function (...$parameters) use ($loadMatcher, $contentId) { + $this->assertSame([$contentId, $loadMatcher->numberOfInvocations(), null], $parameters); - $this->getContentGatewayMock() - ->expects(self::at(3)) - ->method('load') - ->with($contentId, 2) - ->will(self::returnValue([])); + return []; + }); + $extractMatcher = self::exactly(2); $this->getContentMapperMock() - ->expects(self::at(1)) + ->expects($extractMatcher) ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content2])); + ->willReturnCallback(function (...$parameters) use ($extractMatcher, $content1, $content2) { + $this->assertSame([[], [], 'content_', null], $parameters); - $action - ->expects(self::at(0)) - ->method('insertField') - ->with($content1, $this->getFieldReference(null, 1, 'eng-GB')) - ->will(self::returnValue('fieldId1')); + return $extractMatcher->numberOfInvocations() === 1 ? [$content1] : [$content2]; + }); + $insertMatcher = self::exactly(4); $action - ->expects(self::at(1)) + ->expects($insertMatcher) ->method('insertField') - ->with($content1, $this->getFieldReference(null, 1, 'ger-DE')) - ->will(self::returnValue('fieldId2')); + ->willReturnCallback(function (...$parameters) use ($insertMatcher, $content1, $content2) { + switch ($insertMatcher->numberOfInvocations()) { + case 1: + $this->assertEquals([$content1, $this->getFieldReference(null, 1, 'eng-GB')], $parameters); - $action - ->expects(self::at(2)) - ->method('insertField') - ->with($content2, $this->getFieldReference('fieldId1', 2, 'eng-GB')) - ->will(self::returnValue('fieldId1')); + return 'fieldId1'; + case 2: + $this->assertEquals([$content1, $this->getFieldReference(null, 1, 'ger-DE')], $parameters); - $action - ->expects(self::at(3)) - ->method('insertField') - ->with($content2, $this->getFieldReference('fieldId2', 2, 'ger-DE')) - ->will(self::returnValue('fieldId2')); + return 'fieldId2'; + case 3: + $this->assertEquals([$content2, $this->getFieldReference('fieldId1', 2, 'eng-GB')], $parameters); + + return 'fieldId1'; + default: + $this->assertEquals([$content2, $this->getFieldReference('fieldId2', 2, 'ger-DE')], $parameters); + + return 'fieldId2'; + } + }); $action->apply($contentId); } @@ -623,9 +622,8 @@ public function getFieldReference($id, $versionNo, $languageCode) */ protected function getMockedAction($methods = []) { - return $this + $builder = $this ->getMockBuilder(AddField::class) - ->setMethods((array)$methods) ->setConstructorArgs( [ $this->getContentGatewayMock(), @@ -634,7 +632,12 @@ protected function getMockedAction($methods = []) $this->getContentStorageHandlerMock(), $this->getContentMapperMock(), ] - ) - ->getMock(); + ); + + if ($methods !== []) { + $builder->onlyMethods($methods); + } + + return $builder->getMock(); } } diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php index 0588db6fe2..228e26df80 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Mapper as ContentMapper; use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action\RemoveField; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action\RemoveField - */ +#[CoversClass(RemoveField::class)] class RemoveFieldTest extends TestCase { /** @@ -64,7 +63,7 @@ public function testApplySingleVersionSingleTranslation() ->will(self::returnValue([])); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects(self::once()) ->method('load') ->with($contentId, 1) ->will(self::returnValue([])); @@ -112,52 +111,41 @@ public function testApplyMultipleVersionsSingleTranslation() ->with(self::equalTo([['id' => $contentId, 'version' => 1], ['id' => $contentId, 'version' => 2]])) ->will(self::returnValue([])); + $loadMatcher = self::exactly(2); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects($loadMatcher) ->method('load') - ->with($contentId, 1) - ->will(self::returnValue([])); - - $this->getContentMapperMock() - ->expects(self::at(0)) - ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content1])); + ->willReturnCallback(function (...$parameters) use ($loadMatcher, $contentId) { + $this->assertSame([$contentId, $loadMatcher->numberOfInvocations(), null], $parameters); - $this->getContentGatewayMock() - ->expects(self::at(3)) - ->method('load') - ->with($contentId, 2) - ->will(self::returnValue([])); + return []; + }); + $extractMatcher = self::exactly(2); $this->getContentMapperMock() - ->expects(self::at(1)) + ->expects($extractMatcher) ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content2])); + ->willReturnCallback(function (...$parameters) use ($extractMatcher, $content1, $content2) { + $this->assertSame([[], [], 'content_', null], $parameters); + + return $extractMatcher->numberOfInvocations() === 1 ? [$content1] : [$content2]; + }); $this->getContentGatewayMock() ->expects(self::once()) ->method('deleteField') ->with(self::equalTo($fieldId)); + $deleteFieldDataMatcher = self::exactly(2); $this->getContentStorageHandlerMock() - ->expects(self::at(0)) + ->expects($deleteFieldDataMatcher) ->method('deleteFieldData') - ->with( - self::equalTo('ibexa_string'), - $content1->versionInfo, - self::equalTo([$fieldId]) - ); - - $this->getContentStorageHandlerMock() - ->expects(self::at(1)) - ->method('deleteFieldData') - ->with( - self::equalTo('ibexa_string'), - $content2->versionInfo, - self::equalTo([$fieldId]) - ); + ->willReturnCallback(function (...$parameters) use ($deleteFieldDataMatcher, $content1, $content2, $fieldId) { + $expectedVersionInfo = $deleteFieldDataMatcher->numberOfInvocations() === 1 + ? $content1->versionInfo + : $content2->versionInfo; + $this->assertSame(['ibexa_string', $expectedVersionInfo, [$fieldId]], $parameters); + }); $action->apply($contentId); } @@ -184,60 +172,48 @@ public function testApplyMultipleVersionsMultipleTranslations() ->with(self::equalTo([['id' => $contentId, 'version' => 1], ['id' => $contentId, 'version' => 2]])) ->will(self::returnValue([])); + $loadMatcher = self::exactly(2); $this->getContentGatewayMock() - ->expects(self::at(2)) + ->expects($loadMatcher) ->method('load') - ->with($contentId, 1) - ->will(self::returnValue([])); - - $this->getContentMapperMock() - ->expects(self::at(0)) - ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content1])); + ->willReturnCallback(function (...$parameters) use ($loadMatcher, $contentId) { + $this->assertSame([$contentId, $loadMatcher->numberOfInvocations(), null], $parameters); - $this->getContentGatewayMock() - ->expects(self::at(3)) - ->method('load') - ->with($contentId, 2) - ->will(self::returnValue([])); + return []; + }); + $extractMatcher = self::exactly(2); $this->getContentMapperMock() - ->expects(self::at(1)) + ->expects($extractMatcher) ->method('extractContentFromRows') - ->with([], []) - ->will(self::returnValue([$content2])); + ->willReturnCallback(function (...$parameters) use ($extractMatcher, $content1, $content2) { + $this->assertSame([[], [], 'content_', null], $parameters); - $this->getContentGatewayMock() - ->expects(self::at(5)) - ->method('deleteField') - ->with(self::equalTo($fieldId1)); + return $extractMatcher->numberOfInvocations() === 1 ? [$content1] : [$content2]; + }); + $deleteFieldMatcher = self::exactly(2); $this->getContentGatewayMock() - ->expects(self::at(6)) + ->expects($deleteFieldMatcher) ->method('deleteField') - ->with(self::equalTo($fieldId2)); + ->willReturnCallback(function (...$parameters) use ($deleteFieldMatcher, $fieldId1, $fieldId2) { + $expected = $deleteFieldMatcher->numberOfInvocations() === 1 ? $fieldId1 : $fieldId2; + $this->assertSame([$expected], $parameters); + }); + $deleteFieldDataMatcher = self::exactly(2); $this->getContentStorageHandlerMock() - ->expects(self::at(0)) + ->expects($deleteFieldDataMatcher) ->method('deleteFieldData') - ->with( - self::equalTo('ibexa_string'), - $content1->versionInfo, - self::equalTo([$fieldId1, $fieldId2]) - ); - - $this->getContentStorageHandlerMock() - ->expects(self::at(1)) - ->method('deleteFieldData') - ->with( - self::equalTo('ibexa_string'), - $content2->versionInfo, - self::equalTo([$fieldId1, $fieldId2]) - ); + ->willReturnCallback(function (...$parameters) use ($deleteFieldDataMatcher, $content1, $content2, $fieldId1, $fieldId2) { + $expectedVersionInfo = $deleteFieldDataMatcher->numberOfInvocations() === 1 + ? $content1->versionInfo + : $content2->versionInfo; + $this->assertSame(['ibexa_string', $expectedVersionInfo, [$fieldId1, $fieldId2]], $parameters); + }); $this->getContentGatewayMock() - ->expects(self::at(4)) + ->expects(self::once()) ->method('removeRelationsByFieldDefinitionId') ->with(self::equalTo(42)); diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php index 2dec5f8da7..e0277d4072 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php @@ -15,11 +15,10 @@ use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater - */ +#[CoversClass(ContentUpdater::class)] class ContentUpdaterTest extends TestCase { /** @@ -109,24 +108,24 @@ public function testApplyUpdates() '', false ); - $actionA->expects(self::at(0)) + $actionAMatcher = self::exactly(2); + $actionA->expects($actionAMatcher) ->method('apply') - ->with(11); - $actionA->expects(self::at(1)) - ->method('apply') - ->with(22); + ->willReturnCallback(function (...$parameters) use ($actionAMatcher) { + $this->assertSame([$actionAMatcher->numberOfInvocations() === 1 ? 11 : 22], $parameters); + }); $actionB = $this->getMockForAbstractClass( Action::class, [], '', false ); - $actionB->expects(self::at(0)) - ->method('apply') - ->with(11); - $actionB->expects(self::at(1)) + $actionBMatcher = self::exactly(2); + $actionB->expects($actionBMatcher) ->method('apply') - ->with(22); + ->willReturnCallback(function (...$parameters) use ($actionBMatcher) { + $this->assertSame([$actionBMatcher->numberOfInvocations() === 1 ? 11 : 22], $parameters); + }); $actions = [$actionA, $actionB]; diff --git a/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php index 6176991da8..c7afa15a14 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php @@ -18,10 +18,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Type\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Type\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends LanguageAwareTestCase { /** @@ -438,9 +438,7 @@ public static function getTypeCreationExpectations() ]; } - /** - * @dataProvider getTypeCreationExpectations - */ + #[DataProvider('getTypeCreationExpectations')] public function testInsertType($column, $expectation) { $gateway = $this->getGateway(); @@ -472,9 +470,7 @@ public static function getTypeCreationContentClassNameExpectations() ]; } - /** - * @dataProvider getTypeCreationContentClassNameExpectations - */ + #[DataProvider('getTypeCreationContentClassNameExpectations')] public function testInsertTypeContentClassName($column, $expectation) { $gateway = $this->getGateway(); @@ -812,9 +808,7 @@ public function testDeleteGroupAssignment() ); } - /** - * @dataProvider getTypeUpdateExpectations - */ + #[DataProvider('getTypeUpdateExpectations')] public function testUpdateType($fieldName, $expectedValue) { $this->insertDatabaseFixture( diff --git a/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php index 489113a6d1..ede09300ff 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php @@ -25,10 +25,9 @@ use Ibexa\Core\Persistence\Legacy\Content\Type\Mapper; use Ibexa\Core\Persistence\Legacy\Content\Type\StorageDispatcherInterface; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { public function testCreateGroupFromCreateStruct() @@ -454,13 +453,13 @@ public function testToFieldDefinition() protected function getNonConvertingMapper() { $mapper = $this->getMockBuilder(Mapper::class) - ->setMethods(['toFieldDefinition']) ->setConstructorArgs([ $this->getConverterRegistryMock(), $this->getMaskGeneratorMock(), $this->getStorageDispatcherMock(), $this->getFieldTypeAliasResolver(), ]) + ->onlyMethods(['toFieldDefinition']) ->getMock(); // Dedicatedly tested test diff --git a/tests/lib/Persistence/Legacy/Content/Type/StorageDispatcherTest.php b/tests/lib/Persistence/Legacy/Content/Type/StorageDispatcherTest.php index c99c84d98d..4973f61734 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/StorageDispatcherTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/StorageDispatcherTest.php @@ -42,7 +42,7 @@ public function testPublishFieldConstraintsData(): void public function testStoreFieldConstraintsData(): void { $status = ContentType::STATUS_DEFINED; - $constraints = $this->createMock(FieldTypeConstraints::class); + $constraints = self::createStub(FieldTypeConstraints::class); $storage = $this->createMock(FieldConstraintsStorage::class); $storage @@ -77,7 +77,7 @@ public function testStoreFieldConstraintsDataForNonSupportedFieldType(): void public function testLoadFieldConstraintsData(): void { - $constraints = $this->createMock(FieldTypeConstraints::class); + $constraints = self::createStub(FieldTypeConstraints::class); $storage = $this->createMock(FieldConstraintsStorage::class); $storage @@ -103,7 +103,7 @@ public function testLoadFieldConstraintsData(): void public function testLoadFieldConstraintsDataForNonSupportedFieldType(): void { - $constraints = $this->createMock(FieldTypeConstraints::class); + $constraints = self::createStub(FieldTypeConstraints::class); $fieldDefinition = new FieldDefinition(); $fieldDefinition->id = self::EXAMPLE_FIELD_DEFINITION_ID; diff --git a/tests/lib/Persistence/Legacy/Content/Type/StorageRegistryTest.php b/tests/lib/Persistence/Legacy/Content/Type/StorageRegistryTest.php index b887e38273..ae31320a38 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/StorageRegistryTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/StorageRegistryTest.php @@ -18,8 +18,8 @@ final class StorageRegistryTest extends TestCase public function testHasStorage(): void { $registry = new StorageRegistry([ - 'foo' => $this->createMock(FieldConstraintsStorage::class), - 'bar' => $this->createMock(FieldConstraintsStorage::class), + 'foo' => self::createStub(FieldConstraintsStorage::class), + 'bar' => self::createStub(FieldConstraintsStorage::class), ]); self::assertTrue($registry->hasStorage('foo')); @@ -31,8 +31,8 @@ public function testHasStorage(): void public function testGetStorage(): void { $storages = [ - 'foo' => $this->createMock(FieldConstraintsStorage::class), - 'bar' => $this->createMock(FieldConstraintsStorage::class), + 'foo' => self::createStub(FieldConstraintsStorage::class), + 'bar' => self::createStub(FieldConstraintsStorage::class), ]; $registry = new StorageRegistry($storages); @@ -44,11 +44,11 @@ public function testGetStorage(): void public function testGetStorageForNonSupportedFieldType(): void { $this->expectException(InvalidArgumentException::class); - $this->expectErrorMessage('Argument \'$typeName\' is invalid: Undefined Ibexa\Contracts\Core\FieldType\FieldConstraintsStorage for "baz" field type'); + $this->expectExceptionMessage('Argument \'$typeName\' is invalid: Undefined Ibexa\Contracts\Core\FieldType\FieldConstraintsStorage for "baz" field type'); $registry = new StorageRegistry([ - 'foo' => $this->createMock(FieldConstraintsStorage::class), - 'bar' => $this->createMock(FieldConstraintsStorage::class), + 'foo' => self::createStub(FieldConstraintsStorage::class), + 'bar' => self::createStub(FieldConstraintsStorage::class), ]); $registry->getStorage('baz'); } diff --git a/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php index 32485ecfe9..6b7c255511 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php @@ -11,11 +11,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater; use Ibexa\Core\Persistence\Legacy\Content\Type\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Type\Update\Handler\DoctrineDatabase; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\Type\Update\Handler\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php index f059eda39a..4d38f8a3bf 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php @@ -13,12 +13,12 @@ use Ibexa\Core\Persistence\Legacy\Content\Language\MaskGenerator as LanguageMaskGenerator; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Gateway\DoctrineDatabase - * - * @group urlalias-gateway - */ +#[CoversClass(DoctrineDatabase::class)] +#[Group('urlalias-gateway')] class DoctrineDatabaseTest extends TestCase { /** @@ -124,7 +124,7 @@ public function testLoadUrlaliasDataMultipleLanguages() /** * @return array */ - public function providerForTestLoadPathData() + public static function providerForTestLoadPathData() { return [ [ @@ -169,10 +169,8 @@ public function providerForTestLoadPathData() /** * Test for the loadPathData() method. - * - * - * @dataProvider providerForTestLoadPathData */ + #[DataProvider('providerForTestLoadPathData')] public function testLoadPathData($id, $pathData) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_fallback.php'); @@ -189,7 +187,7 @@ public function testLoadPathData($id, $pathData) /** * @return array */ - public function providerForTestLoadPathDataMultipleLanguages() + public static function providerForTestLoadPathDataMultipleLanguages() { return [ [ @@ -231,10 +229,8 @@ public function providerForTestLoadPathDataMultipleLanguages() /** * Test for the loadPathData() method. - * - * - * @dataProvider providerForTestLoadPathDataMultipleLanguages */ + #[DataProvider('providerForTestLoadPathDataMultipleLanguages')] public function testLoadPathDataMultipleLanguages($id, $pathData) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_multilang.php'); @@ -251,7 +247,7 @@ public function testLoadPathDataMultipleLanguages($id, $pathData) /** * @return array */ - public function providerForTestCleanupAfterPublishHistorize() + public static function providerForTestCleanupAfterPublishHistorize() { return [ [ @@ -276,7 +272,7 @@ public function providerForTestCleanupAfterPublishHistorize() * * @return array */ - public function providerForTestArchiveUrlAliasesForDeletedTranslations() + public static function providerForTestArchiveUrlAliasesForDeletedTranslations() { return [ [314, [2]], @@ -289,11 +285,8 @@ public function providerForTestArchiveUrlAliasesForDeletedTranslations() /** * Test for the cleanupAfterPublish() method. - * - * - * - * @dataProvider providerForTestCleanupAfterPublishHistorize */ + #[DataProvider('providerForTestCleanupAfterPublishHistorize')] public function testCleanupAfterPublishHistorize($action, $languageId, $parentId, $textMD5) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_downgrade.php'); @@ -314,7 +307,7 @@ public function testCleanupAfterPublishHistorize($action, $languageId, $parentId /** * @return array */ - public function providerForTestCleanupAfterPublishRemovesLanguage() + public static function providerForTestCleanupAfterPublishRemovesLanguage() { return [ [ @@ -334,11 +327,8 @@ public function providerForTestCleanupAfterPublishRemovesLanguage() /** * Test for the cleanupAfterPublish() method. - * - * - * - * @dataProvider providerForTestCleanupAfterPublishRemovesLanguage */ + #[DataProvider('providerForTestCleanupAfterPublishRemovesLanguage')] public function testCleanupAfterPublishRemovesLanguage($action, $languageId, $parentId, $textMD5) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_downgrade.php'); @@ -462,11 +452,10 @@ public function testGetNextId() } /** - * @dataProvider providerForTestArchiveUrlAliasesForDeletedTranslations - * * @param int $locationId * @param int[] $removedLanguageIds */ + #[DataProvider('providerForTestArchiveUrlAliasesForDeletedTranslations')] public function testArchiveUrlAliasesForDeletedTranslations($locationId, array $removedLanguageIds) { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_multilang.php'); diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php index d51152291f..742857c5e8 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php @@ -14,12 +14,13 @@ use Ibexa\Core\Persistence\TransformationProcessor\PreprocessedBased; use Ibexa\Core\Persistence\Utf8Converter; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; use ReflectionMethod; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter - */ +#[CoversClass(SlugConverter::class)] final class SlugConverterTest extends TestCase { /** @var array */ @@ -116,9 +117,8 @@ public static function providerForTestGetUniqueCounterValue(): iterable /** * Test for the getUniqueCounterValue() method. - * - * @dataProvider providerForTestGetUniqueCounterValue */ + #[DataProvider('providerForTestGetUniqueCounterValue')] public function testGetUniqueCounterValue(string $text, bool $isRootLevel, int $returnValue): void { $slugConverter = $this->getSlugConverter(); @@ -153,9 +153,8 @@ public static function cleanupTextData(): iterable /** * Test for the cleanupText() method. - * - * @dataProvider cleanupTextData */ + #[DataProvider('cleanupTextData')] public function testCleanupText(string $text, string $method, string $expected): void { $testMethod = new ReflectionMethod( @@ -197,11 +196,8 @@ public static function convertData(): iterable ]; } - /** - * @dataProvider convertData - * - * @depends testCleanupText - */ + #[Depends('testCleanupText')] + #[DataProvider('convertData')] public function testConvertNoMocking(string $text, string $defaultText, string $transformation, string $expected): void { $transformationsDirectory = dirname(__DIR__, 6) . '/src/lib/Resources/slug_converter/transformations'; @@ -243,7 +239,7 @@ protected function getSlugConverterMock(array $methods = []): SlugConverter & Mo { if (!isset($this->slugConverterMock)) { $this->slugConverterMock = $this->getMockBuilder(SlugConverter::class) - ->onlyMethods($methods) + ->onlyMethods(array_values($methods)) ->setConstructorArgs( [ $this->getTransformationProcessorMock(), diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php index 216cf15741..8328848c17 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php @@ -30,25 +30,27 @@ use Ibexa\Core\Persistence\Utf8Converter; use Ibexa\Core\Search\Legacy\Content; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; - -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Handler - * - * @group urlalias-handler - */ +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\Group; + +#[CoversClass(Handler::class)] +#[CoversMethod(Handler::class, 'publishUrlAliasForLocation')] +#[Group('urlalias-handler')] class UrlAliasHandlerTest extends TestCase { /** * Test for the lookup() method. * * Simple lookup case. - * - * @group location - * @group virtual - * @group resource - * @group case-correction - * @group multiple-languages */ + #[Group('location')] + #[Group('virtual')] + #[Group('resource')] + #[Group('case-correction')] + #[Group('multiple-languages')] public function testLookup() { $handler = $this->getHandler(); @@ -62,12 +64,10 @@ public function testLookup() * Test for the lookup() method. * * Trying to lookup non existent URL alias throws NotFoundException. - * - * - * @group location - * @group virtual - * @group resource */ + #[Group('location')] + #[Group('virtual')] + #[Group('resource')] public function testLookupThrowsNotFoundException() { $this->expectException(NotFoundException::class); @@ -80,10 +80,9 @@ public function testLookupThrowsNotFoundException() * Test for the lookup() method. * * Trying to lookup URL alias with exceeded path segments limit - * - * @group location - * @group case-correction */ + #[Group('location')] + #[Group('case-correction')] public function testLookupThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -92,7 +91,7 @@ public function testLookupThrowsInvalidArgumentException() $handler->lookup(str_repeat('/1', 99)); } - public function providerForTestLookupLocationUrlAlias() + public static function providerForTestLookupLocationUrlAlias() { return [ [ @@ -341,13 +340,10 @@ public function providerForTestLookupLocationUrlAlias() * Test for the lookup() method. * * Testing that UrlAlias is found and has expected state. - * - * @dataProvider providerForTestLookupLocationUrlAlias - * - * @depends testLookup - * - * @group location */ + #[Depends('testLookup')] + #[Group('location')] + #[DataProvider('providerForTestLookupLocationUrlAlias')] public function testLookupLocationUrlAlias( $url, array $pathData, @@ -392,15 +388,15 @@ public function testLookupLocationUrlAlias( * to is available in it. * * - * @dataProvider providerForTestLookupLocationUrlAlias * - * @depends testLookup * - * @group case-correction - * @group location * * @todo refactor, only forward pertinent */ + #[Depends('testLookup')] + #[Group('case-correction')] + #[Group('location')] + #[DataProvider('providerForTestLookupLocationUrlAlias')] public function testLookupLocationCaseCorrection( $url, array $pathData, @@ -433,7 +429,7 @@ public function testLookupLocationCaseCorrection( ); } - public function providerForTestLookupLocationMultipleLanguages() + public static function providerForTestLookupLocationMultipleLanguages() { return [ [ @@ -521,14 +517,11 @@ public function providerForTestLookupLocationMultipleLanguages() /** * Test for the lookup() method. - * - * @dataProvider providerForTestLookupLocationMultipleLanguages - * - * @depends testLookup - * - * @group multiple-languages - * @group location */ + #[Depends('testLookup')] + #[Group('multiple-languages')] + #[Group('location')] + #[DataProvider('providerForTestLookupLocationMultipleLanguages')] public function testLookupLocationMultipleLanguages( $url, array $pathData, @@ -565,12 +558,10 @@ public function testLookupLocationMultipleLanguages( * Test for the lookup() method. * * @todo document - * - * @depends testLookup - * - * @group history - * @group location */ + #[Depends('testLookup')] + #[Group('history')] + #[Group('location')] public function testLookupLocationHistoryUrlAlias() { $handler = $this->getHandler(); @@ -584,7 +575,7 @@ public function testLookupLocationHistoryUrlAlias() ); } - public function providerForTestLookupCustomLocationUrlAlias() + public static function providerForTestLookupCustomLocationUrlAlias() { return [ [ @@ -704,14 +695,11 @@ public function providerForTestLookupCustomLocationUrlAlias() * Test for the lookup() method. * * Testing that UrlAlias is found and has expected state. - * - * @dataProvider providerForTestLookupCustomLocationUrlAlias - * - * @depends testLookup - * - * @group location - * @group custom */ + #[Depends('testLookup')] + #[Group('location')] + #[Group('custom')] + #[DataProvider('providerForTestLookupCustomLocationUrlAlias')] public function testLookupCustomLocationUrlAlias( $url, array $pathData, @@ -748,14 +736,11 @@ public function testLookupCustomLocationUrlAlias( * Test for the lookup() method. * * Testing that UrlAlias is found and has expected state. - * - * @dataProvider providerForTestLookupCustomLocationUrlAlias - * - * @depends testLookup - * - * @group location - * @group custom */ + #[Depends('testLookup')] + #[Group('location')] + #[Group('custom')] + #[DataProvider('providerForTestLookupCustomLocationUrlAlias')] public function testLookupCustomLocationUrlAliasCaseCorrection( $url, array $pathData, @@ -789,7 +774,7 @@ public function testLookupCustomLocationUrlAliasCaseCorrection( ); } - public function providerForTestLookupVirtualUrlAlias() + public static function providerForTestLookupVirtualUrlAlias() { return [ [ @@ -807,13 +792,10 @@ public function providerForTestLookupVirtualUrlAlias() * Test for the lookup() method. * * Testing that NOP action redirects to site root. - * - * @dataProvider providerForTestLookupVirtualUrlAlias - * - * @depends testLookup - * - * @group virtual */ + #[Depends('testLookup')] + #[Group('virtual')] + #[DataProvider('providerForTestLookupVirtualUrlAlias')] public function testLookupVirtualUrlAlias($url, $id) { $handler = $this->getHandler(); @@ -824,7 +806,7 @@ public function testLookupVirtualUrlAlias($url, $id) $this->assertVirtualUrlAliasValid($urlAlias, $id); } - public function providerForTestLookupResourceUrlAlias() + public static function providerForTestLookupResourceUrlAlias() { return [ [ @@ -878,13 +860,10 @@ public function providerForTestLookupResourceUrlAlias() * Test for the lookup() method. * * Testing that UrlAlias is found and has expected state. - * - * @dataProvider providerForTestLookupResourceUrlAlias - * - * @depends testLookup - * - * @group resource */ + #[Depends('testLookup')] + #[Group('resource')] + #[DataProvider('providerForTestLookupResourceUrlAlias')] public function testLookupResourceUrlAlias( $url, $pathData, @@ -922,13 +901,10 @@ public function testLookupResourceUrlAlias( * Test for the lookup() method. * * Testing that UrlAlias is found and has expected state. - * - * @dataProvider providerForTestLookupResourceUrlAlias - * - * @depends testLookup - * - * @group resource */ + #[Depends('testLookup')] + #[Group('resource')] + #[DataProvider('providerForTestLookupResourceUrlAlias')] public function testLookupResourceUrlAliasCaseInsensitive( $url, $pathData, @@ -964,10 +940,8 @@ public function testLookupResourceUrlAliasCaseInsensitive( /** * Test for the lookup() method with uppercase utf8 characters. - * - * - * @depends testLookup */ + #[Depends('testLookup')] public function testLookupUppercaseIri() { $handler = $this->getHandler(); @@ -1055,11 +1029,9 @@ public function testListURLAliasesForLocation() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testLookupLocationUrlAlias - * - * @group publish */ + #[Depends('testLookupLocationUrlAlias')] + #[Group('publish')] public function testPublishUrlAliasForLocation() { $handler = $this->getHandler(); @@ -1099,11 +1071,9 @@ public function testPublishUrlAliasForLocation() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] public function testPublishUrlAliasForLocationRepublish() { $handler = $this->getHandler(); @@ -1125,11 +1095,9 @@ public function testPublishUrlAliasForLocationRepublish() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] public function testPublishUrlAliasCreatesUniqueAlias() { $handler = $this->getHandler(); @@ -1168,22 +1136,19 @@ public function testPublishUrlAliasCreatesUniqueAlias() /** * @return array */ - public function providerForTestPublishUrlAliasForLocationComplex() + public static function providerForTestPublishUrlAliasForLocationComplex() { - return $this->providerForTestLookupLocationUrlAlias(); + return self::providerForTestLookupLocationUrlAlias(); } /** * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @dataProvider providerForTestPublishUrlAliasForLocationComplex - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] + #[DataProvider('providerForTestPublishUrlAliasForLocationComplex')] public function testPublishUrlAliasForLocationComplex( $url, $pathData, @@ -1227,11 +1192,9 @@ public function testPublishUrlAliasForLocationComplex( * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] public function testPublishUrlAliasForLocationSameAliasForMultipleLanguages() { $handler = $this->getHandler(); @@ -1276,11 +1239,9 @@ public function testPublishUrlAliasForLocationSameAliasForMultipleLanguages() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] public function testPublishUrlAliasForLocationDowngradesOldEntryToHistory() { $handler = $this->getHandler(); @@ -1348,13 +1309,11 @@ public function testPublishUrlAliasForLocationDowngradesOldEntryToHistory() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * @depends testPublishUrlAliasForLocationSameAliasForMultipleLanguages - * - * @group publish - * @group downgrade */ + #[Depends('testPublishUrlAliasForLocation')] + #[Depends('testPublishUrlAliasForLocationSameAliasForMultipleLanguages')] + #[Group('publish')] + #[Group('downgrade')] public function testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage() { $handler = $this->getHandler(); @@ -1423,12 +1382,10 @@ public function testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage( * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * @depends testPublishUrlAliasForLocationDowngradesOldEntryToHistory - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Depends('testPublishUrlAliasForLocationDowngradesOldEntryToHistory')] + #[Group('publish')] public function testPublishUrlAliasForLocationReusesHistory() { $handler = $this->getHandler(); @@ -1456,12 +1413,10 @@ public function testPublishUrlAliasForLocationReusesHistory() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * @depends testPublishUrlAliasForLocationDowngradesOldEntryToHistory - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Depends('testPublishUrlAliasForLocationDowngradesOldEntryToHistory')] + #[Group('publish')] public function testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage() { $handler = $this->getHandler(); @@ -1509,11 +1464,9 @@ public function testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * - * @group publish */ + #[Depends('testPublishUrlAliasForLocation')] + #[Group('publish')] public function testPublishUrlAliasForLocationReusesCustomAlias() { $handler = $this->getHandler(); @@ -1534,9 +1487,8 @@ public function testPublishUrlAliasForLocationReusesCustomAlias() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation */ + #[Depends('testPublishUrlAliasForLocation')] public function testPublishUrlAliasForLocationReusingNopElement() { $handler = $this->getHandler(); @@ -1604,10 +1556,9 @@ public function testPublishUrlAliasForLocationReusingNopElement() * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * @depends testPublishUrlAliasForLocationReusingNopElement */ + #[Depends('testPublishUrlAliasForLocation')] + #[Depends('testPublishUrlAliasForLocationReusingNopElement')] public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath() { $handler = $this->getHandler(); @@ -1652,10 +1603,9 @@ public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath * Test for the publishUrlAliasForLocation() method. * * @todo document - * - * @depends testPublishUrlAliasForLocation - * @depends testPublishUrlAliasForLocationReusingNopElementChangesCustomPath */ + #[Depends('testPublishUrlAliasForLocation')] + #[Depends('testPublishUrlAliasForLocationReusingNopElementChangesCustomPath')] public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPathAndCreatesHistory() { $handler = $this->getHandler(); @@ -1694,9 +1644,8 @@ public function testPublishUrlAliasForLocationUpdatesLocationPathIdentificationS /** * Test for the publishUrlAliasForLocation() method. - * - * @group cleanup */ + #[Group('cleanup')] public function testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed() { $handler = $this->getHandler(); @@ -1768,9 +1717,8 @@ public function testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed() /** * Test for the publishUrlAliasForLocation() method. - * - * @group cleanup */ + #[Group('cleanup')] public function testPublishUrlAliasReuseHistoryCleanup() { $handler = $this->getHandler(); @@ -1832,9 +1780,8 @@ public function testPublishUrlAliasReuseHistoryCleanup() /** * Test for the publishUrlAliasForLocation() method. - * - * @group cleanup */ + #[Group('cleanup')] public function testPublishUrlAliasReuseAutogeneratedCleanup() { $handler = $this->getHandler(); @@ -1897,11 +1844,9 @@ public function testPublishUrlAliasReuseAutogeneratedCleanup() /** * Test for the createCustomUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasBehaviour() { $handlerMock = $this->getPartlyMockedHandler(['createUrlAlias']); @@ -1930,11 +1875,9 @@ public function testCreateCustomUrlAliasBehaviour() /** * Test for the createGlobalUrlAlias() method. - * - * - * @group create - * @group global */ + #[Group('create')] + #[Group('global')] public function testCreateGlobalUrlAliasBehaviour() { $handlerMock = $this->getPartlyMockedHandler(['createUrlAlias']); @@ -1963,11 +1906,9 @@ public function testCreateGlobalUrlAliasBehaviour() /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAlias() { $handler = $this->getHandler(); @@ -2010,11 +1951,9 @@ public function testCreateCustomUrlAlias() /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasWithNonameParts() { $handler = $this->getHandler(); @@ -2084,11 +2023,11 @@ public function testCreateCustomUrlAliasWithNonameParts() * Test for the createUrlAlias() method. * * - * @group create - * @group custom * * @todo pathData */ + #[Group('create')] + #[Group('custom')] public function testCreatedCustomUrlAliasIsLoadable() { $handler = $this->getHandler(); @@ -2128,11 +2067,9 @@ public function testCreatedCustomUrlAliasIsLoadable() /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasWithNopElement(): void { $handler = $this->getHandler(); @@ -2190,11 +2127,9 @@ public function testCreateCustomUrlAliasWithNopElement(): void /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasReusesHistory() { $handler = $this->getHandler(); @@ -2236,10 +2171,8 @@ public function testCreateCustomUrlAliasReusesHistory() ); } - /** - * @group create - * @group custom - */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasAddLanguage(): void { $handler = $this->getHandler(); @@ -2289,11 +2222,9 @@ public function testCreateCustomUrlAliasAddLanguage(): void /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage() { $handler = $this->getHandler(); @@ -2337,11 +2268,9 @@ public function testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage() /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasReusesNopElement() { $handler = $this->getHandler(); @@ -2391,11 +2320,9 @@ public function testCreateCustomUrlAliasReusesNopElement() /** * Test for the createUrlAlias() method. - * - * - * @group create - * @group custom */ + #[Group('create')] + #[Group('custom')] public function testCreateCustomUrlAliasReusesLocationElement() { $handler = $this->getHandler(); @@ -2425,10 +2352,8 @@ public function testCreateCustomUrlAliasReusesLocationElement() /** * Test for the listGlobalURLAliases() method. - * - * - * @depends testLookupResourceUrlAlias */ + #[Depends('testLookupResourceUrlAlias')] public function testListGlobalURLAliases() { $handler = $this->getHandler(); @@ -2448,10 +2373,8 @@ public function testListGlobalURLAliases() /** * Test for the listGlobalURLAliases() method. - * - * - * @depends testLookupResourceUrlAlias */ + #[Depends('testLookupResourceUrlAlias')] public function testListGlobalURLAliasesWithLanguageCode() { $handler = $this->getHandler(); @@ -2470,10 +2393,8 @@ public function testListGlobalURLAliasesWithLanguageCode() /** * Test for the listGlobalURLAliases() method. - * - * - * @depends testLookupResourceUrlAlias */ + #[Depends('testLookupResourceUrlAlias')] public function testListGlobalURLAliasesWithOffset() { $handler = $this->getHandler(); @@ -2491,10 +2412,8 @@ public function testListGlobalURLAliasesWithOffset() /** * Test for the listGlobalURLAliases() method. - * - * - * @depends testLookupResourceUrlAlias */ + #[Depends('testLookupResourceUrlAlias')] public function testListGlobalURLAliasesWithOffsetAndLimit() { $handler = $this->getHandler(); @@ -3017,10 +2936,8 @@ public function testLocationCopiedSubtree() /** * Test for the loadUrlAlias() method. - * - * - * @dataProvider providerForTestLookupLocationMultipleLanguages */ + #[DataProvider('providerForTestLookupLocationMultipleLanguages')] public function testLoadAutogeneratedUrlAlias( $url, array $pathData, @@ -3055,10 +2972,8 @@ public function testLoadAutogeneratedUrlAlias( /** * Test for the loadUrlAlias() method. - * - * - * @dataProvider providerForTestLookupResourceUrlAlias */ + #[DataProvider('providerForTestLookupResourceUrlAlias')] public function testLoadResourceUrlAlias( $url, $pathData, @@ -3094,10 +3009,8 @@ public function testLoadResourceUrlAlias( /** * Test for the loadUrlAlias() method. - * - * - * @dataProvider providerForTestLookupVirtualUrlAlias */ + #[DataProvider('providerForTestLookupVirtualUrlAlias')] public function testLoadVirtualUrlAlias($url, $id) { $handler = $this->getHandler(); @@ -3172,7 +3085,7 @@ public function testLoadUrlAliasThrowsNotFoundException() $handler->loadUrlAlias('non-existent'); } - public function providerForTestPublishUrlAliasForLocationSkipsReservedWord() + public static function providerForTestPublishUrlAliasForLocationSkipsReservedWord() { return [ [ @@ -3188,13 +3101,9 @@ public function providerForTestPublishUrlAliasForLocationSkipsReservedWord() /** * Test for the publishUrlAliasForLocation() method. - * - * @dataProvider providerForTestPublishUrlAliasForLocationSkipsReservedWord - * - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Handler::publishUrlAliasForLocation - * - * @group publish */ + #[Group('publish')] + #[DataProvider('providerForTestPublishUrlAliasForLocationSkipsReservedWord')] public function testPublishUrlAliasForLocationSkipsReservedWord($text, $alias) { $handler = $this->getHandler(); @@ -3210,9 +3119,8 @@ public function testPublishUrlAliasForLocationSkipsReservedWord($text, $alias) /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSimple() { $handler = $this->getHandler(); @@ -3296,9 +3204,8 @@ public function testLocationSwappedSimple() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSimpleWithHistory() { $handler = $this->getHandler(); @@ -3448,9 +3355,8 @@ public function testLocationSwappedSimpleWithHistory() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSimpleWithConflict() { $handler = $this->getHandler(); @@ -3554,9 +3460,8 @@ public function testLocationSwappedSimpleWithConflict() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSimple() { $handler = $this->getHandler(); @@ -3628,9 +3533,8 @@ public function testLocationSwappedSiblingsSimple() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSimpleReverse() { $handler = $this->getHandler(); @@ -3702,9 +3606,8 @@ public function testLocationSwappedSiblingsSimpleReverse() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSimpleWithHistory() { $handler = $this->getHandler(); @@ -3830,9 +3733,8 @@ public function testLocationSwappedSiblingsSimpleWithHistory() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSimpleWithHistoryReverse() { $handler = $this->getHandler(); @@ -3958,9 +3860,8 @@ public function testLocationSwappedSiblingsSimpleWithHistoryReverse() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSameName() { $handler = $this->getHandler(); @@ -4032,9 +3933,8 @@ public function testLocationSwappedSiblingsSameName() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSameNameReverse() { $handler = $this->getHandler(); @@ -4106,9 +4006,8 @@ public function testLocationSwappedSiblingsSameNameReverse() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedSiblingsSameNameMultipleLanguages() { $handler = $this->getHandler(); @@ -4238,9 +4137,8 @@ public function testLocationSwappedSiblingsSameNameMultipleLanguages() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedMultipleLanguagesSimple() { $handler = $this->getHandler(); @@ -4273,9 +4171,8 @@ public function testLocationSwappedMultipleLanguagesSimple() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedMultipleLanguagesDifferentLanguagesSimple() { $handler = $this->getHandler(); @@ -4495,9 +4392,8 @@ public function testLocationSwappedMultipleLanguagesDifferentLanguagesSimple() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedMultipleLanguagesDifferentLanguages() { $handler = $this->getHandler(); @@ -4653,9 +4549,8 @@ public function testLocationSwappedMultipleLanguagesDifferentLanguages() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedMultipleLanguagesWithCompositeHistory() { $handler = $this->getHandler(); @@ -4946,9 +4841,8 @@ public function testLocationSwappedMultipleLanguagesWithCompositeHistory() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedWithReusingExternalHistory() { $handler = $this->getHandler(); @@ -5098,9 +4992,8 @@ public function testLocationSwappedWithReusingExternalHistory() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedWithReusingNopEntry() { $handler = $this->getHandler(); @@ -5250,11 +5143,9 @@ public function testLocationSwappedWithReusingNopEntry() /** * Test for the locationSwapped() method. - * - * @depends testLocationSwappedWithReusingNopEntry - * - * @group swap */ + #[Depends('testLocationSwappedWithReusingNopEntry')] + #[Group('swap')] public function testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed() { $handler = $this->getHandler(); @@ -5275,9 +5166,8 @@ public function testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedUpdatesLocationPathIdentificationString() { $handler = $this->getHandler(); @@ -5302,9 +5192,8 @@ public function testLocationSwappedUpdatesLocationPathIdentificationString() /** * Test for the locationSwapped() method. - * - * @group swap */ + #[Group('swap')] public function testLocationSwappedMultipleLanguagesUpdatesLocationPathIdentificationString() { $handler = $this->getHandler(); @@ -5359,17 +5248,17 @@ protected function getPartlyMockedHandler(array $methods) return $this->getMockBuilder(Handler::class) ->setConstructorArgs( [ - $this->createMock(UrlAliasGateway::class), - $this->createMock(Mapper::class), - $this->createMock(LocationGateway::class), - $this->createMock(LanguageHandler::class), - $this->createMock(SlugConverter::class), - $this->createMock(Gateway::class), - $this->createMock(LanguageMaskGenerator::class), - $this->createMock(TransactionHandler::class), + self::createStub(UrlAliasGateway::class), + self::createStub(Mapper::class), + self::createStub(LocationGateway::class), + self::createStub(LanguageHandler::class), + self::createStub(SlugConverter::class), + self::createStub(Gateway::class), + self::createStub(LanguageMaskGenerator::class), + self::createStub(TransactionHandler::class), ] ) - ->setMethods($methods) + ->onlyMethods(array_values($methods)) ->getMock(); } @@ -5405,7 +5294,7 @@ protected function getHandler(): Handler $slugConverter, $contentGateway, $languageMaskGenerator, - $this->createMock(TransactionHandler::class) + self::createStub(TransactionHandler::class) ); } @@ -5477,7 +5366,7 @@ public function getProcessor() * * @return array */ - public function providerForArchiveUrlAliasesForDeletedTranslations() + public static function providerForArchiveUrlAliasesForDeletedTranslations() { return [ [2, ['eng-GB', 'pol-PL'], 'pol-PL'], @@ -5486,12 +5375,11 @@ public function providerForArchiveUrlAliasesForDeletedTranslations() } /** - * @dataProvider providerForArchiveUrlAliasesForDeletedTranslations - * * @param int $locationId * @param string[] $expectedLanguages expected language codes before deleting * @param string $removeLanguage language code to be deleted */ + #[DataProvider('providerForArchiveUrlAliasesForDeletedTranslations')] public function testArchiveUrlAliasesForDeletedTranslations( $locationId, array $expectedLanguages, diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php index 1831d801aa..e497f790ae 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php @@ -11,10 +11,11 @@ use Ibexa\Core\Persistence\Legacy\Content\Language\MaskGenerator as LanguageMaskGenerator; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Mapper - */ +#[CoversClass(Mapper::class)] class UrlAliasMapperTest extends LanguageAwareTestCase { protected $fixture = [ @@ -229,16 +230,15 @@ protected function getExpectation() ]; } - public function providerForTestExtractUrlAliasFromData() + public static function providerForTestExtractUrlAliasFromData() { return [[0], [1], [2], [3]]; } /** * Test for the extractUrlAliasFromData() method. - * - * @dataProvider providerForTestExtractUrlAliasFromData */ + #[DataProvider('providerForTestExtractUrlAliasFromData')] public function testExtractUrlAliasFromData($index) { $mapper = $this->getMapper(); @@ -254,9 +254,8 @@ public function testExtractUrlAliasFromData($index) /** * Test for the extractUrlAliasListFromData() method. - * - * @depends testExtractUrlAliasFromData */ + #[Depends('testExtractUrlAliasFromData')] public function testExtractUrlAliasListFromData() { $mapper = $this->getMapper(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php index 80fa3a7c28..81a20a57e5 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php @@ -13,10 +13,10 @@ use Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Query\CriteriaConverter; use Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Query\CriterionHandler\MatchAll; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** @@ -118,9 +118,8 @@ public function testLoadUrlWildcardsDataWithOffsetAndLimit() /** * Test for the insertUrlWildcard() method. - * - * @depends testLoadUrlWildcardData */ + #[Depends('testLoadUrlWildcardData')] public function testInsertUrlWildcard() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); @@ -149,9 +148,8 @@ public function testInsertUrlWildcard() /** * Test for the deleteUrlWildcard() method. - * - * @depends testLoadUrlWildcardData */ + #[Depends('testLoadUrlWildcardData')] public function testDeleteUrlWildcard() { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php index 0662322bd3..43238cd329 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php @@ -16,10 +16,10 @@ use Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Query\CriteriaConverter; use Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Query\CriterionHandler\MatchAll; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Handler - */ +#[CoversClass(Handler::class)] class UrlWildcardHandlerTest extends TestCase { public function testLoad() @@ -57,10 +57,8 @@ public function testLoadThrowsNotFoundException() /** * Test for the create() method. - * - * - * @depends testLoad */ + #[Depends('testLoad')] public function testCreate() { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); @@ -90,9 +88,7 @@ public function testCreate() ); } - /** - * @depends testLoad - */ + #[Depends('testLoad')] public function testUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); @@ -127,9 +123,8 @@ public function testUpdate(): void /** * Test for the remove() method. - * - * @depends testLoad */ + #[Depends('testLoad')] public function testRemove() { $this->expectException(NotFoundException::class); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php index 3f334bed5b..5ec0c4550a 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php @@ -10,10 +10,9 @@ use Ibexa\Contracts\Core\Persistence\Content\UrlWildcard; use Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Mapper; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Content\UrlWildcard\Mapper - */ +#[CoversClass(Mapper::class)] class UrlWildcardMapperTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php b/tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php index 63f2e0f41f..988467f9be 100644 --- a/tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php +++ b/tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\IO\Values\BinaryFile; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ImageConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Symfony\Bridge\PhpUnit\ClockMock; @@ -39,9 +40,7 @@ protected function setUp(): void ); } - /** - * @dataProvider fieldValueToXmlProvider - */ + #[DataProvider('fieldValueToXmlProvider')] public function testToStorageValue(FieldValue $fieldValue, string $expectedXml): void { ClockMock::register(ImageConverter::class); @@ -68,7 +67,7 @@ public function testToStorageValue(FieldValue $fieldValue, string $expectedXml): ClockMock::withClockMock(false); } - public function fieldValueToXmlProvider(): array + public static function fieldValueToXmlProvider(): array { $pathToImg = __DIR__ . '/../_fixtures/ibexa_fav.png'; $dir = __DIR__ . '/../_fixtures'; @@ -132,9 +131,7 @@ public function fieldValueToXmlProvider(): array ]; } - /** - * @dataProvider xmlToFieldValueProvider - */ + #[DataProvider('xmlToFieldValueProvider')] public function testToFieldValue(string $xml, FieldValue $expectedFieldValue): void { ClockMock::register(ImageConverter::class); @@ -162,7 +159,7 @@ public function testToFieldValue(string $xml, FieldValue $expectedFieldValue): v ClockMock::withClockMock(false); } - public function xmlToFieldValueProvider(): array + public static function xmlToFieldValueProvider(): array { $pathToImg = __DIR__ . '/../_fixtures/ibexa_fav.png'; $dir = __DIR__ . '/../_fixtures'; diff --git a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php index c6585e001f..5b2b4b1ce7 100644 --- a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php +++ b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php @@ -11,11 +11,17 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\Query\Expression\ExpressionBuilder; use Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder; +use Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder as CoveredCriterionQueryBuilder; use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringCriterion; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; +#[CoversMethod(CoveredCriterionQueryBuilder::class, 'buildQueryConstraint')] +#[CoversMethod(CoveredCriterionQueryBuilder::class, 'accepts')] +#[CoversMethod(CriterionVisitor::class, 'visitCriteria')] abstract class BaseCriterionVisitorQueryBuilderTestCase extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor */ @@ -29,7 +35,7 @@ abstract protected function getCriterionQueryBuilders(): iterable; /** * Data provider for {@see testVisitCriteriaProducesQuery}. */ - abstract public function getFilteringCriteriaQueryData(): iterable; + abstract public static function getFilteringCriteriaQueryData(): iterable; protected function setUp(): void { @@ -43,14 +49,9 @@ protected function setUp(): void } /** - * @dataProvider getFilteringCriteriaQueryData - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder::buildQueryConstraint - * @covers \Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder::accepts - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor::visitCriteria - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException */ + #[DataProvider('getFilteringCriteriaQueryData')] public function testVisitCriteriaProducesQuery( FilteringCriterion $criterion, string $expectedQuery, diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php index 70f3f71754..ce326b5437 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\LanguageCodeQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\LanguageCodeQueryBuilder - */ +#[CoversClass(LanguageCodeQueryBuilder::class)] final class LanguageCodeQueryBuilderQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Language Code IN (eng-GB, eng-US), match always available' => [ new Criterion\LanguageCode(['eng-GB', 'eng-US']), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php index b4379d12ef..fed132c333 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ContentTypeGroupId; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\GroupIdQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\GroupIdQueryBuilder - */ +#[CoversClass(GroupIdQueryBuilder::class)] class ContentTypeGroupIdQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Content type group ID=1' => [ new ContentTypeGroupId(1), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php index cf0b6d1fe3..f94f28ef2f 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php @@ -12,14 +12,13 @@ use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\IdentifierQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\IdQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\IdentifierQueryBuilder - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\Type\IdQueryBuilder - */ +#[CoversClass(IdentifierQueryBuilder::class)] +#[CoversClass(IdQueryBuilder::class)] final class ContentTypeQueryBuildersTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Content type identifier=article' => [ new Criterion\ContentTypeIdentifier('article'), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php index c344364c4a..651fad364c 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php @@ -19,7 +19,7 @@ protected function getCriterionQueryBuilders(): iterable return [new AncestorQueryBuilder()]; } - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Ancestor=/1/2/' => [ new Ancestor('/1/2/'), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/IsBookmarkedQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/IsBookmarkedQueryBuilderTest.php index dcc45fc75c..60420aac90 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/IsBookmarkedQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/IsBookmarkedQueryBuilderTest.php @@ -13,10 +13,9 @@ use Ibexa\Contracts\Core\Repository\Values\User\UserReference; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\IsBookmarkedQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\IsBookmarkedQueryBuilder - */ +#[CoversClass(IsBookmarkedQueryBuilder::class)] final class IsBookmarkedQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { private const CURRENT_USER_ID = 14; @@ -29,7 +28,7 @@ final class IsBookmarkedQueryBuilderTest extends BaseCriterionVisitorQueryBuilde * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidCriterionArgumentException */ - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'IsBookmarked(true)' => [ new Criterion\Location\IsBookmarked(true), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php index f305e7a407..e88c6a9ec1 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php @@ -10,14 +10,14 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\IdQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\ParentLocationIdQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\ParentLocationIdQueryBuilder - */ +#[CoversClass(ParentLocationIdQueryBuilder::class)] final class LocationIdQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Location ID=1' => [ new Criterion\LocationId(1), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php index d1b74ad548..8e86b979dc 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php @@ -11,13 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\ParentLocationIdQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\ParentLocationIdQueryBuilder - */ +#[CoversClass(ParentLocationIdQueryBuilder::class)] final class ParentLocationQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Parent Location ID=1' => [ new Criterion\ParentLocationId(1), diff --git a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php index 8c46ee4156..64d2480406 100644 --- a/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php @@ -12,16 +12,18 @@ use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\ContentIdQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content\LanguageCodeQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location\ParentLocationIdQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalAndQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalNotQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalOrQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\Filter\BaseCriterionVisitorQueryBuilderTestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalAndQueryBuilder - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalOrQueryBuilder - * @covers \Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalNotQueryBuilder - */ +#[CoversClass(LogicalAndQueryBuilder::class)] +#[CoversClass(LogicalOrQueryBuilder::class)] +#[CoversClass(LogicalNotQueryBuilder::class)] final class LogicalOperatorQueryBuilderQueryBuilderTest extends BaseCriterionVisitorQueryBuilderTestCase { - public function getFilteringCriteriaQueryData(): iterable + public static function getFilteringCriteriaQueryData(): iterable { yield 'Parent Location ID=1 AND Language Code=eng-GB' => [ new Criterion\LogicalAnd( diff --git a/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php index ac9e666a08..30a7809969 100644 --- a/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php @@ -11,10 +11,11 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\Persistence\Legacy\Filter\Query\LimitedCountQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\Query\LimitedCountQueryBuilder - */ +#[CoversClass(LimitedCountQueryBuilder::class)] +#[CoversMethod(LimitedCountQueryBuilder::class, 'wrap')] final class LimitedCountQueryBuilderTest extends TestCase { private LimitedCountQueryBuilder $limitedCountQueryBuilder; @@ -35,9 +36,6 @@ public function testWrapThrowsExceptionOnZeroLimit(): void $this->limitedCountQueryBuilder->wrap($qb, 'someField', 0); } - /** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\Query\LimitedCountQueryBuilder::wrap - */ public function testWrapDoesNotChangeQueryBuilderIfLimitIsNull(): void { $qb = $this->getDatabaseConnection()->createQueryBuilder(); diff --git a/tests/lib/Persistence/Legacy/Filter/SortClauseQueryBuilder/Location/Bookmark/IdSortClauseQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/SortClauseQueryBuilder/Location/Bookmark/IdSortClauseQueryBuilderTest.php index f31817a6d2..0cdfa208e0 100644 --- a/tests/lib/Persistence/Legacy/Filter/SortClauseQueryBuilder/Location/Bookmark/IdSortClauseQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/SortClauseQueryBuilder/Location/Bookmark/IdSortClauseQueryBuilderTest.php @@ -17,11 +17,11 @@ use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway\DoctrineDatabase; use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway as LocationGateway; use Ibexa\Core\Persistence\Legacy\Filter\SortClauseQueryBuilder\Location\Bookmark\IdSortClauseQueryBuilder; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Filter\SortClauseQueryBuilder\Location\Bookmark\IdSortClauseQueryBuilder - */ +#[CoversClass(IdSortClauseQueryBuilder::class)] final class IdSortClauseQueryBuilderTest extends TestCase { private const CURRENT_USER_ID = 14; @@ -45,33 +45,30 @@ public function testBuildQueryInLocationFilteringContext(): void $builder->buildQuery($queryBuilder, $sortClause); - self::assertContains( + $sql = $queryBuilder->getSQL(); + + self::assertStringContainsString( sprintf('%s.id AS %s', self::BOOKMARK_ALIAS, self::SORT_ALIAS), - $queryBuilder->getQueryPart('select') + $sql ); - $joins = $queryBuilder->getQueryPart('join'); - self::assertArrayHasKey('location', $joins); - - $bookmarkJoin = $this->findJoinByAlias($joins['location'], self::BOOKMARK_ALIAS); - self::assertNotNull($bookmarkJoin, 'Bookmarks table was not joined against "location"'); - self::assertSame(DoctrineDatabase::TABLE_BOOKMARKS, $bookmarkJoin['joinTable']); + // bookmarks table is joined directly against "location" self::assertSame( sprintf( '(location.node_id = %1$s.node_id) AND (%1$s.user_id = :dcValue1)', self::BOOKMARK_ALIAS ), - (string)$bookmarkJoin['joinCondition'] + $queryBuilder->getExistingTableAliasJoinCondition(self::BOOKMARK_ALIAS) ); self::assertSame(['dcValue1' => self::CURRENT_USER_ID], $queryBuilder->getParameters()); - self::assertSame( - [self::SORT_ALIAS . ' DESC'], - $queryBuilder->getQueryPart('orderBy') + self::assertStringContainsString( + sprintf('ORDER BY %s DESC', self::SORT_ALIAS), + $sql ); // the whole join graph has to resolve - self::assertStringContainsString(self::BOOKMARK_ALIAS, $queryBuilder->getSQL()); + self::assertStringContainsString(self::BOOKMARK_ALIAS, $sql); } /** @@ -84,56 +81,58 @@ public function testBuildQueryInContentFilteringContext(): void $this->createBuilder()->buildQuery($queryBuilder, new Id(Query::SORT_DESC)); - $joins = $queryBuilder->getQueryPart('join'); + $sql = $queryBuilder->getSQL(); // main Location joined off the "content" FROM table... - self::assertArrayHasKey('content', $joins); - self::assertSame(LocationGateway::CONTENT_TREE_TABLE, $joins['content'][0]['joinTable']); - self::assertSame(self::CONTENT_LOCATION_ALIAS, $joins['content'][0]['joinAlias']); - - // ...and bookmarks joined off that alias, not off a hardcoded "location" - self::assertArrayHasKey(self::CONTENT_LOCATION_ALIAS, $joins); self::assertSame( - DoctrineDatabase::TABLE_BOOKMARKS, - $joins[self::CONTENT_LOCATION_ALIAS][0]['joinTable'] + sprintf( + '(content.id = %1$s.contentobject_id) AND (%1$s.node_id = %1$s.main_node_id)', + self::CONTENT_LOCATION_ALIAS + ), + $queryBuilder->getExistingTableAliasJoinCondition(self::CONTENT_LOCATION_ALIAS) ); - self::assertSame( - self::BOOKMARK_ALIAS, - $joins[self::CONTENT_LOCATION_ALIAS][0]['joinAlias'] + self::assertStringContainsString( + sprintf('%s %s', LocationGateway::CONTENT_TREE_TABLE, self::CONTENT_LOCATION_ALIAS), + $sql ); + + // ...and bookmarks joined off that alias, not off a hardcoded "location" self::assertSame( sprintf( '(%1$s.node_id = %2$s.node_id) AND (%2$s.user_id = :dcValue1)', self::CONTENT_LOCATION_ALIAS, self::BOOKMARK_ALIAS ), - (string)$joins[self::CONTENT_LOCATION_ALIAS][0]['joinCondition'] + $queryBuilder->getExistingTableAliasJoinCondition(self::BOOKMARK_ALIAS) + ); + self::assertStringContainsString( + sprintf('%s %s', DoctrineDatabase::TABLE_BOOKMARKS, self::BOOKMARK_ALIAS), + $sql ); - self::assertArrayNotHasKey('location', $joins); + self::assertFalse($queryBuilder->hasFromAlias('location')); - self::assertSame( - [self::SORT_ALIAS . ' DESC'], - $queryBuilder->getQueryPart('orderBy') + self::assertStringContainsString( + sprintf('ORDER BY %s DESC', self::SORT_ALIAS), + $sql ); - self::assertStringContainsString(self::BOOKMARK_ALIAS, $queryBuilder->getSQL()); + self::assertStringContainsString(self::BOOKMARK_ALIAS, $sql); } /** * @return iterable */ - public function standaloneContextProvider(): iterable + public static function standaloneContextProvider(): iterable { - yield 'Location filtering' => [$this->createLocationFilteringQueryBuilder()]; - yield 'Content filtering' => [$this->createContentFilteringQueryBuilder()]; + yield 'Location filtering' => [self::createLocationFilteringQueryBuilder()]; + yield 'Content filtering' => [self::createContentFilteringQueryBuilder()]; } /** * Test that sort clause works without an IsBookmarked criterion having joined anything first. - * - * @dataProvider standaloneContextProvider */ + #[DataProvider('standaloneContextProvider')] public function testBuildQueryStandaloneProducesResolvableSql( FilteringQueryBuilder $queryBuilder ): void { @@ -145,22 +144,6 @@ public function testBuildQueryStandaloneProducesResolvableSql( self::assertStringContainsString('ORDER BY ' . self::SORT_ALIAS . ' ASC', $sql); } - /** - * @param array> $joins - * - * @return array|null - */ - private function findJoinByAlias(array $joins, string $joinAlias): ?array - { - foreach ($joins as $join) { - if ($join['joinAlias'] === $joinAlias) { - return $join; - } - } - - return null; - } - private function createBuilder(): IdSortClauseQueryBuilder { $userReference = $this->createMock(UserReference::class); @@ -177,9 +160,9 @@ private function createBuilder(): IdSortClauseQueryBuilder * {@see \Ibexa\Core\Persistence\Legacy\Filter\Gateway\Location\Doctrine\DoctrineGateway}: * "location" is the FROM table and "content" is joined off it. */ - private function createLocationFilteringQueryBuilder(): FilteringQueryBuilder + private static function createLocationFilteringQueryBuilder(): FilteringQueryBuilder { - $queryBuilder = new FilteringQueryBuilder($this->createInMemoryConnection()); + $queryBuilder = new FilteringQueryBuilder(self::createInMemoryConnection()); $queryBuilder ->select('location.node_id') ->from(LocationGateway::CONTENT_TREE_TABLE, 'location') @@ -198,9 +181,9 @@ private function createLocationFilteringQueryBuilder(): FilteringQueryBuilder * {@see \Ibexa\Core\Persistence\Legacy\Filter\Gateway\Content\Doctrine\DoctrineGateway}: * "content" is the FROM table and there is no "location" alias at all. */ - private function createContentFilteringQueryBuilder(): FilteringQueryBuilder + private static function createContentFilteringQueryBuilder(): FilteringQueryBuilder { - $queryBuilder = new FilteringQueryBuilder($this->createInMemoryConnection()); + $queryBuilder = new FilteringQueryBuilder(self::createInMemoryConnection()); $queryBuilder ->select('content.id') ->from(self::CONTENT_ITEM_TABLE, 'content'); @@ -208,8 +191,8 @@ private function createContentFilteringQueryBuilder(): FilteringQueryBuilder return $queryBuilder; } - private function createInMemoryConnection(): \Doctrine\DBAL\Connection + private static function createInMemoryConnection(): \Doctrine\DBAL\Connection { - return DriverManager::getConnection(['url' => 'sqlite:///:memory:']); + return DriverManager::getConnection(['driver' => 'pdo_sqlite', 'memory' => true]); } } diff --git a/tests/lib/Persistence/Legacy/HandlerTest.php b/tests/lib/Persistence/Legacy/HandlerTest.php index c13aba4c7e..1242bf274c 100644 --- a/tests/lib/Persistence/Legacy/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/HandlerTest.php @@ -26,10 +26,9 @@ use Ibexa\Core\Persistence\Legacy\TransactionHandler; use Ibexa\Core\Persistence\Legacy\User\Handler as UserHandler; use Ibexa\Tests\Integration\Core\LegacyTestContainerBuilder; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Handler::contentHandler - */ +#[CoversMethod(Handler::class, 'contentHandler')] class HandlerTest extends TestCase { public function testContentHandler(): void diff --git a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php index ad719bd357..044b1721bb 100644 --- a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php @@ -18,10 +18,9 @@ use Ibexa\Core\Persistence\Legacy\Notification\Gateway\CriterionHandler\TypeCriterionHandler; use Ibexa\Core\Persistence\Legacy\Notification\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Notification\Gateway\DoctrineDatabase::insert - */ +#[CoversMethod(DoctrineDatabase::class, 'insert')] class DoctrineDatabaseTest extends TestCase { public const EXISTING_NOTIFICATION_ID = 1; diff --git a/tests/lib/Persistence/Legacy/Notification/HandlerTest.php b/tests/lib/Persistence/Legacy/Notification/HandlerTest.php index 0c85dc9867..7e0b3ae9e3 100644 --- a/tests/lib/Persistence/Legacy/Notification/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/Notification/HandlerTest.php @@ -17,11 +17,10 @@ use Ibexa\Core\Persistence\Legacy\Notification\Gateway; use Ibexa\Core\Persistence\Legacy\Notification\Handler; use Ibexa\Core\Persistence\Legacy\Notification\Mapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Notification\Handler - */ +#[CoversClass(Handler::class)] class HandlerTest extends TestCase { public const NOTIFICATION_ID = 1; diff --git a/tests/lib/Persistence/Legacy/Notification/MapperTest.php b/tests/lib/Persistence/Legacy/Notification/MapperTest.php index 9925250d1b..6af9320104 100644 --- a/tests/lib/Persistence/Legacy/Notification/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Notification/MapperTest.php @@ -11,11 +11,10 @@ use Ibexa\Contracts\Core\Persistence\Notification\Notification; use Ibexa\Contracts\Core\Persistence\Notification\UpdateStruct; use Ibexa\Core\Persistence\Legacy\Notification\Mapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Notification\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Notification\Mapper */ diff --git a/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php b/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php index 32feb226b5..b15d8f65e2 100644 --- a/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\Persistence\Legacy\Setting\Gateway; use Ibexa\Core\Persistence\Legacy\Setting\Handler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\MockObject\MockObject; -/** - * @covers \Ibexa\Core\Persistence\Legacy\Setting\Handler::create - */ +#[CoversMethod(Handler::class, 'create')] final class SettingHandlerTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Setting\Handler */ diff --git a/tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php b/tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php index be52286391..90cfa90c9d 100644 --- a/tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php +++ b/tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php @@ -13,12 +13,12 @@ use Ibexa\Core\Persistence\Legacy\SharedGateway\DatabasePlatform\FallbackGateway; use Ibexa\Core\Persistence\Legacy\SharedGateway\DatabasePlatform\SqliteGateway; use Ibexa\Core\Persistence\Legacy\SharedGateway\GatewayFactory; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Traversable; -/** - * @covers \Ibexa\Core\Persistence\Legacy\SharedGateway\GatewayFactory - */ +#[CoversClass(GatewayFactory::class)] final class GatewayFactoryTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\SharedGateway\GatewayFactory */ @@ -30,23 +30,22 @@ final class GatewayFactoryTest extends TestCase public function setUp(): void { $gateways = [ - Platforms\SQLitePlatform::class => new SqliteGateway($this->createMock(Connection::class)), + Platforms\SQLitePlatform::class => new SqliteGateway(self::createStub(Connection::class)), ]; $this->factory = new GatewayFactory( - new FallbackGateway($this->createMock(Connection::class)), + new FallbackGateway(self::createStub(Connection::class)), $gateways, ); } /** - * @dataProvider getTestBuildSharedGatewayData - * * @param \Doctrine\DBAL\Connection $connectionMock * @param string $expectedInstance * * @throws \Doctrine\DBAL\Exception */ + #[DataProvider('getTestBuildSharedGatewayData')] public function testBuildSharedGateway( Connection $connectionMock, string $expectedInstance @@ -60,7 +59,7 @@ public function testBuildSharedGateway( /** * @return \Doctrine\DBAL\Connection[]|\PHPUnit\Framework\MockObject\MockObject[]|\Traversable */ - public function getTestBuildSharedGatewayData(): Traversable + public static function getTestBuildSharedGatewayData(): Traversable { $databasePlatformGatewayPairs = [ [new Platforms\SQLitePlatform(), SqliteGateway::class], @@ -71,10 +70,8 @@ public function getTestBuildSharedGatewayData(): Traversable foreach ($databasePlatformGatewayPairs as $databasePlatformGatewayPair) { [$databasePlatform, $sharedGateway] = $databasePlatformGatewayPair; - $connectionMock = $this - ->createMock(Connection::class); + $connectionMock = self::createStub(Connection::class); $connectionMock - ->expects(self::any()) ->method('getDatabasePlatform') ->willReturn($databasePlatform); diff --git a/tests/lib/Persistence/Legacy/TransactionHandlerTest.php b/tests/lib/Persistence/Legacy/TransactionHandlerTest.php index 98ae8e3372..366fa5f507 100644 --- a/tests/lib/Persistence/Legacy/TransactionHandlerTest.php +++ b/tests/lib/Persistence/Legacy/TransactionHandlerTest.php @@ -12,11 +12,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Language\CachingHandler; use Ibexa\Core\Persistence\Legacy\Content\Type\MemoryCachingHandler; use Ibexa\Core\Persistence\Legacy\TransactionHandler; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\TransactionHandler - */ +#[CoversClass(TransactionHandler::class)] class TransactionHandlerTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php index 0b59dbf9d9..37d4617df6 100644 --- a/tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php @@ -13,10 +13,9 @@ use Ibexa\Core\Persistence\Legacy\URL\Query\CriteriaConverter; use Ibexa\Core\Persistence\Legacy\URL\Query\CriterionHandler\MatchAll; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriteriaConverterTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriteriaConverterTest.php index 14f4d05609..d5ceeefc75 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriteriaConverterTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriteriaConverterTest.php @@ -12,11 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Core\Persistence\Legacy\URL\Query\CriteriaConverter; use Ibexa\Core\Persistence\Legacy\URL\Query\CriterionHandler; +use Ibexa\Core\Persistence\Legacy\User\Gateway\DoctrineDatabase; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\User\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class CriteriaConverterTest extends TestCase { /** @@ -32,9 +32,9 @@ public function testConvertCriteriaSuccess(): void $barCriterionHandler, ]); - $barCriterion = $this->createMock(Criterion::class); + $barCriterion = self::createStub(Criterion::class); - $selectQuery = $this->createMock(QueryBuilder::class); + $selectQuery = self::createStub(QueryBuilder::class); $fooCriterionHandler ->expects(self::once()) @@ -77,8 +77,8 @@ public function testConvertCriteriaFailure(): void $criteriaConverter = new CriteriaConverter(); $criteriaConverter->convertCriteria( - $this->createMock(QueryBuilder::class), - $this->createMock(Criterion::class) + self::createStub(QueryBuilder::class), + self::createStub(Criterion::class) ); } } diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php index 00525ff4bd..95cdcee360 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php @@ -29,7 +29,7 @@ abstract public function testHandle(); */ protected function assertHandlerAcceptsCriterion(CriterionHandler $handler, $criterionClass) { - self::assertTrue($handler->accept($this->createMock($criterionClass))); + self::assertTrue($handler->accept(self::createStub($criterionClass))); } /** @@ -40,7 +40,7 @@ protected function assertHandlerAcceptsCriterion(CriterionHandler $handler, $cri */ protected function assertHandlerRejectsCriterion(CriterionHandler $handler, $criterionClass) { - self::assertFalse($handler->accept($this->createMock($criterionClass))); + self::assertFalse($handler->accept(self::createStub($criterionClass))); } /** @@ -72,16 +72,21 @@ protected function mockConverterForLogicalOperator( ->willReturn($expressionBuilder); $converter = $this->createMock(CriteriaConverter::class); + $matcher = self::exactly(2); $converter - ->expects(self::at(0)) + ->expects($matcher) ->method('convertCriteria') - ->with($queryBuilder, $foo) - ->willReturn($fooExpr); - $converter - ->expects(self::at(1)) - ->method('convertCriteria') - ->with($queryBuilder, $bar) - ->willReturn($barExpr); + ->willReturnCallback(static function (QueryBuilder $actualQueryBuilder, Criterion $actualCriterion) use ($matcher, $queryBuilder, $foo, $bar, $fooExpr, $barExpr): string { + if ($matcher->numberOfInvocations() === 1) { + self::assertSame([$queryBuilder, $foo], [$actualQueryBuilder, $actualCriterion]); + + return $fooExpr; + } + + self::assertSame([$queryBuilder, $bar], [$actualQueryBuilder, $actualCriterion]); + + return $barExpr; + }); return $converter; } diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php index bb5a6ec69c..49efefc54a 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php @@ -22,8 +22,8 @@ public function testAccept() { $handler = new LogicalAndHandler(); - self::assertTrue($handler->accept($this->createMock(LogicalAnd::class))); - self::assertFalse($handler->accept($this->createMock(Criterion::class))); + self::assertTrue($handler->accept(self::createStub(LogicalAnd::class))); + self::assertFalse($handler->accept(self::createStub(Criterion::class))); } /** @@ -33,15 +33,15 @@ public function testAccept() */ public function testHandle(): void { - $foo = $this->createMock(Criterion::class); - $bar = $this->createMock(Criterion::class); + $foo = self::createStub(Criterion::class); + $bar = self::createStub(Criterion::class); $fooExpr = 'FOO'; $barExpr = 'BAR'; $expected = '(FOO) AND (BAR)'; - $queryBuilder = $this->createMock(QueryBuilder::class); + $queryBuilder = self::createStub(QueryBuilder::class); $converter = $this->mockConverterForLogicalOperator( CompositeExpression::TYPE_AND, $queryBuilder, diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php index a5599e57ca..0e62af35fd 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php @@ -33,15 +33,15 @@ public function testAccept() */ public function testHandle(): void { - $foo = $this->createMock(Criterion::class); + $foo = self::createStub(Criterion::class); $fooExpr = 'FOO'; $expected = 'NOT (FOO)'; - $queryBuilder = $this->createMock(QueryBuilder::class); + $queryBuilder = self::createStub(QueryBuilder::class); $converter = $this->createMock(CriteriaConverter::class); $converter - ->expects(self::at(0)) + ->expects(self::once()) ->method('convertCriteria') ->with($queryBuilder, $foo) ->willReturn($fooExpr); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php index c1574ec0e4..69a8bd451d 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php @@ -33,15 +33,15 @@ public function testAccept() */ public function testHandle(): void { - $foo = $this->createMock(Criterion::class); - $bar = $this->createMock(Criterion::class); + $foo = self::createStub(Criterion::class); + $bar = self::createStub(Criterion::class); $fooExpr = 'FOO'; $barExpr = 'BAR'; $expected = '(FOO) OR (BAR)'; - $queryBuilder = $this->createMock(QueryBuilder::class); + $queryBuilder = self::createStub(QueryBuilder::class); $converter = $this->mockConverterForLogicalOperator( CompositeExpression::TYPE_OR, $queryBuilder, diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php index 20be7baa79..b75fe616ae 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php @@ -34,8 +34,8 @@ public function testHandle() $criterion = new MatchAll(); $expected = '1 = 1'; - $queryBuilder = $this->createMock(QueryBuilder::class); - $converter = $this->createMock(CriteriaConverter::class); + $queryBuilder = self::createStub(QueryBuilder::class); + $converter = self::createStub(CriteriaConverter::class); $handler = new MatchAllHandler(); $actual = $handler->handle($converter, $queryBuilder, $criterion); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php index dc052034c9..9d59ee67b4 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php @@ -34,8 +34,8 @@ public function testHandle() $criterion = new MatchNone(); $expected = '1 = 0'; - $query = $this->createMock(QueryBuilder::class); - $converter = $this->createMock(CriteriaConverter::class); + $query = self::createStub(QueryBuilder::class); + $converter = self::createStub(CriteriaConverter::class); $handler = new MatchNoneHandler(); $actual = $handler->handle($converter, $query, $criterion); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php index 9be6f3e55c..399167eeea 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php @@ -52,7 +52,7 @@ public function testHandle() ->with('%' . $criterion->pattern . '%', ParameterType::STRING, ':pattern') ->willReturn(':pattern'); - $converter = $this->createMock(CriteriaConverter::class); + $converter = self::createStub(CriteriaConverter::class); $handler = new PatternHandler(); $actual = $handler->handle($converter, $queryBuilder, $criterion); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php index d0b9518c5a..ba66a40a68 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php @@ -54,7 +54,7 @@ public function testHandle() ->with((int)$criterion->isValid, ParameterType::INTEGER, ':is_valid') ->willReturn(':is_valid'); - $converter = $this->createMock(CriteriaConverter::class); + $converter = self::createStub(CriteriaConverter::class); $handler = new ValidityHandler(); $actual = $handler->handle($converter, $queryBuilder, $criterion); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/VisibleOnlyTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/VisibleOnlyTest.php index 8dfa4a546f..0199b4697c 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/VisibleOnlyTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/VisibleOnlyTest.php @@ -15,10 +15,9 @@ use Ibexa\Core\Persistence\Doctrine\JoinedTablesTracker; use Ibexa\Core\Persistence\Legacy\URL\Query\CriteriaConverter; use Ibexa\Core\Persistence\Legacy\URL\Query\CriterionHandler\VisibleOnly as VisibleOnlyHandler; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\URL\Query\CriterionHandler\VisibleOnly - */ +#[CoversClass(VisibleOnlyHandler::class)] class VisibleOnlyTest extends CriterionHandlerTestCase { /** @@ -43,7 +42,7 @@ public function testHandle(): void $criterion = new Criterion\VisibleOnly(); $handler = new VisibleOnlyHandler(new JoinedTablesTracker()); - $converter = $this->createMock(CriteriaConverter::class); + $converter = self::createStub(CriteriaConverter::class); $queryBuilder = $this->createDoctrineQueryBuilder(); $actual = $handler->handle($converter, $queryBuilder, $criterion); diff --git a/tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php index 2d0d8ccffd..38cd26aa42 100644 --- a/tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php @@ -12,10 +12,9 @@ use Ibexa\Core\Persistence\Legacy\User\Gateway\DoctrineDatabase; use Ibexa\Core\Persistence\Legacy\User\Role\Gateway; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\User\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php index 558f826822..54703d6dc0 100644 --- a/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php @@ -13,10 +13,11 @@ use Ibexa\Core\Persistence\Legacy\User\Role\Gateway; use Ibexa\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase - */ +#[CoversClass(DoctrineDatabase::class)] +#[CoversMethod(DoctrineDatabase::class, 'loadRoleAssignmentsByRoleIdWithOffsetAndLimit')] class DoctrineDatabaseTest extends TestCase { /** @@ -165,9 +166,6 @@ public function testLoadRoleAssignmentsByRoleId(): void ); } - /** - * @covers \Ibexa\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase::loadRoleAssignmentsByRoleIdWithOffsetAndLimit - */ public function testLoadRoleAssignmentsByRoleIdWithOffsetAndLimit(): void { $gateway = $this->getDatabaseGateway(); diff --git a/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php index 80f858cb26..df25baf9b7 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php @@ -13,10 +13,9 @@ use Ibexa\Core\Persistence\Legacy\UserPreference\Gateway; use Ibexa\Core\Persistence\Legacy\UserPreference\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Persistence\Legacy\UserPreference\Gateway - */ +#[CoversClass(Gateway::class)] class DoctrineDatabaseTest extends TestCase { public const EXISTING_USER_PREFERENCE_ID = 1; diff --git a/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php b/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php index 5a4f89fb28..8f8a886416 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php @@ -13,11 +13,10 @@ use Ibexa\Core\Persistence\Legacy\UserPreference\Gateway; use Ibexa\Core\Persistence\Legacy\UserPreference\Handler; use Ibexa\Core\Persistence\Legacy\UserPreference\Mapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\UserPreference\Handler - */ +#[CoversClass(Handler::class)] class HandlerTest extends TestCase { public const USER_PREFERENCE_ID = 1; diff --git a/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php b/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php index d0a6c322e1..3926c071b1 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php @@ -10,11 +10,10 @@ use Ibexa\Contracts\Core\Persistence\UserPreference\UserPreference; use Ibexa\Core\Persistence\Legacy\UserPreference\Mapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Persistence\Legacy\UserPreference\Mapper - */ +#[CoversClass(Mapper::class)] class MapperTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\UserPreference\Mapper */ diff --git a/tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php b/tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php index d0c1506c8c..4853f26e21 100644 --- a/tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php +++ b/tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php @@ -12,11 +12,11 @@ use Ibexa\Contracts\Core\Limitation\Target\Builder\VersionBuilder; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Limitation\Target\Builder\VersionBuilder - */ +#[CoversClass(VersionBuilder::class)] class VersionBuilderTest extends TestCase { /** @var string */ @@ -35,7 +35,7 @@ class VersionBuilderTest extends TestCase * * @return array */ - public function providerForTestBuild(): array + public static function providerForTestBuild(): array { $versionStatuses = [ VersionInfo::STATUS_DRAFT, @@ -100,8 +100,6 @@ public function providerForTestBuild(): array } /** - * @dataProvider providerForTestBuild - * * @param \Ibexa\Contracts\Core\Limitation\Target\Version $expectedTargetVersion * @param int $newStatus * @param string $initialLanguageCode @@ -112,6 +110,7 @@ public function providerForTestBuild(): array * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ + #[DataProvider('providerForTestBuild')] public function testBuild( Target\Version $expectedTargetVersion, int $newStatus, diff --git a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedParserTest.php b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedParserTest.php index 998be78db3..0867124d91 100644 --- a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedParserTest.php +++ b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedParserTest.php @@ -9,6 +9,7 @@ use Ibexa\Core\Persistence; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class TransformationProcessorDefinitionBasedParserTest extends TestCase { @@ -27,9 +28,7 @@ public static function getTestFiles(): iterable } } - /** - * @dataProvider getTestFiles - */ + #[DataProvider('getTestFiles')] public function testParse(string $file): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(); diff --git a/tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php b/tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php index 915ab80aec..b84aa54265 100644 --- a/tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php +++ b/tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php @@ -15,6 +15,7 @@ use Ibexa\Core\QueryType\BuiltIn\SortClausesFactoryInterface; use Ibexa\Core\QueryType\QueryType; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; abstract class AbstractQueryTypeTestCase extends TestCase @@ -65,9 +66,7 @@ protected function setUp(): void ); } - /** - * @dataProvider dataProviderForGetQuery - */ + #[DataProvider('dataProviderForGetQuery')] final public function testGetQuery(array $parameters, Query $expectedQuery): void { self::assertEquals($expectedQuery, $this->queryType->getQuery($parameters)); @@ -89,7 +88,7 @@ final public function testGetSupportedParameters(): void ); } - abstract public function dataProviderForGetQuery(): iterable; + abstract public static function dataProviderForGetQuery(): iterable; abstract protected function createQueryType( Repository $repository, diff --git a/tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php b/tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php index ece2de2af8..f9e38f610a 100644 --- a/tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php +++ b/tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php @@ -30,7 +30,7 @@ final class AncestorsQueryTypeTest extends AbstractQueryTypeTestCase private const EXAMPLE_LOCATION_ID = 54; private const EXAMPLE_LOCATION_PATH_STRING = '/1/2/54/'; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { $location = new Location([ 'id' => self::EXAMPLE_LOCATION_ID, diff --git a/tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php b/tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php index d9024eb63b..d2dd7fe44b 100644 --- a/tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php +++ b/tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php @@ -27,7 +27,7 @@ final class ChildrenQueryTypeTest extends AbstractQueryTypeTestCase { private const EXAMPLE_LOCATION_ID = 54; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { $location = new Location([ 'id' => self::EXAMPLE_LOCATION_ID, diff --git a/tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php b/tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php index d055c36711..47c2a5e600 100644 --- a/tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php +++ b/tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php @@ -29,7 +29,7 @@ final class GeoLocationQueryTypeTest extends AbstractQueryTypeTestCase private const EXAMPLE_LATITUDE = 50.06314; private const EXAMPLE_LONGITUDE = 19.929843; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { $parameters = [ 'field' => self::EXAMPLE_FIELD, diff --git a/tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php b/tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php index 99646e8e7e..ae125c452d 100644 --- a/tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php +++ b/tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php @@ -27,7 +27,7 @@ final class RelatedToContentQueryTypeTest extends AbstractQueryTypeTestCase private const EXAMPLE_CONTENT_ID = 52; private const EXAMPLE_FIELD = 'related'; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { yield 'basic' => [ [ diff --git a/tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php b/tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php index d9a1ff34ee..796993a514 100644 --- a/tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php +++ b/tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php @@ -27,7 +27,7 @@ final class SiblingsQueryTypeTest extends AbstractQueryTypeTestCase { private const EXAMPLE_LOCATION_ID = 54; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { $location = new Location([ 'id' => self::EXAMPLE_LOCATION_ID, diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/DefaultSortClauseParserTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/DefaultSortClauseParserTest.php index a59ee3c171..dbaf041a7a 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/DefaultSortClauseParserTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/DefaultSortClauseParserTest.php @@ -55,7 +55,7 @@ public function testParseThrowsUnsupportedSortClauseException(): void )); $this->defaultSortClauseParser->parse( - $this->createMock(SortSpecParserInterface::class), + self::createStub(SortSpecParserInterface::class), 'unsupported' ); } diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/FieldSortClauseParserTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/FieldSortClauseParserTest.php index 82be846943..e6f1652df5 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/FieldSortClauseParserTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/FieldSortClauseParserTest.php @@ -31,18 +31,25 @@ protected function setUp(): void public function testParse(): void { $parser = $this->createMock(SortSpecParserInterface::class); - $parser - ->method('match') - ->withConsecutive( - [Token::TYPE_ID], - [Token::TYPE_DOT], - [Token::TYPE_ID] - ) - ->willReturnOnConsecutiveCalls( - new Token(Token::TYPE_ID, self::EXAMPLE_CONTENT_TYPE_ID), - new Token(Token::TYPE_DOT), - new Token(Token::TYPE_ID, self::EXAMPLE_FIELD_ID) - ); + $matcher = $this->exactly(3); + $parser->expects($matcher) + ->method('match')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(Token::TYPE_ID, $parameters[0]); + + return new Token(Token::TYPE_ID, self::EXAMPLE_CONTENT_TYPE_ID); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(Token::TYPE_DOT, $parameters[0]); + + return new Token(Token::TYPE_DOT); + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame(Token::TYPE_ID, $parameters[0]); + + return new Token(Token::TYPE_ID, self::EXAMPLE_FIELD_ID); + } + }); $parser->method('parseSortDirection')->willReturn(Query::SORT_ASC); diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/MapDistanceSortClauseParserTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/MapDistanceSortClauseParserTest.php index d7bcdc903e..1755e42758 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/MapDistanceSortClauseParserTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParser/MapDistanceSortClauseParserTest.php @@ -33,22 +33,35 @@ protected function setUp(): void public function testParse(): void { $parser = $this->createMock(SortSpecParserInterface::class); - $parser - ->method('match') - ->withConsecutive( - [Token::TYPE_ID], - [Token::TYPE_DOT], - [Token::TYPE_ID], - [Token::TYPE_FLOAT], - [Token::TYPE_FLOAT] - ) - ->willReturnOnConsecutiveCalls( - new Token(Token::TYPE_ID, self::EXAMPLE_CONTENT_TYPE_ID), - new Token(Token::TYPE_DOT), - new Token(Token::TYPE_ID, self::EXAMPLE_FIELD_ID), - new Token(Token::TYPE_FLOAT, (string)self::EXAMPLE_LAT), - new Token(Token::TYPE_FLOAT, (string)self::EXAMPLE_LON) - ); + $matcher = $this->exactly(5); + $parser->expects($matcher) + ->method('match')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(Token::TYPE_ID, $parameters[0]); + + return new Token(Token::TYPE_ID, self::EXAMPLE_CONTENT_TYPE_ID); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(Token::TYPE_DOT, $parameters[0]); + + return new Token(Token::TYPE_DOT); + } + if ($matcher->numberOfInvocations() === 3) { + $this->assertSame(Token::TYPE_ID, $parameters[0]); + + return new Token(Token::TYPE_ID, self::EXAMPLE_FIELD_ID); + } + if ($matcher->numberOfInvocations() === 4) { + $this->assertSame(Token::TYPE_FLOAT, $parameters[0]); + + return new Token(Token::TYPE_FLOAT, (string)self::EXAMPLE_LAT); + } + if ($matcher->numberOfInvocations() === 5) { + $this->assertSame(Token::TYPE_FLOAT, $parameters[0]); + + return new Token(Token::TYPE_FLOAT, (string)self::EXAMPLE_LON); + } + }); $parser->method('parseSortDirection')->willReturn(Query::SORT_ASC); diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParserDispatcherTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParserDispatcherTest.php index 409c4e75d0..72b8231a24 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParserDispatcherTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortClauseParserDispatcherTest.php @@ -21,8 +21,8 @@ final class SortClauseParserDispatcherTest extends TestCase public function testParse(): void { - $sortSpecParser = $this->createMock(SortSpecParserInterface::class); - $sortClause = $this->createMock(SortClause::class); + $sortSpecParser = self::createStub(SortSpecParserInterface::class); + $sortClause = self::createStub(SortClause::class); $parser = $this->createMock(SortClauseParserInterface::class); $parser->method('supports')->with(self::EXAMPLE_SORT_CLAUSE)->willReturn(true); @@ -49,7 +49,7 @@ public function testParseThrowsUnsupportedSortClauseException(): void $parser->method('supports')->with(self::EXAMPLE_SORT_CLAUSE)->willReturn(false); $dispatcher = new SortClauseParserDispatcher([$parser]); - $dispatcher->parse($this->createMock(SortSpecParserInterface::class), self::EXAMPLE_SORT_CLAUSE); + $dispatcher->parse(self::createStub(SortSpecParserInterface::class), self::EXAMPLE_SORT_CLAUSE); } public function testSupports(): void diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php index bb7d8c41fa..ab24aa2863 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php @@ -10,13 +10,12 @@ use Ibexa\Core\QueryType\BuiltIn\SortSpec\SortSpecLexer; use Ibexa\Core\QueryType\BuiltIn\SortSpec\Token; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class SortSpecLexerTest extends TestCase { - /** - * @dataProvider dataProviderForTokenize - */ + #[DataProvider('dataProviderForTokenize')] public function testTokenize(string $input, iterable $expectedTokens): void { $lexer = new SortSpecLexer(); @@ -25,7 +24,7 @@ public function testTokenize(string $input, iterable $expectedTokens): void self::assertEquals($expectedTokens, $lexer->getAll()); } - public function dataProviderForTokenize(): iterable + public static function dataProviderForTokenize(): iterable { yield 'keyword: asc' => [ 'asc', diff --git a/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php b/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php index 848f179469..f72d3501f6 100644 --- a/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php +++ b/tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php @@ -15,23 +15,22 @@ use Ibexa\Core\QueryType\BuiltIn\SortSpec\SortSpecParser; use Ibexa\Core\QueryType\BuiltIn\SortSpec\Token; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; final class SortSpecParserTest extends TestCase { private const EXAMPLE_SORT_CLAUSE_ID = 'id'; - /** - * @dataProvider dataProviderForParseSortDirection - */ + #[DataProvider('dataProviderForParseSortDirection')] public function testParseSortDirection(array $input, string $expectedDirection): void { $lexer = new SortSpecLexerStub($input); - $parser = new SortSpecParser($this->createMock(SortClauseParserInterface::class), $lexer); + $parser = new SortSpecParser(self::createStub(SortClauseParserInterface::class), $lexer); self::assertEquals($expectedDirection, $parser->parseSortDirection()); } - public function dataProviderForParseSortDirection(): iterable + public static function dataProviderForParseSortDirection(): iterable { yield 'asc' => [ [ @@ -69,8 +68,8 @@ public function testParseSortClauseList(): void $sortClauseArgsParser = $this->createMock(SortClauseParserInterface::class); $parser = new SortSpecParser($sortClauseArgsParser, $lexer); - $sortClauseA = $this->createMock(SortClause::class); - $sortClauseB = $this->createMock(SortClause::class); + $sortClauseA = self::createStub(SortClause::class); + $sortClauseB = self::createStub(SortClause::class); $sortClauseArgsParser ->method('parse') @@ -93,7 +92,7 @@ public function testParseSortClause(): void $sortClauseArgsParser = $this->createMock(SortClauseParserInterface::class); $parser = new SortSpecParser($sortClauseArgsParser, $lexer); - $sortClause = $this->createMock(SortClause::class); + $sortClause = self::createStub(SortClause::class); $sortClauseArgsParser ->expects(self::once()) ->method('parse') @@ -112,7 +111,7 @@ public function testMatch(): void $lexer->expects(self::once())->method('consume')->willReturn($token); $parser = new SortSpecParser( - $this->createMock(SortClauseParserInterface::class), + self::createStub(SortClauseParserInterface::class), $lexer ); @@ -128,7 +127,7 @@ public function testMatchAny(): void $lexer->expects(self::once())->method('consume')->willReturn($token); $parser = new SortSpecParser( - $this->createMock(SortClauseParserInterface::class), + self::createStub(SortClauseParserInterface::class), $lexer ); diff --git a/tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php b/tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php index 671c613bbe..426a41692f 100644 --- a/tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php +++ b/tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php @@ -30,7 +30,7 @@ final class SubtreeQueryTest extends AbstractQueryTypeTestCase private const EXAMPLE_LOCATION_PATH_STRING = '/1/2/54/'; private const EXAMPLE_LOCATION_DEPTH = 3; - public function dataProviderForGetQuery(): iterable + public static function dataProviderForGetQuery(): iterable { $location = new Location([ 'id' => self::EXAMPLE_LOCATION_ID, diff --git a/tests/lib/Repository/ContentService/RelationListFacadeTest.php b/tests/lib/Repository/ContentService/RelationListFacadeTest.php index 79a6477ee6..a36819b09d 100644 --- a/tests/lib/Repository/ContentService/RelationListFacadeTest.php +++ b/tests/lib/Repository/ContentService/RelationListFacadeTest.php @@ -23,12 +23,12 @@ final class RelationListFacadeTest extends TestCase private RelationListFacade $relationListFacade; - private VersionInfo&MockObject $versionInfo; + private VersionInfo&\PHPUnit\Framework\MockObject\Stub $versionInfo; protected function setUp(): void { $this->contentService = $this->createMock(ContentService::class); - $this->versionInfo = $this->createMock(VersionInfo::class); + $this->versionInfo = self::createStub(VersionInfo::class); $this->relationListFacade = new RelationListFacade($this->contentService); } @@ -73,7 +73,7 @@ public function testGetRelationsIgnoresItemsWithoutRelations(): void public function testGetRelationsYieldsRelationsWhenPresent(): void { - $relation = $this->createMock(Relation::class); + $relation = self::createStub(Relation::class); $relationListItem = $this->createMock(RelationListItemInterface::class); $relationListItem diff --git a/tests/lib/Repository/ContentServiceTest.php b/tests/lib/Repository/ContentServiceTest.php index 17ed2cd3a5..1e53e122c6 100644 --- a/tests/lib/Repository/ContentServiceTest.php +++ b/tests/lib/Repository/ContentServiceTest.php @@ -35,18 +35,18 @@ final class ContentServiceTest extends TestCase protected function setUp(): void { $this->contentService = new ContentService( - $this->createMock(Repository::class), - $this->createMock(PersistenceHandler::class), - $this->createMock(ContentDomainMapper::class), - $this->createMock(RelationProcessor::class), - $this->createMock(NameSchemaServiceInterface::class), - $this->createMock(FieldTypeRegistry::class), - $this->createMock(PermissionService::class), - $this->createMock(ContentMapper::class), - $this->createMock(ContentValidator::class), - $this->createMock(ContentFilteringHandler::class), + self::createStub(Repository::class), + self::createStub(PersistenceHandler::class), + self::createStub(ContentDomainMapper::class), + self::createStub(RelationProcessor::class), + self::createStub(NameSchemaServiceInterface::class), + self::createStub(FieldTypeRegistry::class), + self::createStub(PermissionService::class), + self::createStub(ContentMapper::class), + self::createStub(ContentValidator::class), + self::createStub(ContentFilteringHandler::class), new ContentCollector(), - $this->createMock(ValidatorInterface::class), + self::createStub(ValidatorInterface::class), ); } diff --git a/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php b/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php index 8466f7b65e..f0f098ec3d 100644 --- a/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php +++ b/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php @@ -22,11 +22,11 @@ public function testStaticStrategy() $staticStrategy = new StaticStrategy($resource); - $contentTypeMock = $this->createMock(ContentType::class); + $contentTypeMock = self::createStub(ContentType::class); $fieldMocks = [ - $this->createMock(Field::class), - $this->createMock(Field::class), - $this->createMock(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), ]; $result = $staticStrategy->getThumbnail( diff --git a/tests/lib/Repository/ContentThumbnail/ThumbnailChainStrategyTest.php b/tests/lib/Repository/ContentThumbnail/ThumbnailChainStrategyTest.php index b230a69629..fb0236604c 100644 --- a/tests/lib/Repository/ContentThumbnail/ThumbnailChainStrategyTest.php +++ b/tests/lib/Repository/ContentThumbnail/ThumbnailChainStrategyTest.php @@ -22,11 +22,11 @@ public function testThumbnailStrategyChaining(): void $firstStrategyMock = $this->createMock(ThumbnailStrategy::class); $secondStrategyMock = $this->createMock(ThumbnailStrategy::class); - $contentTypeMock = $this->createMock(ContentType::class); + $contentTypeMock = self::createStub(ContentType::class); $fieldMocks = [ - $this->createMock(Field::class), - $this->createMock(Field::class), - $this->createMock(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), ]; $firstStrategyMock @@ -58,11 +58,11 @@ public function testThumbnailStrategyChainBreakOnThumbnailFound(): void $secondStrategyMock = $this->createMock(ThumbnailStrategy::class); $thirdStrategyMock = $this->createMock(ThumbnailStrategy::class); - $contentTypeMock = $this->createMock(ContentType::class); + $contentTypeMock = self::createStub(ContentType::class); $fieldMocks = [ - $this->createMock(Field::class), - $this->createMock(Field::class), - $this->createMock(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), + self::createStub(Field::class), ]; $firstStrategyMock diff --git a/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php b/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php index f261461ddf..5a7e4d0981 100644 --- a/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php @@ -32,7 +32,7 @@ public function testCreateBookmarkDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('createBookmark')->with(...$parameters); @@ -44,7 +44,7 @@ public function testDeleteBookmarkDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('deleteBookmark')->with(...$parameters); @@ -71,7 +71,7 @@ public function testIsBookmarkedDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('isBookmarked')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php index 60d41317d4..3d3d2274bb 100644 --- a/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php @@ -50,7 +50,7 @@ public function testLoadContentInfoDecorator() $parameters = [self::EXAMPLE_CONTENT_ID]; - $serviceMock->expects(self::once())->method('loadContentInfo')->with(...$parameters)->willReturn($this->createMock(ContentInfo::class)); + $serviceMock->expects(self::once())->method('loadContentInfo')->with(...$parameters)->willReturn(self::createStub(ContentInfo::class)); $decoratedService->loadContentInfo(...$parameters); } @@ -74,7 +74,7 @@ public function testLoadContentInfoByRemoteIdDecorator() $parameters = ['random_value_5ced05ce1541a6.54558542']; - $serviceMock->expects(self::once())->method('loadContentInfoByRemoteId')->with(...$parameters)->willReturn($this->createMock(ContentInfo::class)); + $serviceMock->expects(self::once())->method('loadContentInfoByRemoteId')->with(...$parameters)->willReturn(self::createStub(ContentInfo::class)); $decoratedService->loadContentInfoByRemoteId(...$parameters); } @@ -85,11 +85,11 @@ public function testLoadVersionInfoDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), self::EXAMPLE_VERSION_NO, ]; - $serviceMock->expects(self::once())->method('loadVersionInfo')->with(...$parameters)->willReturn($this->createMock(VersionInfo::class)); + $serviceMock->expects(self::once())->method('loadVersionInfo')->with(...$parameters)->willReturn(self::createStub(VersionInfo::class)); $decoratedService->loadVersionInfo(...$parameters); } @@ -104,7 +104,7 @@ public function testLoadVersionInfoByIdDecorator() self::EXAMPLE_VERSION_NO, ]; - $serviceMock->expects(self::once())->method('loadVersionInfoById')->with(...$parameters)->willReturn($this->createMock(VersionInfo::class)); + $serviceMock->expects(self::once())->method('loadVersionInfoById')->with(...$parameters)->willReturn(self::createStub(VersionInfo::class)); $decoratedService->loadVersionInfoById(...$parameters); } @@ -115,13 +115,13 @@ public function testLoadContentByContentInfoDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), [self::EXAMPLE_LANGUAGE_CODE], self::EXAMPLE_VERSION_NO, true, ]; - $serviceMock->expects(self::once())->method('loadContentByContentInfo')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('loadContentByContentInfo')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->loadContentByContentInfo(...$parameters); } @@ -132,12 +132,12 @@ public function testLoadContentByVersionInfoDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), [self::EXAMPLE_LANGUAGE_CODE], true, ]; - $serviceMock->expects(self::once())->method('loadContentByVersionInfo')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('loadContentByVersionInfo')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->loadContentByVersionInfo(...$parameters); } @@ -154,7 +154,7 @@ public function testLoadContentDecorator() true, ]; - $serviceMock->expects(self::once())->method('loadContent')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('loadContent')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->loadContent(...$parameters); } @@ -171,7 +171,7 @@ public function testLoadContentByRemoteIdDecorator() true, ]; - $serviceMock->expects(self::once())->method('loadContentByRemoteId')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('loadContentByRemoteId')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->loadContentByRemoteId(...$parameters); } @@ -182,7 +182,7 @@ public function testLoadContentListByContentInfoDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - [$this->createMock(ContentInfo::class)], + [self::createStub(ContentInfo::class)], [self::EXAMPLE_LANGUAGE_CODE], true, ]; @@ -198,11 +198,11 @@ public function testCreateContentDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentCreateStruct::class), + self::createStub(ContentCreateStruct::class), ['random_value_5ced05ce155881.06739513'], ]; - $serviceMock->expects(self::once())->method('createContent')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('createContent')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->createContent(...$parameters); } @@ -213,11 +213,11 @@ public function testUpdateContentMetadataDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ContentMetadataUpdateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(ContentMetadataUpdateStruct::class), ]; - $serviceMock->expects(self::once())->method('updateContentMetadata')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('updateContentMetadata')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->updateContentMetadata(...$parameters); } @@ -227,7 +227,7 @@ public function testDeleteContentDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentInfo::class)]; + $parameters = [self::createStub(ContentInfo::class)]; $serviceMock->expects(self::once())->method('deleteContent')->with(...$parameters)->willReturn([]); @@ -240,12 +240,12 @@ public function testCreateContentDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(VersionInfo::class), - $this->createMock(User::class), + self::createStub(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(User::class), ]; - $serviceMock->expects(self::once())->method('createContentDraft')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('createContentDraft')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->createContentDraft(...$parameters); } @@ -255,7 +255,7 @@ public function testLoadContentDraftListDecorator(): void $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(User::class)]; + $parameters = [self::createStub(User::class)]; $serviceMock->expects(self::once())->method('loadContentDraftList')->with(...$parameters)->willReturn(new ContentDraftList()); @@ -268,11 +268,11 @@ public function testUpdateContentDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentUpdateStruct::class), + self::createStub(VersionInfo::class), + self::createStub(ContentUpdateStruct::class), ]; - $serviceMock->expects(self::once())->method('updateContent')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('updateContent')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->updateContent(...$parameters); } @@ -282,9 +282,9 @@ public function testPublishVersionDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(VersionInfo::class)]; + $parameters = [self::createStub(VersionInfo::class)]; - $serviceMock->expects(self::once())->method('publishVersion')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('publishVersion')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->publishVersion(...$parameters); } @@ -294,7 +294,7 @@ public function testDeleteVersionDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(VersionInfo::class)]; + $parameters = [self::createStub(VersionInfo::class)]; $serviceMock->expects(self::once())->method('deleteVersion')->with(...$parameters); @@ -306,7 +306,7 @@ public function testLoadVersionsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentInfo::class)]; + $parameters = [self::createStub(ContentInfo::class)]; $serviceMock->expects(self::once())->method('loadVersions')->with(...$parameters)->willReturn([]); @@ -319,12 +319,12 @@ public function testCopyContentDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), - $this->createMock(VersionInfo::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), + self::createStub(VersionInfo::class), ]; - $serviceMock->expects(self::once())->method('copyContent')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('copyContent')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->copyContent(...$parameters); } @@ -334,7 +334,7 @@ public function testLoadRelationListDecorator(): void $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(VersionInfo::class)]; + $parameters = [self::createStub(VersionInfo::class)]; $serviceMock->expects(self::once())->method('loadRelationList')->with(...$parameters)->willReturn(new RelationList()); @@ -346,7 +346,7 @@ public function testLoadReverseRelationsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentInfo::class)]; + $parameters = [self::createStub(ContentInfo::class)]; $serviceMock->expects(self::once())->method('loadReverseRelations')->with(...$parameters)->willReturn([]); @@ -359,11 +359,11 @@ public function testAddRelationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; - $serviceMock->expects(self::once())->method('addRelation')->with(...$parameters)->willReturn($this->createMock(Relation::class)); + $serviceMock->expects(self::once())->method('addRelation')->with(...$parameters)->willReturn(self::createStub(Relation::class)); $decoratedService->addRelation(...$parameters); } @@ -374,8 +374,8 @@ public function testDeleteRelationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), - $this->createMock(ContentInfo::class), + self::createStub(VersionInfo::class), + self::createStub(ContentInfo::class), ]; $serviceMock->expects(self::once())->method('deleteRelation')->with(...$parameters); @@ -389,7 +389,7 @@ public function testDeleteTranslationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), + self::createStub(ContentInfo::class), self::EXAMPLE_LANGUAGE_CODE, ]; @@ -404,11 +404,11 @@ public function testDeleteTranslationFromDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), 'random_value_5ced05ce156d37.22902273', ]; - $serviceMock->expects(self::once())->method('deleteTranslationFromDraft')->with(...$parameters)->willReturn($this->createMock(Content::class)); + $serviceMock->expects(self::once())->method('deleteTranslationFromDraft')->with(...$parameters)->willReturn(self::createStub(Content::class)); $decoratedService->deleteTranslationFromDraft(...$parameters); } @@ -418,7 +418,7 @@ public function testHideContentDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentInfo::class)]; + $parameters = [self::createStub(ContentInfo::class)]; $serviceMock->expects(self::once())->method('hideContent')->with(...$parameters); @@ -430,7 +430,7 @@ public function testRevealContentDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentInfo::class)]; + $parameters = [self::createStub(ContentInfo::class)]; $serviceMock->expects(self::once())->method('revealContent')->with(...$parameters); @@ -443,11 +443,11 @@ public function testNewContentCreateStructDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentType::class), + self::createStub(ContentType::class), 'random_value_5ced05ce156db7.87562997', ]; - $serviceMock->expects(self::once())->method('newContentCreateStruct')->with(...$parameters)->willReturn($this->createMock(ContentCreateStruct::class)); + $serviceMock->expects(self::once())->method('newContentCreateStruct')->with(...$parameters)->willReturn(self::createStub(ContentCreateStruct::class)); $decoratedService->newContentCreateStruct(...$parameters); } @@ -459,7 +459,7 @@ public function testNewContentMetadataUpdateStructDecorator() $parameters = []; - $serviceMock->expects(self::once())->method('newContentMetadataUpdateStruct')->with(...$parameters)->willReturn($this->createMock(ContentMetadataUpdateStruct::class)); + $serviceMock->expects(self::once())->method('newContentMetadataUpdateStruct')->with(...$parameters)->willReturn(self::createStub(ContentMetadataUpdateStruct::class)); $decoratedService->newContentMetadataUpdateStruct(...$parameters); } @@ -471,7 +471,7 @@ public function testNewContentUpdateStructDecorator() $parameters = []; - $serviceMock->expects(self::once())->method('newContentUpdateStruct')->with(...$parameters)->willReturn($this->createMock(ContentUpdateStruct::class)); + $serviceMock->expects(self::once())->method('newContentUpdateStruct')->with(...$parameters)->willReturn(self::createStub(ContentUpdateStruct::class)); $decoratedService->newContentUpdateStruct(...$parameters); } @@ -486,7 +486,7 @@ public function testLoadVersionInfoListByContentInfoDecorator(): void $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $argument = [$this->createMock(ContentInfo::class)]; + $argument = [self::createStub(ContentInfo::class)]; $serviceMock ->expects(self::once()) diff --git a/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php index 7a7b4c175b..a75671be09 100644 --- a/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php @@ -42,7 +42,7 @@ public function testCreateContentTypeGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentTypeGroupCreateStruct::class)]; + $parameters = [self::createStub(ContentTypeGroupCreateStruct::class)]; $serviceMock->expects(self::once())->method('createContentTypeGroup')->with(...$parameters); @@ -97,8 +97,8 @@ public function testUpdateContentTypeGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeGroup::class), - $this->createMock(ContentTypeGroupUpdateStruct::class), + self::createStub(ContentTypeGroup::class), + self::createStub(ContentTypeGroupUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateContentTypeGroup')->with(...$parameters); @@ -111,7 +111,7 @@ public function testDeleteContentTypeGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentTypeGroup::class)]; + $parameters = [self::createStub(ContentTypeGroup::class)]; $serviceMock->expects(self::once())->method('deleteContentTypeGroup')->with(...$parameters); @@ -124,7 +124,7 @@ public function testCreateContentTypeDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeCreateStruct::class), + self::createStub(ContentTypeCreateStruct::class), ['content_type_group_identifier'], ]; @@ -211,7 +211,7 @@ public function testLoadContentTypesDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentTypeGroup::class), ['random_value_5ced05ce1023d7.35531928'], ]; @@ -225,7 +225,7 @@ public function testCreateContentTypeDraftDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentType::class)]; + $parameters = [self::createStub(ContentType::class)]; $serviceMock->expects(self::once())->method('createContentTypeDraft')->with(...$parameters); @@ -238,8 +238,8 @@ public function testUpdateContentTypeDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(ContentTypeUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(ContentTypeUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateContentTypeDraft')->with(...$parameters); @@ -252,7 +252,7 @@ public function testDeleteContentTypeDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentType::class)]; + $parameters = [self::createStub(ContentType::class)]; $serviceMock->expects(self::once())->method('deleteContentType')->with(...$parameters); @@ -265,8 +265,8 @@ public function testCopyContentTypeDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(User::class), + self::createStub(ContentType::class), + self::createStub(User::class), ]; $serviceMock->expects(self::once())->method('copyContentType')->with(...$parameters); @@ -280,8 +280,8 @@ public function testAssignContentTypeGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; $serviceMock->expects(self::once())->method('assignContentTypeGroup')->with(...$parameters); @@ -295,8 +295,8 @@ public function testUnassignContentTypeGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentType::class), - $this->createMock(ContentTypeGroup::class), + self::createStub(ContentType::class), + self::createStub(ContentTypeGroup::class), ]; $serviceMock->expects(self::once())->method('unassignContentTypeGroup')->with(...$parameters); @@ -310,8 +310,8 @@ public function testAddFieldDefinitionDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinitionCreateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinitionCreateStruct::class), ]; $serviceMock->expects(self::once())->method('addFieldDefinition')->with(...$parameters); @@ -325,8 +325,8 @@ public function testRemoveFieldDefinitionDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), ]; $serviceMock->expects(self::once())->method('removeFieldDefinition')->with(...$parameters); @@ -340,9 +340,9 @@ public function testUpdateFieldDefinitionDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeDraft::class), - $this->createMock(FieldDefinition::class), - $this->createMock(FieldDefinitionUpdateStruct::class), + self::createStub(ContentTypeDraft::class), + self::createStub(FieldDefinition::class), + self::createStub(FieldDefinitionUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateFieldDefinition')->with(...$parameters); @@ -355,7 +355,7 @@ public function testPublishContentTypeDraftDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentTypeDraft::class)]; + $parameters = [self::createStub(ContentTypeDraft::class)]; $serviceMock->expects(self::once())->method('publishContentTypeDraft')->with(...$parameters); @@ -442,7 +442,7 @@ public function testIsContentTypeUsedDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ContentType::class)]; + $parameters = [self::createStub(ContentType::class)]; $serviceMock->expects(self::once())->method('isContentTypeUsed')->with(...$parameters); @@ -455,7 +455,7 @@ public function testRemoveContentTypeTranslationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentTypeDraft::class), + self::createStub(ContentTypeDraft::class), 'random_value_5ced05ce105c21.42399370', ]; diff --git a/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php b/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php index 5b7ccda1c5..aec0ea265c 100644 --- a/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php @@ -33,7 +33,7 @@ public function testCreateLanguageDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(LanguageCreateStruct::class)]; + $parameters = [self::createStub(LanguageCreateStruct::class)]; $serviceMock->expects(self::once())->method('createLanguage')->with(...$parameters); @@ -46,7 +46,7 @@ public function testUpdateLanguageNameDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Language::class), + self::createStub(Language::class), 'random_value_5ced05ce0e4e45.35668562', ]; @@ -60,7 +60,7 @@ public function testEnableLanguageDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Language::class)]; + $parameters = [self::createStub(Language::class)]; $serviceMock->expects(self::once())->method('enableLanguage')->with(...$parameters); @@ -72,7 +72,7 @@ public function testDisableLanguageDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Language::class)]; + $parameters = [self::createStub(Language::class)]; $serviceMock->expects(self::once())->method('disableLanguage')->with(...$parameters); @@ -144,7 +144,7 @@ public function testDeleteLanguageDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Language::class)]; + $parameters = [self::createStub(Language::class)]; $serviceMock->expects(self::once())->method('deleteLanguage')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php index cd175b1402..e70e819ae4 100644 --- a/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php @@ -41,8 +41,8 @@ public function testCopySubtreeDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; $serviceMock->expects(self::once())->method('copySubtree')->with(...$parameters); @@ -104,8 +104,8 @@ public function testLoadLocationsDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(Location::class), + self::createStub(ContentInfo::class), + self::createStub(Location::class), ['random_value_5ced05ce1603f9.50138109'], ]; @@ -120,7 +120,7 @@ public function testLoadLocationChildrenDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), self::EXAMPLE_OFFSET, self::EXAMPLE_LIMIT, ['random_value_5ced05ce160459.73858583'], @@ -137,7 +137,7 @@ public function testLoadParentLocationsForDraftContentDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(VersionInfo::class), + self::createStub(VersionInfo::class), ['random_value_5ced05ce160494.77580729'], ]; @@ -151,7 +151,7 @@ public function testGetLocationChildCountDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class), 8]; + $parameters = [self::createStub(Location::class), 8]; $serviceMock->expects(self::once())->method('getLocationChildCount')->with(...$parameters); @@ -164,8 +164,8 @@ public function testCreateLocationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(LocationCreateStruct::class), + self::createStub(ContentInfo::class), + self::createStub(LocationCreateStruct::class), ]; $serviceMock->expects(self::once())->method('createLocation')->with(...$parameters); @@ -179,8 +179,8 @@ public function testUpdateLocationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), - $this->createMock(LocationUpdateStruct::class), + self::createStub(Location::class), + self::createStub(LocationUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateLocation')->with(...$parameters); @@ -194,8 +194,8 @@ public function testSwapLocationDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; $serviceMock->expects(self::once())->method('swapLocation')->with(...$parameters); @@ -208,7 +208,7 @@ public function testHideLocationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('hideLocation')->with(...$parameters); @@ -220,7 +220,7 @@ public function testUnhideLocationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('unhideLocation')->with(...$parameters); @@ -233,8 +233,8 @@ public function testMoveSubtreeDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Location::class), + self::createStub(Location::class), + self::createStub(Location::class), ]; $serviceMock->expects(self::once())->method('moveSubtree')->with(...$parameters); @@ -247,7 +247,7 @@ public function testDeleteLocationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('deleteLocation')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php index 5dbb6753db..47fec0ca94 100644 --- a/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php @@ -85,7 +85,7 @@ public function testMarkNotificationAsReadDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Notification::class)]; + $parameters = [self::createStub(Notification::class)]; $serviceMock->expects(self::once())->method('markNotificationAsRead')->with(...$parameters); @@ -97,7 +97,7 @@ public function testMarkNotificationAsUnreadDecorator(): void $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Notification::class)]; + $parameters = [self::createStub(Notification::class)]; $serviceMock->expects(self::once())->method('markNotificationAsUnread')->with(...$parameters); @@ -133,7 +133,7 @@ public function testCreateNotificationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(CreateStruct::class)]; + $parameters = [self::createStub(CreateStruct::class)]; $serviceMock->expects(self::once())->method('createNotification')->with(...$parameters); @@ -145,7 +145,7 @@ public function testDeleteNotificationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Notification::class)]; + $parameters = [self::createStub(Notification::class)]; $serviceMock->expects(self::once())->method('deleteNotification')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php index 61bd4700bc..f8a33d62c5 100644 --- a/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php @@ -38,7 +38,7 @@ public function testCreateObjectStateGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ObjectStateGroupCreateStruct::class)]; + $parameters = [self::createStub(ObjectStateGroupCreateStruct::class)]; $serviceMock->expects(self::once())->method('createObjectStateGroup')->with(...$parameters); @@ -64,7 +64,7 @@ public function testLoadObjectStateGroupByIdentifierDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $expectedObjectStateGroup = $this->createMock(ObjectStateGroup::class); + $expectedObjectStateGroup = self::createStub(ObjectStateGroup::class); $parameters = [ 'ibexa_lock', @@ -107,7 +107,7 @@ public function testLoadObjectStatesDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ObjectStateGroup::class), + self::createStub(ObjectStateGroup::class), ['random_value_5ced05ce168263.48122762'], ]; @@ -122,8 +122,8 @@ public function testUpdateObjectStateGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateGroupUpdateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateGroupUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateObjectStateGroup')->with(...$parameters); @@ -136,7 +136,7 @@ public function testDeleteObjectStateGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ObjectStateGroup::class)]; + $parameters = [self::createStub(ObjectStateGroup::class)]; $serviceMock->expects(self::once())->method('deleteObjectStateGroup')->with(...$parameters); @@ -149,8 +149,8 @@ public function testCreateObjectStateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectStateCreateStruct::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectStateCreateStruct::class), ]; $serviceMock->expects(self::once())->method('createObjectState')->with(...$parameters); @@ -177,10 +177,10 @@ public function testLoadObjectStateDecoratorByIdentifier(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $expectedObjectState = $this->createMock(ObjectState::class); + $expectedObjectState = self::createStub(ObjectState::class); $parameters = [ - $this->createMock(ObjectStateGroup::class), + self::createStub(ObjectStateGroup::class), 'locked', ['eng-GB'], ]; @@ -205,8 +205,8 @@ public function testUpdateObjectStateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ObjectState::class), - $this->createMock(ObjectStateUpdateStruct::class), + self::createStub(ObjectState::class), + self::createStub(ObjectStateUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateObjectState')->with(...$parameters); @@ -220,7 +220,7 @@ public function testSetPriorityOfObjectStateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ObjectState::class), + self::createStub(ObjectState::class), 100, ]; @@ -234,7 +234,7 @@ public function testDeleteObjectStateDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ObjectState::class)]; + $parameters = [self::createStub(ObjectState::class)]; $serviceMock->expects(self::once())->method('deleteObjectState')->with(...$parameters); @@ -247,9 +247,9 @@ public function testSetContentStateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ObjectStateGroup::class), - $this->createMock(ObjectState::class), + self::createStub(ContentInfo::class), + self::createStub(ObjectStateGroup::class), + self::createStub(ObjectState::class), ]; $serviceMock->expects(self::once())->method('setContentState')->with(...$parameters); @@ -263,8 +263,8 @@ public function testGetContentStateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(ObjectStateGroup::class), + self::createStub(ContentInfo::class), + self::createStub(ObjectStateGroup::class), ]; $serviceMock->expects(self::once())->method('getContentState')->with(...$parameters); @@ -277,7 +277,7 @@ public function testGetContentCountDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(ObjectState::class)]; + $parameters = [self::createStub(ObjectState::class)]; $serviceMock->expects(self::once())->method('getContentCount')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php b/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php index d25283d6ab..d1bf8eea2d 100644 --- a/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php @@ -45,7 +45,7 @@ public function testCreateRoleDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(RoleCreateStruct::class)]; + $parameters = [self::createStub(RoleCreateStruct::class)]; $serviceMock->expects(self::once())->method('createRole')->with(...$parameters); @@ -57,7 +57,7 @@ public function testCreateRoleDraftDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Role::class)]; + $parameters = [self::createStub(Role::class)]; $serviceMock->expects(self::once())->method('createRoleDraft')->with(...$parameters); @@ -94,8 +94,8 @@ public function testUpdateRoleDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(RoleUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(RoleUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateRoleDraft')->with(...$parameters); @@ -109,8 +109,8 @@ public function testAddPolicyByRoleDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyCreateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyCreateStruct::class), ]; $serviceMock->expects(self::once())->method('addPolicyByRoleDraft')->with(...$parameters); @@ -124,8 +124,8 @@ public function testRemovePolicyByRoleDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), ]; $serviceMock->expects(self::once())->method('removePolicyByRoleDraft')->with(...$parameters); @@ -139,9 +139,9 @@ public function testUpdatePolicyByRoleDraftDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(RoleDraft::class), - $this->createMock(PolicyDraft::class), - $this->createMock(PolicyUpdateStruct::class), + self::createStub(RoleDraft::class), + self::createStub(PolicyDraft::class), + self::createStub(PolicyUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updatePolicyByRoleDraft')->with(...$parameters); @@ -154,7 +154,7 @@ public function testDeleteRoleDraftDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(RoleDraft::class)]; + $parameters = [self::createStub(RoleDraft::class)]; $serviceMock->expects(self::once())->method('deleteRoleDraft')->with(...$parameters); @@ -166,7 +166,7 @@ public function testPublishRoleDraftDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(RoleDraft::class)]; + $parameters = [self::createStub(RoleDraft::class)]; $serviceMock->expects(self::once())->method('publishRoleDraft')->with(...$parameters); @@ -214,7 +214,7 @@ public function testDeleteRoleDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Role::class)]; + $parameters = [self::createStub(Role::class)]; $serviceMock->expects(self::once())->method('deleteRole')->with(...$parameters); @@ -227,9 +227,9 @@ public function testAssignRoleToUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Role::class), - $this->createMock(UserGroup::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(UserGroup::class), + self::createStub(RoleLimitation::class), ]; $serviceMock->expects(self::once())->method('assignRoleToUserGroup')->with(...$parameters); @@ -243,9 +243,9 @@ public function testAssignRoleToUserDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Role::class), - $this->createMock(User::class), - $this->createMock(RoleLimitation::class), + self::createStub(Role::class), + self::createStub(User::class), + self::createStub(RoleLimitation::class), ]; $serviceMock->expects(self::once())->method('assignRoleToUser')->with(...$parameters); @@ -270,7 +270,7 @@ public function testGetRoleAssignmentsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Role::class)]; + $parameters = [self::createStub(Role::class)]; $serviceMock->expects(self::once())->method('getRoleAssignments')->with(...$parameters); @@ -283,7 +283,7 @@ public function testGetRoleAssignmentsForUserDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), true, ]; @@ -297,7 +297,7 @@ public function testGetRoleAssignmentsForUserGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(UserGroup::class)]; + $parameters = [self::createStub(UserGroup::class)]; $serviceMock->expects(self::once())->method('getRoleAssignmentsForUserGroup')->with(...$parameters); @@ -309,7 +309,7 @@ public function testRemoveRoleAssignmentDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(RoleAssignment::class)]; + $parameters = [self::createStub(RoleAssignment::class)]; $serviceMock->expects(self::once())->method('removeRoleAssignment')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php index b761c104ce..8738968b79 100644 --- a/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php @@ -13,6 +13,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; @@ -35,7 +36,7 @@ public function testFindContentDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Query::class), + self::createStub(Query::class), ['random_value_5ced05ce17d631.27870175'], true, ]; @@ -51,7 +52,7 @@ public function testFindContentInfoDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Query::class), + self::createStub(Query::class), ['random_value_5ced05ce17d6d9.76060657'], true, ]; @@ -67,7 +68,7 @@ public function testFindSingleDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Criterion::class), + self::createStub(Criterion::class), ['random_value_5ced05ce17ef80.90204500'], true, ]; @@ -86,7 +87,7 @@ public function testSuggestDecorator() 'random_value_5ced05ce17f030.62511430', ['random_value_5ced05ce17f044.48777415'], 10, - $this->createMock(Criterion::class), + self::createStub(Criterion::class), ]; $serviceMock->expects(self::once())->method('suggest')->with(...$parameters); @@ -100,7 +101,7 @@ public function testFindLocationsDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(LocationQuery::class), + self::createStub(LocationQuery::class), ['random_value_5ced05ce17f647.36429312'], true, ]; @@ -111,10 +112,9 @@ public function testFindLocationsDecorator() } /** - * @dataProvider getSearchEngineCapabilities - * * @param int $capability */ + #[DataProvider('getSearchEngineCapabilities')] public function testSupportsDecorator(int $capability): void { $serviceMock = $this->createServiceMock(); @@ -132,7 +132,7 @@ public function testSupportsDecorator(int $capability): void * * @return array */ - public function getSearchEngineCapabilities(): array + public static function getSearchEngineCapabilities(): array { return [ [SearchService::CAPABILITY_SCORING], diff --git a/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php index 39b9df17ff..8c0529efbc 100644 --- a/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php @@ -38,7 +38,7 @@ public function testCreateSectionDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(SectionCreateStruct::class)]; + $parameters = [self::createStub(SectionCreateStruct::class)]; $serviceMock->expects(self::once())->method('createSection')->with(...$parameters); @@ -51,8 +51,8 @@ public function testUpdateSectionDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Section::class), - $this->createMock(SectionUpdateStruct::class), + self::createStub(Section::class), + self::createStub(SectionUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateSection')->with(...$parameters); @@ -101,7 +101,7 @@ public function testCountAssignedContentsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Section::class)]; + $parameters = [self::createStub(Section::class)]; $serviceMock->expects(self::once())->method('countAssignedContents')->with(...$parameters); @@ -113,7 +113,7 @@ public function testIsSectionUsedDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Section::class)]; + $parameters = [self::createStub(Section::class)]; $serviceMock->expects(self::once())->method('isSectionUsed')->with(...$parameters); @@ -126,8 +126,8 @@ public function testAssignSectionDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(ContentInfo::class), - $this->createMock(Section::class), + self::createStub(ContentInfo::class), + self::createStub(Section::class), ]; $serviceMock->expects(self::once())->method('assignSection')->with(...$parameters); @@ -141,8 +141,8 @@ public function testAssignSectionToSubtreeDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), - $this->createMock(Section::class), + self::createStub(Location::class), + self::createStub(Section::class), ]; $serviceMock->expects(self::once())->method('assignSectionToSubtree')->with(...$parameters); @@ -155,7 +155,7 @@ public function testDeleteSectionDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Section::class)]; + $parameters = [self::createStub(Section::class)]; $serviceMock->expects(self::once())->method('deleteSection')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php index 3da5a68674..2f2b94b9f6 100644 --- a/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php @@ -37,7 +37,7 @@ public function testCreateSettingDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(SettingCreateStruct::class)]; + $parameters = [self::createStub(SettingCreateStruct::class)]; $serviceMock->expects(self::once())->method('createSetting')->with(...$parameters); @@ -50,8 +50,8 @@ public function testUpdateSettingDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Setting::class), - $this->createMock(SettingUpdateStruct::class), + self::createStub(Setting::class), + self::createStub(SettingUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateSetting')->with(...$parameters); @@ -79,7 +79,7 @@ public function testDeleteSettingDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Setting::class)]; + $parameters = [self::createStub(Setting::class)]; $serviceMock->expects(self::once())->method('deleteSetting')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php index 3be4c7cc25..c449f80596 100644 --- a/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php @@ -33,7 +33,7 @@ public function testTranslateDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Translation::class), + self::createStub(Translation::class), 'random_value_5ced05ce16efc3.57825052', ]; diff --git a/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php b/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php index 65babf43c3..c3319194e8 100644 --- a/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php @@ -46,7 +46,7 @@ public function testTrashDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('trash')->with(...$parameters); @@ -59,8 +59,8 @@ public function testRecoverDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(TrashItem::class), - $this->createMock(Location::class), + self::createStub(TrashItem::class), + self::createStub(Location::class), ]; $serviceMock->expects(self::once())->method('recover')->with(...$parameters); @@ -85,7 +85,7 @@ public function testDeleteTrashItemDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(TrashItem::class)]; + $parameters = [self::createStub(TrashItem::class)]; $serviceMock->expects(self::once())->method('deleteTrashItem')->with(...$parameters); @@ -97,7 +97,7 @@ public function testFindTrashItemsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Query::class)]; + $parameters = [self::createStub(Query::class)]; $serviceMock->expects(self::once())->method('findTrashItems')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php index de9b5e2e69..6f446ea0e0 100644 --- a/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php @@ -36,7 +36,7 @@ public function testCreateUrlAliasDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), 'random_value_5ced05ce0f45c8.98320978', 'random_value_5ced05ce0f45f9.49337276', true, @@ -72,7 +72,7 @@ public function testListLocationAliasesDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), true, 'random_value_5ced05ce0f4720.32499208', ]; @@ -131,7 +131,7 @@ public function testReverseLookupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(Location::class), + self::createStub(Location::class), 'random_value_5ced05ce0f4803.92292057', ]; @@ -157,7 +157,7 @@ public function testRefreshSystemUrlAliasesForLocationDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Location::class)]; + $parameters = [self::createStub(Location::class)]; $serviceMock->expects(self::once())->method('refreshSystemUrlAliasesForLocation')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php index 0214072cba..25c6aee419 100644 --- a/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php @@ -46,7 +46,7 @@ public function testFindUrlsDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(URLQuery::class)]; + $parameters = [self::createStub(URLQuery::class)]; $serviceMock->expects(self::once())->method('findUrls')->with(...$parameters); @@ -59,7 +59,7 @@ public function testFindUsagesDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(URL::class), + self::createStub(URL::class), 10, 100, ]; @@ -99,8 +99,8 @@ public function testUpdateUrlDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(URL::class), - $this->createMock(URLUpdateStruct::class), + self::createStub(URL::class), + self::createStub(URLUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateUrl')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php index b0c7e05c7b..e8a71549db 100644 --- a/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php @@ -48,7 +48,7 @@ public function testRemoveDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(URLWildcard::class)]; + $parameters = [self::createStub(URLWildcard::class)]; $serviceMock->expects(self::once())->method('remove')->with(...$parameters); diff --git a/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php b/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php index ba068a783e..e4b3356261 100644 --- a/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php @@ -49,8 +49,8 @@ public function testCreateUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserGroupCreateStruct::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroupCreateStruct::class), + self::createStub(UserGroup::class), ]; $serviceMock->expects(self::once())->method('createUserGroup')->with(...$parameters); @@ -94,7 +94,7 @@ public function testLoadSubUserGroupsDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), self::EXAMPLE_OFFSET, self::EXAMPLE_LIMIT, ['random_value_5ced05ce176401.55725588'], @@ -110,7 +110,7 @@ public function testDeleteUserGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(UserGroup::class)]; + $parameters = [self::createStub(UserGroup::class)]; $serviceMock->expects(self::once())->method('deleteUserGroup')->with(...$parameters); @@ -123,8 +123,8 @@ public function testMoveUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), + self::createStub(UserGroup::class), ]; $serviceMock->expects(self::once())->method('moveUserGroup')->with(...$parameters); @@ -138,8 +138,8 @@ public function testUpdateUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserGroup::class), - $this->createMock(UserGroupUpdateStruct::class), + self::createStub(UserGroup::class), + self::createStub(UserGroupUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateUserGroup')->with(...$parameters); @@ -153,7 +153,7 @@ public function testCreateUserDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserCreateStruct::class), + self::createStub(UserCreateStruct::class), ['random_value_5ced05ce177102.13726421'], ]; @@ -183,7 +183,7 @@ public function testCheckUserCredentialsDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), 'random_value_5ced05ce1771c7.58152750', ]; @@ -242,7 +242,7 @@ public function testDeleteUserDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(User::class)]; + $parameters = [self::createStub(User::class)]; $serviceMock->expects(self::once())->method('deleteUser')->with(...$parameters); @@ -255,8 +255,8 @@ public function testUpdateUserDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateUser')->with(...$parameters); @@ -270,7 +270,7 @@ public function testUpdateUserPasswordDecorator(): void $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), 'H@xi0r!', ]; @@ -285,8 +285,8 @@ public function testUpdateUserTokenDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserTokenUpdateStruct::class), + self::createStub(User::class), + self::createStub(UserTokenUpdateStruct::class), ]; $serviceMock->expects(self::once())->method('updateUserToken')->with(...$parameters); @@ -312,8 +312,8 @@ public function testAssignUserToUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; $serviceMock->expects(self::once())->method('assignUserToUserGroup')->with(...$parameters); @@ -327,8 +327,8 @@ public function testUnAssignUserFromUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), - $this->createMock(UserGroup::class), + self::createStub(User::class), + self::createStub(UserGroup::class), ]; $serviceMock->expects(self::once())->method('unAssignUserFromUserGroup')->with(...$parameters); @@ -342,7 +342,7 @@ public function testLoadUserGroupsOfUserDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(User::class), + self::createStub(User::class), self::EXAMPLE_OFFSET, self::EXAMPLE_LIMIT, ['random_value_5ced05ce177f66.49237325'], @@ -359,7 +359,7 @@ public function testLoadUsersOfUserGroupDecorator() $decoratedService = $this->createDecorator($serviceMock); $parameters = [ - $this->createMock(UserGroup::class), + self::createStub(UserGroup::class), self::EXAMPLE_OFFSET, self::EXAMPLE_LIMIT, ['random_value_5ced05ce177fc8.32448790'], @@ -375,7 +375,7 @@ public function testIsUserDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Content::class)]; + $parameters = [self::createStub(Content::class)]; $serviceMock->expects(self::once())->method('isUser')->with(...$parameters); @@ -387,7 +387,7 @@ public function testIsUserGroupDecorator() $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); - $parameters = [$this->createMock(Content::class)]; + $parameters = [self::createStub(Content::class)]; $serviceMock->expects(self::once())->method('isUserGroup')->with(...$parameters); @@ -404,7 +404,7 @@ public function testNewUserCreateStructDecorator() 'random_value_5ced05ce178049.06911955', 'random_value_5ced05ce178050.58319472', 'random_value_5ced05ce178063.84822784', - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; $serviceMock->expects(self::once())->method('newUserCreateStruct')->with(...$parameters); @@ -419,7 +419,7 @@ public function testNewUserGroupCreateStructDecorator() $parameters = [ 'random_value_5ced05ce178098.19193304', - $this->createMock(ContentType::class), + self::createStub(ContentType::class), ]; $serviceMock->expects(self::once())->method('newUserGroupCreateStruct')->with(...$parameters); @@ -458,7 +458,7 @@ public function testValidatePasswordDecorator() $parameters = [ 'random_value_5ced05ce1780f2.97072127', - $this->createMock(PasswordValidationContext::class), + self::createStub(PasswordValidationContext::class), ]; $serviceMock->expects(self::once())->method('validatePassword')->with(...$parameters); diff --git a/tests/lib/Repository/Iterator/BatchIteratorAdapter/AbstractSearchAdapterTestCase.php b/tests/lib/Repository/Iterator/BatchIteratorAdapter/AbstractSearchAdapterTestCase.php index 7bbc46ce27..276d20009d 100644 --- a/tests/lib/Repository/Iterator/BatchIteratorAdapter/AbstractSearchAdapterTestCase.php +++ b/tests/lib/Repository/Iterator/BatchIteratorAdapter/AbstractSearchAdapterTestCase.php @@ -33,7 +33,7 @@ abstract class AbstractSearchAdapterTestCase extends TestCase final public function testFetch(): void { - $expectedIterator = $this->createMock(Iterator::class); + $expectedIterator = self::createStub(Iterator::class); $searchResults = $this->createMock(SearchResult::class); $searchResults->method('getIterator')->willReturn($expectedIterator); diff --git a/tests/lib/Repository/Iterator/BatchIteratorAdapter/ContentFilteringAdapterTest.php b/tests/lib/Repository/Iterator/BatchIteratorAdapter/ContentFilteringAdapterTest.php index 214a2a2d61..fc493fba04 100644 --- a/tests/lib/Repository/Iterator/BatchIteratorAdapter/ContentFilteringAdapterTest.php +++ b/tests/lib/Repository/Iterator/BatchIteratorAdapter/ContentFilteringAdapterTest.php @@ -28,9 +28,9 @@ final class ContentFilteringAdapterTest extends TestCase */ public function testFetch(): void { - $content1 = $this->createMock(Content::class); - $content2 = $this->createMock(Content::class); - $content3 = $this->createMock(Content::class); + $content1 = self::createStub(Content::class); + $content2 = self::createStub(Content::class); + $content3 = self::createStub(Content::class); $contentList = new ContentList(3, [ $content1, diff --git a/tests/lib/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapterTest.php b/tests/lib/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapterTest.php index 1df0c4efb1..db8eea7acd 100644 --- a/tests/lib/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapterTest.php +++ b/tests/lib/Repository/Iterator/BatchIteratorAdapter/LocationFilteringAdapterTest.php @@ -28,9 +28,9 @@ final class LocationFilteringAdapterTest extends TestCase */ public function testFetch(): void { - $location1 = $this->createMock(Location::class); - $location2 = $this->createMock(Location::class); - $location3 = $this->createMock(Location::class); + $location1 = self::createStub(Location::class); + $location2 = self::createStub(Location::class); + $location3 = self::createStub(Location::class); $locationList = new LocationList([ 'locations' => [ diff --git a/tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php b/tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php index 1a100ef2f8..04d23d2829 100644 --- a/tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php +++ b/tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php @@ -15,11 +15,10 @@ use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Core\Repository\LocationResolver\PermissionAwareLocationResolver; use Ibexa\Core\Repository\Values\Content\Location; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\LocationResolver\PermissionAwareLocationResolver - */ +#[CoversClass(PermissionAwareLocationResolver::class)] final class PermissionAwareLocationResolverTest extends TestCase { /** @var \Ibexa\Contracts\Core\Repository\LocationService */ diff --git a/tests/lib/Repository/LocationServiceTest.php b/tests/lib/Repository/LocationServiceTest.php index 443e4020ab..7a25dacb08 100644 --- a/tests/lib/Repository/LocationServiceTest.php +++ b/tests/lib/Repository/LocationServiceTest.php @@ -28,14 +28,14 @@ final class LocationServiceTest extends TestCase protected function setUp(): void { $this->locationService = new LocationService( - $this->createMock(Repository::class), - $this->createMock(PersistenceHandler::class), - $this->createMock(ContentDomainMapper::class), - $this->createMock(NameSchemaServiceInterface::class), - $this->createMock(PermissionCriterionResolver::class), - $this->createMock(PermissionResolver::class), - $this->createMock(LocationFilteringHandler::class), - $this->createMock(ContentTypeService::class) + self::createStub(Repository::class), + self::createStub(PersistenceHandler::class), + self::createStub(ContentDomainMapper::class), + self::createStub(NameSchemaServiceInterface::class), + self::createStub(PermissionCriterionResolver::class), + self::createStub(PermissionResolver::class), + self::createStub(LocationFilteringHandler::class), + self::createStub(ContentTypeService::class) ); } diff --git a/tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php b/tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php index 7904333c0c..edbe7189c1 100644 --- a/tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php +++ b/tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php @@ -83,11 +83,20 @@ public function testLoadLocationList(): void $this->innerLocationService ->method('loadLocationList') ->willReturn($locations); + $matcher = self::atLeastOnce(); $this->mapper - ->expects(self::atLeastOnce()) - ->method('setMapping') - ->withConsecutive([1, 2], [3, 4]); + ->expects($matcher) + ->method('setMapping')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(1, $parameters[0]); + $this->assertSame(2, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(3, $parameters[0]); + $this->assertSame(4, $parameters[1]); + } + }); $actualLocations = $this->locationService->loadLocationList([1, 2]); @@ -126,11 +135,20 @@ public function testLoadLocations(): void ->method('loadLocations') ->with($contentInfo) ->willReturn($locations); + $matcher = self::atLeastOnce(); $this->mapper - ->expects(self::atLeastOnce()) - ->method('setMapping') - ->withConsecutive([1, 2], [3, 4]); + ->expects($matcher) + ->method('setMapping')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(1, $parameters[0]); + $this->assertSame(2, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(3, $parameters[0]); + $this->assertSame(4, $parameters[1]); + } + }); $actualLocations = iterator_to_array($this->locationService->loadLocations($contentInfo)); @@ -171,11 +189,20 @@ public function testLoadLocationChildren(): void ->method('loadLocationChildren') ->with($location) ->willReturn($locationList); + $matcher = self::atLeastOnce(); $this->mapper - ->expects(self::atLeastOnce()) - ->method('setMapping') - ->withConsecutive([1, 2], [3, 4]); + ->expects($matcher) + ->method('setMapping')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(1, $parameters[0]); + $this->assertSame(2, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(3, $parameters[0]); + $this->assertSame(4, $parameters[1]); + } + }); $actualLocations = $this->locationService->loadLocationChildren($location); @@ -210,11 +237,20 @@ public function testLoadAllLocations(): void $this->innerLocationService ->method('loadAllLocations') ->willReturn($locations); + $matcher = self::atLeastOnce(); $this->mapper - ->expects(self::atLeastOnce()) - ->method('setMapping') - ->withConsecutive([1, 2], [3, 4]); + ->expects($matcher) + ->method('setMapping')->willReturnCallback(function (...$parameters) use ($matcher) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame(1, $parameters[0]); + $this->assertSame(2, $parameters[1]); + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame(3, $parameters[0]); + $this->assertSame(4, $parameters[1]); + } + }); $actualLocations = $this->locationService->loadAllLocations(); diff --git a/tests/lib/Repository/Mapper/ContentMapperTest.php b/tests/lib/Repository/Mapper/ContentMapperTest.php index 0eaca26ba8..77c80695ff 100644 --- a/tests/lib/Repository/Mapper/ContentMapperTest.php +++ b/tests/lib/Repository/Mapper/ContentMapperTest.php @@ -14,18 +14,21 @@ use Ibexa\Core\FieldType\FieldTypeRegistry; use Ibexa\Core\FieldType\TextLine; use Ibexa\Core\Persistence\Legacy\Content\Language\Handler; +use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Mapper\ContentMapper; use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; +#[CoversMethod(ContentService::class, 'updateContent')] final class ContentMapperTest extends TestCase { - /** @var \Ibexa\Core\Persistence\Legacy\Content\Language\Handler&\PHPUnit\Framework\MockObject\MockObject */ - private Handler $contentLanguageHandler; + /** @var \Ibexa\Core\Persistence\Legacy\Content\Language\Handler&\PHPUnit\Framework\MockObject\Stub */ + private \PHPUnit\Framework\MockObject\Stub $contentLanguageHandler; /** @var \Ibexa\Core\FieldType\FieldTypeRegistry&\PHPUnit\Framework\MockObject\MockObject */ private FieldTypeRegistry $fieldTypeRegistry; @@ -34,7 +37,7 @@ final class ContentMapperTest extends TestCase protected function setUp(): void { - $this->contentLanguageHandler = $this->createMock(Handler::class); + $this->contentLanguageHandler = self::createStub(Handler::class); $this->fieldTypeRegistry = $this->createMock(FieldTypeRegistry::class); $this->contentMapper = new ContentMapper( @@ -44,8 +47,6 @@ protected function setUp(): void } /** - * @covers \Ibexa\Core\Repository\ContentService::updateContent - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\ContentValidationException */ public function testUpdateContentGetsProperFieldsToUpdate(): void diff --git a/tests/lib/Repository/NameSchema/NameSchemaServiceTest.php b/tests/lib/Repository/NameSchema/NameSchemaServiceTest.php index c2e3de0411..7e7c5b9c23 100644 --- a/tests/lib/Repository/NameSchema/NameSchemaServiceTest.php +++ b/tests/lib/Repository/NameSchema/NameSchemaServiceTest.php @@ -24,12 +24,12 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; use Traversable; -/** - * @covers \Ibexa\Core\Repository\NameSchema\NameSchemaService - */ +#[CoversClass(NameSchemaService::class)] final class NameSchemaServiceTest extends BaseServiceMockTest { private const NAME_SCHEMA = ''; @@ -134,13 +134,12 @@ public static function getDataForTestResolveNameSchema(): iterable } /** - * @dataProvider getDataForTestResolveNameSchema - * * @param array> $fieldMap * @param array> $tokenValues * @param array $languageCodes * @param array> $expectedNames */ + #[DataProvider('getDataForTestResolveNameSchema')] public function testResolveNameSchema( array $fieldMap, array $tokenValues, @@ -258,14 +257,13 @@ public static function getDataForTestResolve(): array } /** - * @dataProvider getDataForTestResolve - * * @param array> $schemaIdentifiers * @param array $languageFieldValues field value translations * @param array> $fieldMap * @param array> $fieldTitles [language => [field_identifier => title]] * @param array{limit?: int, sequence?: string} $settings NameSchemaService settings */ + #[DataProvider('getDataForTestResolve')] public function testResolve( array $schemaIdentifiers, string $nameSchema, diff --git a/tests/lib/Repository/NameSchema/SchemaIdentifierExtractorTest.php b/tests/lib/Repository/NameSchema/SchemaIdentifierExtractorTest.php index 29517d557c..8a5a94b4d6 100644 --- a/tests/lib/Repository/NameSchema/SchemaIdentifierExtractorTest.php +++ b/tests/lib/Repository/NameSchema/SchemaIdentifierExtractorTest.php @@ -10,11 +10,11 @@ use Ibexa\Contracts\Core\Repository\NameSchema\SchemaIdentifierExtractorInterface; use Ibexa\Core\Repository\NameSchema\SchemaIdentifierExtractor; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\NameSchema\SchemaIdentifierExtractor - */ +#[CoversClass(SchemaIdentifierExtractor::class)] final class SchemaIdentifierExtractorTest extends TestCase { private SchemaIdentifierExtractorInterface $extractor; @@ -22,7 +22,7 @@ final class SchemaIdentifierExtractorTest extends TestCase /** * @return iterable>}> */ - public function getDataForTestExtract(): iterable + public static function getDataForTestExtract(): iterable { $schemaString = ''; yield $schemaString => [ @@ -111,10 +111,9 @@ protected function setUp(): void } /** - * @dataProvider getDataForTestExtract - * * @param array> $expectedStrategyIdentifierMap */ + #[DataProvider('getDataForTestExtract')] public function testExtract(string $schemaString, array $expectedStrategyIdentifierMap): void { $extracted = $this->extractor->extract($schemaString); diff --git a/tests/lib/Repository/Permission/CachedPermissionServiceTest.php b/tests/lib/Repository/Permission/CachedPermissionServiceTest.php index 81e50df53e..a4cb260b74 100644 --- a/tests/lib/Repository/Permission/CachedPermissionServiceTest.php +++ b/tests/lib/Repository/Permission/CachedPermissionServiceTest.php @@ -29,6 +29,7 @@ function time() use Ibexa\Contracts\Core\Repository\Values\User\UserReference; use Ibexa\Contracts\Core\Repository\Values\ValueObject; use Ibexa\Core\Repository\Permission\CachedPermissionService; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -36,22 +37,13 @@ function time() */ class CachedPermissionServiceTest extends TestCase { - public function providerForTestPermissionResolverPassTrough() + public static function providerForTestPermissionResolverPassTrough() { - $valueObject = $this - ->getMockBuilder(ValueObject::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); + $valueObject = self::createStub(ValueObject::class); - $userRef = $this - ->getMockBuilder(UserReference::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); + $userRef = self::createStub(UserReference::class); - $repository = $this - ->getMockBuilder(Repository::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); + $repository = self::createStub(Repository::class); return [ ['getCurrentUserReference', [], $userRef], @@ -65,12 +57,12 @@ public function providerForTestPermissionResolverPassTrough() /** * Test for all PermissionResolver methods when they just pass true to underlying service. * - * @dataProvider providerForTestPermissionResolverPassTrough * * @param $method * @param array $arguments * @param $expectedReturn */ + #[DataProvider('providerForTestPermissionResolverPassTrough')] public function testPermissionResolverPassTrough($method, array $arguments, $expectedReturn) { if ($expectedReturn !== null) { @@ -189,8 +181,10 @@ protected function getPermissionResolverMock($methods = []) return $this->permissionResolverMock = $this ->getMockBuilder(PermissionResolver::class) - ->setMethods($methods) ->disableOriginalConstructor() + // sudo() is not part of the PermissionResolver interface but is called on the + // concrete implementation at runtime; addMethods() lets it be stubbed here too. + ->addMethods(['sudo']) ->getMockForAbstractClass(); } @@ -205,7 +199,6 @@ protected function getPermissionCriterionResolverMock($methods = []) return $this->permissionCriterionResolverMock = $this ->getMockBuilder(PermissionCriterionResolver::class) - ->setMethods($methods) ->disableOriginalConstructor() ->getMockForAbstractClass(); } diff --git a/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php b/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php index 693d62c45a..a543245cc8 100644 --- a/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php +++ b/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php @@ -16,6 +16,7 @@ use Ibexa\Core\Repository\Permission\LimitationService; use Ibexa\Core\Repository\Permission\PermissionCriterionResolver; use Ibexa\Core\Repository\Values\User\Policy; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; /** @@ -23,23 +24,16 @@ */ class PermissionCriterionResolverTest extends TestCase { - public function providerForTestGetPermissionsCriterion() + public static function providerForTestGetPermissionsCriterion() { - $criterionMock = $this - ->getMockBuilder(Criterion::class) - ->disableOriginalConstructor() - ->getMock(); - $limitationMock = $this - ->getMockBuilder(Limitation::class) - ->getMockForAbstractClass(); + $criterionMock = self::createStub(Criterion::class); + $limitationMock = self::createStub(Limitation::class); $limitationMock - ->expects(self::any()) ->method('getIdentifier') - ->will(self::returnValue('limitationIdentifier')); + ->willReturn('limitationIdentifier'); - $targetOnlyLimitationMock = $this->createMock(Limitation::class); + $targetOnlyLimitationMock = self::createStub(Limitation::class); $targetOnlyLimitationMock - ->expects(self::any()) ->method('getIdentifier') ->willReturn('targetOnlyLimitationIdentifier'); @@ -287,9 +281,8 @@ protected function mockServices($criterionMock, $limitationCount, $permissionSet /** * Test for the getPermissionsCriterion() method. - * - * @dataProvider providerForTestGetPermissionsCriterion */ + #[DataProvider('providerForTestGetPermissionsCriterion')] public function testGetPermissionsCriterion( $criterionMock, $limitationCount, @@ -304,7 +297,7 @@ public function testGetPermissionsCriterion( self::assertEquals($expectedCriterion, $permissionsCriterion); } - public function providerForTestGetPermissionsCriterionBooleanPermissionSets() + public static function providerForTestGetPermissionsCriterionBooleanPermissionSets() { return [ [true], @@ -314,9 +307,8 @@ public function providerForTestGetPermissionsCriterionBooleanPermissionSets() /** * Test for the getPermissionsCriterion() method. - * - * @dataProvider providerForTestGetPermissionsCriterionBooleanPermissionSets */ + #[DataProvider('providerForTestGetPermissionsCriterionBooleanPermissionSets')] public function testGetPermissionsCriterionBooleanPermissionSets($permissionSets) { $permissionResolverMock = $this->getPermissionResolverMock(['hasAccess']); @@ -342,16 +334,21 @@ public function testGetPermissionsCriterionBooleanPermissionSets($permissionSets */ protected function getPermissionCriterionResolverMock($methods = []) { - return $this + $builder = $this ->getMockBuilder(PermissionCriterionResolver::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getPermissionResolverMock(), $this->getLimitationServiceMock(), ] - ) - ->getMock(); + ); + if ($methods === null) { + $builder->onlyMethods([]); + } elseif ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + + return $builder->getMock(); } protected $permissionResolverMock; @@ -365,7 +362,6 @@ protected function getPermissionResolverMock($methods = []) return $this->permissionResolverMock = $this ->getMockBuilder(PermissionResolver::class) - ->setMethods($methods) ->disableOriginalConstructor() ->getMockForAbstractClass(); } @@ -379,10 +375,13 @@ protected function getLimitationServiceMock($methods = []) return $this->limitationServiceMock; } - return $this->limitationServiceMock = $this + $builder = $this ->getMockBuilder(LimitationService::class) - ->setMethods($methods) - ->disableOriginalConstructor() - ->getMock(); + ->disableOriginalConstructor(); + if ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + + return $this->limitationServiceMock = $builder->getMock(); } } diff --git a/tests/lib/Repository/Service/Mock/Base.php b/tests/lib/Repository/Service/Mock/Base.php index 8fcb31a189..842be6d7d6 100644 --- a/tests/lib/Repository/Service/Mock/Base.php +++ b/tests/lib/Repository/Service/Mock/Base.php @@ -119,8 +119,8 @@ protected function getRepository(array $serviceSettings = []) new NullIndexer(), $this->getRelationProcessorMock(), $this->getFieldTypeRegistryMock(), - $this->createMock(PasswordHashService::class), - $this->createMock(ProxyDomainMapperFactoryInterface::class), + self::createStub(PasswordHashService::class), + self::createStub(ProxyDomainMapperFactoryInterface::class), $this->getContentDomainMapperMock(), $this->getContentTypeDomainMapperMock(), $this->getRoleDomainMapperMock(), @@ -131,12 +131,12 @@ protected function getRepository(array $serviceSettings = []) $this->getPermissionServiceMock(), $this->getContentFilteringHandlerMock(), $this->getLocationFilteringHandlerMock(), - $this->createMock(PasswordValidatorInterface::class), - $this->createMock(ConfigResolverInterface::class), - $this->createMock(NameSchemaServiceInterface::class), + self::createStub(PasswordValidatorInterface::class), + self::createStub(ConfigResolverInterface::class), + self::createStub(NameSchemaServiceInterface::class), $this->getTransactionHandlerMock(), new ContentCollector(), - $this->createMock(ValidatorInterface::class), + self::createStub(ValidatorInterface::class), $serviceSettings, ); @@ -343,7 +343,6 @@ protected function getSPIMockHandler($handler) { if (!isset($this->spiMockHandlers[$handler])) { $this->spiMockHandlers[$handler] = $this->getMockBuilder("Ibexa\\Contracts\\Core\\{$handler}") - ->setMethods([]) ->disableOriginalConstructor() ->setConstructorArgs([]) ->getMock(); @@ -420,7 +419,7 @@ protected function getRoleDomainMapperMock(array $methods = []): RoleDomainMappe if ($this->roleDomainMapperMock === null) { $mockBuilder = $this->getMockBuilder(RoleDomainMapper::class); if (!empty($methods)) { - $mockBuilder->onlyMethods($methods); + $mockBuilder->onlyMethods(array_values($methods)); } $this->roleDomainMapperMock = $mockBuilder ->disableOriginalConstructor() diff --git a/tests/lib/Repository/Service/Mock/BookmarkTest.php b/tests/lib/Repository/Service/Mock/BookmarkTest.php index 880dad3444..ed0e197d37 100644 --- a/tests/lib/Repository/Service/Mock/BookmarkTest.php +++ b/tests/lib/Repository/Service/Mock/BookmarkTest.php @@ -11,6 +11,7 @@ use Exception; use Ibexa\Contracts\Core\Persistence\Bookmark\Bookmark; use Ibexa\Contracts\Core\Persistence\Bookmark\CreateStruct; +use Ibexa\Contracts\Core\Repository\BookmarkService as CoveredBookmarkService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\PermissionResolver; @@ -20,8 +21,13 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\MockObject\MockObject; +#[CoversMethod(CoveredBookmarkService::class, 'createBookmark')] +#[CoversMethod(CoveredBookmarkService::class, 'deleteBookmark')] +#[CoversMethod(CoveredBookmarkService::class, 'loadBookmarks')] +#[CoversMethod(CoveredBookmarkService::class, 'isBookmarked')] class BookmarkTest extends BaseServiceMockTest { public const BOOKMARK_ID = 2; @@ -50,9 +56,6 @@ protected function setUp(): void ->willReturn($permissionResolverMock); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::createBookmark - */ public function testCreateBookmark() { $location = $this->createLocation(self::LOCATION_ID); @@ -80,9 +83,6 @@ public function testCreateBookmark() $this->createBookmarkService()->createBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::createBookmark - */ public function testCreateBookmarkThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -104,9 +104,6 @@ public function testCreateBookmarkThrowsInvalidArgumentException() $this->createBookmarkService()->createBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::createBookmark - */ public function testCreateBookmarkWithRollback() { $this->expectException(\Exception::class); @@ -125,15 +122,12 @@ public function testCreateBookmarkWithRollback() $this->bookmarkHandler ->expects($this->once()) ->method('create') - ->willThrowException($this->createMock(Exception::class)); + ->willThrowException(self::createStub(Exception::class)); }); $this->createBookmarkService()->createBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::deleteBookmark - */ public function testDeleteBookmarkExisting() { $location = $this->createLocation(self::LOCATION_ID); @@ -158,9 +152,6 @@ public function testDeleteBookmarkExisting() $this->createBookmarkService()->deleteBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::deleteBookmark - */ public function testDeleteBookmarkWithRollback() { $this->expectException(\Exception::class); @@ -179,15 +170,12 @@ public function testDeleteBookmarkWithRollback() $this->bookmarkHandler ->expects($this->once()) ->method('delete') - ->willThrowException($this->createMock(Exception::class)); + ->willThrowException(self::createStub(Exception::class)); }); $this->createBookmarkService()->deleteBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::deleteBookmark - */ public function testDeleteBookmarkNonExisting() { $this->expectException(InvalidArgumentException::class); @@ -209,9 +197,6 @@ public function testDeleteBookmarkNonExisting() $this->createBookmarkService()->deleteBookmark($location); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::loadBookmarks - */ public function testLoadBookmarks() { $offset = 0; @@ -246,9 +231,6 @@ public function testLoadBookmarks() self::assertEquals($expectedItems, $bookmarks->items); } - /** - * @covers \Ibexa\Contracts\Core\Repository\BookmarkService::isBookmarked - */ public function testLocationShouldNotBeBookmarked() { $this->bookmarkHandler @@ -333,7 +315,7 @@ private function createBookmarkService(?array $methods = null) return $this ->getMockBuilder(BookmarkService::class) ->setConstructorArgs([$this->getRepositoryMock(), $this->bookmarkHandler]) - ->setMethods($methods) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } } diff --git a/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php b/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php index 90b18f41e3..3f31538516 100644 --- a/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php +++ b/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php @@ -27,12 +27,13 @@ use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Group; use Psr\Log\LoggerInterface; use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait; -/** - * @covers \Ibexa\Core\Repository\Mapper\ContentDomainMapper - */ +#[CoversClass(ContentDomainMapper::class)] final class ContentDomainMapperTest extends BaseServiceMockTest { use ExpectDeprecationTrait; @@ -48,9 +49,7 @@ final class ContentDomainMapperTest extends BaseServiceMockTest private const EXAMPLE_CREATOR_ID = 23; private const int EXAMPLE_VERSION_INFO_ID = 12; - /** - * @dataProvider providerForBuildVersionInfo - */ + #[DataProvider('providerForBuildVersionInfo')] public function testBuildVersionInfo(SPIVersionInfo $spiVersionInfo) { $languageHandlerMock = $this->getLanguageHandlerMock(); @@ -149,13 +148,12 @@ public function testBuildLocationWithContentIsAlignedWithBuildLocation() /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\Exception - * - * @group legacy */ + #[Group('legacy')] public function testBuildDomainFieldsDeprecatedBehavior(): void { $persistenceFields = [new PersistenceContentField()]; - $persistenceContentType = $this->createMock(PersistenceContentType::class); + $persistenceContentType = self::createStub(PersistenceContentType::class); $apiContentTypeMock = $this->createMock(ContentType::class); $apiContentTypeMock->method('getFieldDefinitions')->willReturn(new FieldDefinitionCollection()); $this @@ -175,7 +173,7 @@ public function testBuildDomainFieldsDeprecatedBehavior(): void $this->getContentDomainMapper()->buildDomainFields($persistenceFields, $persistenceContentType); } - public function providerForBuildVersionInfo() + public static function providerForBuildVersionInfo() { $properties = [ 'id' => self::EXAMPLE_VERSION_INFO_ID, @@ -238,7 +236,7 @@ public function providerForBuildVersionInfo() ]; } - public function providerForBuildLocationDomainObjectsOnSearchResult() + public static function providerForBuildLocationDomainObjectsOnSearchResult() { $properties = [ 'name' => self::EXAMPLE_NAME, @@ -314,14 +312,13 @@ public function providerForBuildLocationDomainObjectsOnSearchResult() } /** - * @dataProvider providerForBuildLocationDomainObjectsOnSearchResult - * * @param array $locationHits * @param array $contentIds * @param array $languageFilter * @param array $contentInfoList * @param int $missing */ + #[DataProvider('providerForBuildLocationDomainObjectsOnSearchResult')] public function testBuildLocationDomainObjectsOnSearchResult( array $locationHits, array $contentIds, diff --git a/tests/lib/Repository/Service/Mock/ContentTest.php b/tests/lib/Repository/Service/Mock/ContentTest.php index a73c265069..33be678e96 100644 --- a/tests/lib/Repository/Service/Mock/ContentTest.php +++ b/tests/lib/Repository/Service/Mock/ContentTest.php @@ -22,6 +22,7 @@ use Ibexa\Contracts\Core\Persistence\Content\ObjectState\Group as SPIObjectStateGroup; use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct as SPIContentUpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo as SPIVersionInfo; +use Ibexa\Contracts\Core\Repository\ContentService as CoveredContentService; use Ibexa\Contracts\Core\Repository\ContentTypeService as APIContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; @@ -59,11 +60,33 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DependsExternal; use Symfony\Component\Validator\Validator\ValidatorInterface; /** * Mock test case for Content service. */ +#[CoversMethod(CoveredContentService::class, '__construct')] +#[CoversMethod(CoveredContentService::class, 'loadVersionInfoById')] +#[CoversMethod(CoveredContentService::class, 'loadVersionInfo')] +#[CoversMethod(CoveredContentService::class, 'loadContentByContentInfo')] +#[CoversMethod(CoveredContentService::class, 'loadContentByVersionInfo')] +#[CoversMethod(CoveredContentService::class, 'deleteContent')] +#[CoversMethod(CoveredContentService::class, 'deleteVersion')] +#[CoversMethod(CoveredContentService::class, 'createContent')] +#[CoversMethod(CoveredContentService::class, 'getLanguageCodesForCreate')] +#[CoversMethod(CoveredContentService::class, 'mapFieldsForCreate')] +#[CoversMethod(CoveredContentService::class, 'cloneField')] +#[CoversMethod(CoveredContentService::class, 'getDefaultObjectStates')] +#[CoversMethod(CoveredContentService::class, 'buildSPILocationCreateStructs')] +#[CoversMethod(CoveredContentService::class, 'updateContent')] +#[CoversMethod(CoveredContentService::class, 'getLanguageCodesForUpdate')] +#[CoversMethod(CoveredContentService::class, 'mapFieldsForUpdate')] +#[CoversMethod(CoveredContentService::class, 'copyContent')] +#[CoversMethod(CoveredContentService::class, 'internalPublishVersion')] class ContentTest extends BaseServiceMockTest { private const string EMPTY_FIELD_VALUE = 'empty'; @@ -78,8 +101,6 @@ class ContentTest extends BaseServiceMockTest /** * Test for the __construct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::__construct */ public function testConstructor(): void { @@ -112,15 +133,13 @@ public function testConstructor(): void $contentValidatorStrategy, $contentFilteringHandlerMock, new ContentCollector(), - $this->createMock(ValidatorInterface::class), + self::createStub(ValidatorInterface::class), $settings ); } /** * Test for the loadVersionInfo() method, of published version. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ public function testLoadVersionInfoById() { @@ -167,11 +186,8 @@ public function testLoadVersionInfoById() /** * Test for the loadVersionInfo() method, of a draft. - * - * @depends testLoadVersionInfoById - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ + #[Depends('testLoadVersionInfoById')] public function testLoadVersionInfoByIdAndVersionNumber() { $permissionResolver = $this->getPermissionResolverMock(); @@ -216,8 +232,6 @@ public function testLoadVersionInfoByIdAndVersionNumber() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ public function testLoadVersionInfoByIdThrowsNotFoundException() { @@ -249,8 +263,6 @@ public function testLoadVersionInfoByIdThrowsNotFoundException() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion() { @@ -294,8 +306,6 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVe /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ public function testLoadVersionInfoByIdPublishedVersion() { @@ -339,8 +349,6 @@ public function testLoadVersionInfoByIdPublishedVersion() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfoById */ public function testLoadVersionInfoByIdNonPublishedVersion() { @@ -384,18 +392,15 @@ public function testLoadVersionInfoByIdNonPublishedVersion() /** * Test for the loadVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadVersionInfo - * - * @depends Ibexa\Tests\Core\Repository\Service\Mock\ContentTest::testLoadVersionInfoById - * @depends Ibexa\Tests\Core\Repository\Service\Mock\ContentTest::testLoadVersionInfoByIdThrowsNotFoundException - * @depends Ibexa\Tests\Core\Repository\Service\Mock\ContentTest::testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion - * @depends Ibexa\Tests\Core\Repository\Service\Mock\ContentTest::testLoadVersionInfoByIdPublishedVersion - * @depends Ibexa\Tests\Core\Repository\Service\Mock\ContentTest::testLoadVersionInfoByIdNonPublishedVersion */ + #[DependsExternal(self::class, 'testLoadVersionInfoById')] + #[DependsExternal(self::class, 'testLoadVersionInfoByIdThrowsNotFoundException')] + #[DependsExternal(self::class, 'testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion')] + #[DependsExternal(self::class, 'testLoadVersionInfoByIdPublishedVersion')] + #[DependsExternal(self::class, 'testLoadVersionInfoByIdNonPublishedVersion')] public function testLoadVersionInfo() { - $expectedResult = $this->createMock(VersionInfo::class); + $expectedResult = self::createStub(VersionInfo::class); $contentServiceMock = $this->getPartlyMockedContentService( ['loadVersionInfoById'] @@ -454,7 +459,7 @@ public function testLoadContentNonPublished() { $contentService = $this->getPartlyMockedContentService(['internalLoadContentById']); $content = $this->createMock(APIContent::class); - $versionInfo = $this->createMock(APIVersionInfo::class); + $versionInfo = self::createStub(APIVersionInfo::class); $permissionResolver = $this->getPermissionResolverMock(); $content @@ -490,7 +495,7 @@ public function testLoadContentUnauthorized() $permissionResolver = $this->getPermissionResolverMock(); $contentService = $this->getPartlyMockedContentService(['internalLoadContentById']); - $content = $this->createMock(APIContent::class); + $content = self::createStub(APIContent::class); $contentId = 123; $contentService ->expects(self::once()) @@ -542,9 +547,7 @@ public function testLoadContentNotPublishedStatusUnauthorized() $contentService->loadContent($contentId); } - /** - * @dataProvider internalLoadContentProviderById - */ + #[DataProvider('internalLoadContentProviderById')] public function testInternalLoadContentById(int $id, ?array $languages, ?int $versionNo, bool $useAlwaysAvailable): void { if (!empty($languages) && $useAlwaysAvailable) { @@ -584,9 +587,7 @@ public function testInternalLoadContentById(int $id, ?array $languages, ?int $ve self::assertSame($expectedContent, $actualContent); } - /** - * @dataProvider internalLoadContentProviderByRemoteId - */ + #[DataProvider('internalLoadContentProviderByRemoteId')] public function testInternalLoadContentByRemoteId(string $remoteId, ?array $languages, ?int $versionNo, bool $useAlwaysAvailable) { $realId = 123; @@ -629,7 +630,7 @@ public function testInternalLoadContentByRemoteId(string $remoteId, ?array $lang self::assertSame($expectedContent, $actualContent); } - public function internalLoadContentProviderById(): array + public static function internalLoadContentProviderById(): array { return [ [123, null, null, false], @@ -642,7 +643,7 @@ public function internalLoadContentProviderById(): array ]; } - public function internalLoadContentProviderByRemoteId(): array + public static function internalLoadContentProviderByRemoteId(): array { return [ ['123', null, null, false], @@ -677,7 +678,7 @@ public function testInternalLoadContentByIdNotFound(): void ->with($id, $versionNo, $languages) ->will( self::throwException( - $this->createMock(APINotFoundException::class) + self::createStub(APINotFoundException::class) ) ); @@ -707,7 +708,7 @@ public function testInternalLoadContentByRemoteIdNotFound(): void ->method('load') ->with($id, $versionNo, $languages) ->willThrowException( - $this->createMock(APINotFoundException::class) + self::createStub(APINotFoundException::class) ); $contentService = $this->getPartlyMockedContentService(); @@ -716,12 +717,10 @@ public function testInternalLoadContentByRemoteIdNotFound(): void /** * Test for the loadContentByContentInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByContentInfo */ public function testLoadContentByContentInfo() { - $versionInfo = $this->createMock(APIVersionInfo::class); + $versionInfo = self::createStub(APIVersionInfo::class); $content = $this->createMock(APIContent::class); $content->method('getVersionInfo') ->will(self::returnValue($versionInfo)); @@ -758,12 +757,10 @@ public function testLoadContentByContentInfo() /** * Test for the loadContentByVersionInfo() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::loadContentByVersionInfo */ public function testLoadContentByVersionInfo() { - $expectedResult = $this->createMock(Content::class); + $expectedResult = self::createStub(Content::class); $contentServiceMock = $this->getPartlyMockedContentService( ['loadContent'] @@ -796,8 +793,6 @@ public function testLoadContentByVersionInfo() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent */ public function testDeleteContentThrowsUnauthorizedException() { @@ -845,8 +840,6 @@ public function testDeleteContentThrowsUnauthorizedException() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent */ public function testDeleteContent() { @@ -907,11 +900,15 @@ public function testDeleteContent() ->method('deleteContent') ->with(42); - foreach ($spiLocations as $index => $spiLocation) { - $urlAliasHandler->expects(self::at($index)) - ->method('locationDeleted') - ->with($spiLocation->id); - } + $locationDeletedMatcher = self::exactly(count($spiLocations)); + $urlAliasHandler->expects($locationDeletedMatcher) + ->method('locationDeleted') + ->willReturnCallback(static function ($locationId) use ($locationDeletedMatcher, $spiLocations): array { + $expectedLocation = $spiLocations[$locationDeletedMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedLocation->id, $locationId); + + return []; + }); $repository->expects(self::once())->method('commit'); @@ -921,8 +918,6 @@ public function testDeleteContent() /** * Test for the deleteContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteContent */ public function testDeleteContentWithRollback() { @@ -984,8 +979,6 @@ public function testDeleteContentWithRollback() /** * Test for the deleteVersion() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::deleteVersion */ public function testDeleteVersionThrowsBadStateExceptionLastVersion() { @@ -1043,8 +1036,6 @@ public function testDeleteVersionThrowsBadStateExceptionLastVersion() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent */ public function testCreateContentThrowsUnauthorizedException() { @@ -1106,7 +1097,6 @@ public function testCreateContentThrowsUnauthorizedException() /** * Test for the createContent() method. * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent * * @exceptionMessage Argument '$contentCreateStruct' is invalid: Another content with remoteId 'faraday' exists */ @@ -1119,7 +1109,7 @@ public function testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId $permissionResolverMock ->expects(self::once()) ->method('getCurrentUserReference') - ->willReturn($this->createMock(UserReference::class)); + ->willReturn(self::createStub(UserReference::class)); $mockedService = $this->getPartlyMockedContentService(['loadContentByRemoteId']); $contentTypeServiceMock = $this->getContentTypeServiceMock(); @@ -1160,7 +1150,7 @@ public function testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId $mockedService->expects(self::once()) ->method('loadContentByRemoteId') ->with($contentCreateStruct->remoteId) - ->will(self::returnValue($this->createMock(Content::class))); + ->will(self::returnValue(self::createStub(Content::class))); $mockedService->createContent( new ContentCreateStruct( @@ -1371,8 +1361,8 @@ static function (ValueStub $value): string { ->expects(self::exactly(count($fieldDefinitions) * count($languageCodes))) ->method('appendFieldRelations') ->with( - self::isType('array'), - self::isType('array'), + self::isArray(), + self::isArray(), self::isInstanceOf(SPIFieldType::class), self::isInstanceOf(Value::class), self::anything() @@ -1396,9 +1386,9 @@ static function (ValueStub $value): string { $relationProcessorMock->expects(self::any()) ->method('processFieldRelations') ->with( - self::isType('array'), + self::isArray(), self::equalTo(42), - self::isType('int'), + self::isInt(), self::equalTo($contentType), self::equalTo([]) ); @@ -1456,7 +1446,7 @@ static function (ValueStub $value): string { return $contentCreateStruct; } - public function providerForTestCreateContentNonRedundantFieldSet1() + public static function providerForTestCreateContentNonRedundantFieldSet1() { $spiFields = [ new SPIField( @@ -1506,15 +1496,8 @@ public function providerForTestCreateContentNonRedundantFieldSet1() * Test for the createContent() method. * * Testing the simplest use case. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::cloneField - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentNonRedundantFieldSet1 */ + #[DataProvider('providerForTestCreateContentNonRedundantFieldSet1')] public function testCreateContentNonRedundantFieldSet1($mainLanguageCode, $structFields, $spiFields) { $fieldDefinitions = [ @@ -1538,7 +1521,7 @@ public function testCreateContentNonRedundantFieldSet1($mainLanguageCode, $struc ); } - public function providerForTestCreateContentNonRedundantFieldSet2() + public static function providerForTestCreateContentNonRedundantFieldSet2() { $spiFields = [ new SPIField( @@ -1611,15 +1594,8 @@ public function providerForTestCreateContentNonRedundantFieldSet2() * Test for the createContent() method. * * Testing multiple languages with multiple translatable fields with empty default value. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::cloneField - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentNonRedundantFieldSet2 */ + #[DataProvider('providerForTestCreateContentNonRedundantFieldSet2')] public function testCreateContentNonRedundantFieldSet2($mainLanguageCode, $structFields, $spiFields) { $fieldDefinitions = [ @@ -1653,7 +1629,7 @@ public function testCreateContentNonRedundantFieldSet2($mainLanguageCode, $struc ); } - public function providerForTestCreateContentNonRedundantFieldSetComplex() + public static function providerForTestCreateContentNonRedundantFieldSetComplex() { $spiFields0 = [ new SPIField( @@ -1827,15 +1803,8 @@ protected function fixturesForTestCreateContentNonRedundantFieldSetComplex() * Test for the createContent() method. * * Testing multiple languages with multiple translatable fields with empty default value. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::cloneField - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentNonRedundantFieldSetComplex */ + #[DataProvider('providerForTestCreateContentNonRedundantFieldSetComplex')] public function testCreateContentNonRedundantFieldSetComplex($mainLanguageCode, $structFields, $spiFields) { $fieldDefinitions = $this->fixturesForTestCreateContentNonRedundantFieldSetComplex(); @@ -1848,7 +1817,7 @@ public function testCreateContentNonRedundantFieldSetComplex($mainLanguageCode, ); } - public function providerForTestCreateContentWithInvalidLanguage() + public static function providerForTestCreateContentWithInvalidLanguage() { return [ [ @@ -1880,12 +1849,8 @@ public function providerForTestCreateContentWithInvalidLanguage() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentWithInvalidLanguage */ + #[DataProvider('providerForTestCreateContentWithInvalidLanguage')] public function testCreateContentWithInvalidLanguage($mainLanguageCode, $structFields) { $this->expectException(APINotFoundException::class); @@ -1932,7 +1897,7 @@ public function testCreateContentWithInvalidLanguage($mainLanguageCode, $structF $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function ($languageCode) { @@ -2057,7 +2022,7 @@ static function ($valueString) { $mockedService->createContent($contentCreateStruct, []); } - public function providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition() + public static function providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition() { return [ [ @@ -2077,13 +2042,8 @@ public function providerForTestCreateContentThrowsContentValidationExceptionFiel /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition */ + #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition')] public function testCreateContentThrowsContentValidationExceptionFieldDefinition($mainLanguageCode, $structFields) { $this->expectException(ContentValidationException::class); @@ -2096,7 +2056,7 @@ public function testCreateContentThrowsContentValidationExceptionFieldDefinition ); } - public function providerForTestCreateContentThrowsContentValidationExceptionTranslation() + public static function providerForTestCreateContentThrowsContentValidationExceptionTranslation() { return [ [ @@ -2116,13 +2076,8 @@ public function providerForTestCreateContentThrowsContentValidationExceptionTran /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentThrowsContentValidationExceptionTranslation */ + #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionTranslation')] public function testCreateContentThrowsContentValidationExceptionTranslation($mainLanguageCode, $structFields) { $this->expectException(ContentValidationException::class); @@ -2193,7 +2148,7 @@ private function loadByLanguageCodeMock(\PHPUnit\Framework\MockObject\MockObject { $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function () { @@ -2275,7 +2230,7 @@ static function () use ($that, $contentCreateStruct): bool { return $contentCreateStruct; } - public function providerForTestCreateContentThrowsContentValidationExceptionRequiredField() + public static function providerForTestCreateContentThrowsContentValidationExceptionRequiredField() { return [ [ @@ -2298,13 +2253,8 @@ public function providerForTestCreateContentThrowsContentValidationExceptionRequ /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentThrowsContentValidationExceptionRequiredField */ + #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionRequiredField')] public function testCreateContentRequiredField( $mainLanguageCode, $structFields, @@ -2421,8 +2371,8 @@ static function () use ($that, $contentCreateStruct): bool { ->expects(self::any()) ->method('appendFieldRelations') ->with( - self::isType('array'), - self::isType('array'), + self::isArray(), + self::isArray(), self::isInstanceOf(SPIFieldType::class), self::isInstanceOf(Value::class), self::anything() @@ -2479,20 +2429,15 @@ static function (ValueStub $value) use ($emptyValue): bool { return [$contentCreateStruct, $allFieldErrors]; } - public function providerForTestCreateContentThrowsContentFieldValidationException() + public static function providerForTestCreateContentThrowsContentFieldValidationException() { - return $this->providerForTestCreateContentNonRedundantFieldSetComplex(); + return self::providerForTestCreateContentNonRedundantFieldSetComplex(); } /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentThrowsContentFieldValidationException */ + #[DataProvider('providerForTestCreateContentThrowsContentFieldValidationException')] public function testCreateContentThrowsContentFieldValidationException($mainLanguageCode, $structFields): void { $this->expectException(ContentFieldValidationException::class); @@ -2516,6 +2461,9 @@ public function testCreateContentThrowsContentFieldValidationException($mainLang } } + /** + * @param \Ibexa\Contracts\Core\FieldType\FieldType&\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock + */ private function acceptFieldTypeValueMock(\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock): void { $fieldTypeMock->expects(self::any()) @@ -2545,6 +2493,9 @@ private function getFieldTypeFieldTypeRegistryMock(\PHPUnit\Framework\MockObject ->will(self::returnValue($fieldTypeMock)); } + /** + * @param \Ibexa\Contracts\Core\FieldType\FieldType&\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock + */ private function isEmptyValueFieldTypeMock(\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock): void { $emptyValue = new ValueStub(self::EMPTY_FIELD_VALUE); @@ -2580,11 +2531,6 @@ static function ($object) use ($that, $contentCreateStruct): string { /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::buildSPILocationCreateStructs - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent */ public function testCreateContentWithLocations() { @@ -2635,41 +2581,42 @@ public function testCreateContentWithLocations() $spiLocationCreateStruct = new SPILocation\CreateStruct(); $parentLocation = new Location(['contentInfo' => new ContentInfo(['sectionId' => 1])]); - $locationServiceMock->expects(self::at(0)) + $loadLocationMatcher = self::exactly(2); + $locationServiceMock->expects($loadLocationMatcher) ->method('loadLocation') - ->with(self::equalTo(321)) - ->will(self::returnValue($parentLocation)); + ->willReturnCallback(static function ($locationId) use ($loadLocationMatcher, $parentLocation): Location { + if ($loadLocationMatcher->numberOfInvocations() === 1) { + self::assertSame(321, $locationId); + } else { + self::assertSame(654, $locationId); + } - $locationServiceMock->expects(self::at(1)) - ->method('loadLocation') - ->with(self::equalTo(654)) - ->will(self::returnValue($parentLocation)); + return $parentLocation; + }); $repositoryMock->expects(self::atLeastOnce()) ->method('getLocationService') ->will(self::returnValue($locationServiceMock)); - $domainMapperMock->expects(self::at(1)) + $buildSPILocationCreateStructMatcher = self::exactly(2); + $domainMapperMock->expects($buildSPILocationCreateStructMatcher) ->method('buildSPILocationCreateStruct') - ->with( - self::equalTo($locationCreateStruct1), - self::equalTo($parentLocation), - self::equalTo(true), - self::equalTo(null), - self::equalTo(null), - self::equalTo(false) - )->will(self::returnValue($spiLocationCreateStruct)); + ->willReturnCallback(static function ($locationCreateStruct, $parentLocationArg, $mainLocation, $contentId, $contentVersionNo, bool $isContentHidden) use ($buildSPILocationCreateStructMatcher, $locationCreateStruct1, $locationCreateStruct2, $parentLocation, $spiLocationCreateStruct) { + self::assertSame($parentLocation, $parentLocationArg); + self::assertNull($contentId); + self::assertNull($contentVersionNo); + self::assertFalse($isContentHidden); + + if ($buildSPILocationCreateStructMatcher->numberOfInvocations() === 1) { + self::assertSame($locationCreateStruct1, $locationCreateStruct); + self::assertTrue($mainLocation); + } else { + self::assertSame($locationCreateStruct2, $locationCreateStruct); + self::assertFalse($mainLocation); + } - $domainMapperMock->expects(self::at(2)) - ->method('buildSPILocationCreateStruct') - ->with( - self::equalTo($locationCreateStruct2), - self::equalTo($parentLocation), - self::equalTo(false), - self::equalTo(null), - self::equalTo(null), - self::equalTo(false) - )->will(self::returnValue($spiLocationCreateStruct)); + return $spiLocationCreateStruct; + }); $spiContentCreateStruct = new SPIContentCreateStruct( [ @@ -2709,7 +2656,7 @@ public function testCreateContentWithLocations() self::isInstanceOf(SPIContent::class), self::isInstanceOf(APIContentType::class) ) - ->willReturn($this->createMock(APIContent::class)); + ->willReturn(self::createStub(APIContent::class)); $repositoryMock->expects(self::once())->method('commit'); @@ -2719,11 +2666,6 @@ public function testCreateContentWithLocations() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::buildSPILocationCreateStructs - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent */ public function testCreateContentWithLocationsDuplicateUnderParent() { @@ -2782,7 +2724,7 @@ public function testCreateContentWithLocationsDuplicateUnderParent() $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function () { @@ -2888,11 +2830,6 @@ static function ($valueString) { /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent */ public function testCreateContentObjectStates() { @@ -2984,7 +2921,7 @@ public function testCreateContentObjectStates() self::isInstanceOf(SPIContent::class), self::isInstanceOf(APIContentType::class) ) - ->willReturn($this->createMock(APIContent::class)); + ->willReturn(self::createStub(APIContent::class)); $repositoryMock->expects(self::once())->method('commit'); @@ -2994,14 +2931,8 @@ public function testCreateContentObjectStates() /** * Test for the createContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForCreate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::createContent - * - * @dataProvider providerForTestCreateContentThrowsContentValidationExceptionTranslation */ + #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionTranslation')] public function testCreateContentWithRollback() { $this->expectException(\Exception::class); @@ -3047,7 +2978,7 @@ public function testCreateContentWithRollback() $this->partlyMockedContentService->createContent($contentCreateStruct, []); } - public function providerForTestUpdateContentThrowsBadStateException() + public static function providerForTestUpdateContentThrowsBadStateException() { return [ [VersionInfo::STATUS_PUBLISHED], @@ -3057,11 +2988,8 @@ public function providerForTestUpdateContentThrowsBadStateException() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentThrowsBadStateException */ + #[DataProvider('providerForTestUpdateContentThrowsBadStateException')] public function testUpdateContentThrowsBadStateException($status) { $this->expectException(BadStateException::class); @@ -3109,8 +3037,6 @@ public function testUpdateContentThrowsBadStateException($status) /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent */ public function testUpdateContentThrowsUnauthorizedException() { @@ -3150,7 +3076,7 @@ public function testUpdateContentThrowsUnauthorizedException() self::equalTo('content'), self::equalTo('edit'), self::equalTo($content), - self::isType('array') + self::isArray() )->will(self::returnValue(false)); $mockedService->updateContent($versionInfo, $contentUpdateStruct); @@ -3363,7 +3289,7 @@ static function (Field $field) { $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function () { @@ -3442,8 +3368,8 @@ static function (SPIValue $value) use ($emptyValue): bool { ->expects(self::exactly(count($fieldDefinitions) * count($languageCodes))) ->method('appendFieldRelations') ->with( - self::isType('array'), - self::isType('array'), + self::isArray(), + self::isArray(), self::isInstanceOf(SPIFieldType::class), self::isInstanceOf(Value::class), self::anything() @@ -3469,9 +3395,9 @@ static function (SPIValue $value) use ($emptyValue): bool { $relationProcessorMock->expects(self::any()) ->method('processFieldRelations') ->with( - self::isType('array'), + self::isArray(), self::equalTo(42), - self::isType('int'), + self::isInt(), self::equalTo($contentType), self::equalTo($existingRelations) ); @@ -3538,7 +3464,7 @@ static function (SPIValue $value) use ($emptyValue): bool { return [$content->versionInfo, $contentUpdateStruct]; } - public function providerForTestUpdateContentNonRedundantFieldSet1() + public static function providerForTestUpdateContentNonRedundantFieldSet1() { $spiFields = [ new SPIField( @@ -3596,13 +3522,8 @@ public function providerForTestUpdateContentNonRedundantFieldSet1() * Test for the updateContent() method. * * Testing the simplest use case. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentNonRedundantFieldSet1 */ + #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet1')] public function testUpdateContentNonRedundantFieldSet1($initialLanguageCode, $structFields, $spiFields) { $existingFields = [ @@ -3638,7 +3559,7 @@ public function testUpdateContentNonRedundantFieldSet1($initialLanguageCode, $st ); } - public function providerForTestUpdateContentNonRedundantFieldSet2() + public static function providerForTestUpdateContentNonRedundantFieldSet2() { $spiFields0 = [ new SPIField( @@ -3813,13 +3734,8 @@ public function providerForTestUpdateContentNonRedundantFieldSet2() * Test for the updateContent() method. * * Testing with translatable field. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentNonRedundantFieldSet2 */ + #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet2')] public function testUpdateContentNonRedundantFieldSet2($initialLanguageCode, $structFields, $spiFields) { $existingFields = [ @@ -3855,7 +3771,7 @@ public function testUpdateContentNonRedundantFieldSet2($initialLanguageCode, $st ); } - public function providerForTestUpdateContentNonRedundantFieldSet3() + public static function providerForTestUpdateContentNonRedundantFieldSet3() { $spiFields0 = [ new SPIField( @@ -4081,13 +3997,8 @@ public function providerForTestUpdateContentNonRedundantFieldSet3() * Test for the updateContent() method. * * Testing with new language and untranslatable field. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentNonRedundantFieldSet3 */ + #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet3')] public function testUpdateContentNonRedundantFieldSet3($initialLanguageCode, $structFields, $spiFields) { $existingFields = [ @@ -4141,7 +4052,7 @@ public function testUpdateContentNonRedundantFieldSet3($initialLanguageCode, $st ); } - public function providerForTestUpdateContentNonRedundantFieldSet4() + public static function providerForTestUpdateContentNonRedundantFieldSet4() { $spiFields0 = [ new SPIField( @@ -4393,13 +4304,8 @@ public function providerForTestUpdateContentNonRedundantFieldSet4() * Test for the updateContent() method. * * Testing with empty values. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentNonRedundantFieldSet4 */ + #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet4')] public function testUpdateContentNonRedundantFieldSet4($initialLanguageCode, $structFields, $spiFields) { $existingFields = [ @@ -4458,7 +4364,7 @@ public function testUpdateContentNonRedundantFieldSet4($initialLanguageCode, $st * * @todo add first field empty */ - public function providerForTestUpdateContentNonRedundantFieldSetComplex() + public static function providerForTestUpdateContentNonRedundantFieldSetComplex() { $spiFields0 = [ new SPIField( @@ -4780,13 +4686,8 @@ protected function fixturesForTestUpdateContentNonRedundantFieldSetComplex() * Test for the updateContent() method. * * Testing more complex cases. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentNonRedundantFieldSetComplex */ + #[DataProvider('providerForTestUpdateContentNonRedundantFieldSetComplex')] public function testUpdateContentNonRedundantFieldSetComplex($initialLanguageCode, $structFields, $spiFields) { list($existingFields, $fieldDefinitions) = $this->fixturesForTestUpdateContentNonRedundantFieldSetComplex(); @@ -4800,7 +4701,7 @@ public function testUpdateContentNonRedundantFieldSetComplex($initialLanguageCod ); } - public function providerForTestUpdateContentWithInvalidLanguage() + public static function providerForTestUpdateContentWithInvalidLanguage() { return [ [ @@ -4809,7 +4710,12 @@ public function providerForTestUpdateContentWithInvalidLanguage() new Field( [ 'fieldDefIdentifier' => 'identifier', - 'value' => $this->createMock(Value::class), + 'value' => new class() extends Value { + public function __toString(): string + { + return ''; + } + }, 'languageCode' => 'Klingon', ] ), @@ -4821,7 +4727,12 @@ public function providerForTestUpdateContentWithInvalidLanguage() new Field( [ 'fieldDefIdentifier' => 'identifier', - 'value' => $this->createMock(Value::class), + 'value' => new class() extends Value { + public function __toString(): string + { + return ''; + } + }, 'languageCode' => 'eng-GB', ] ), @@ -4832,12 +4743,8 @@ public function providerForTestUpdateContentWithInvalidLanguage() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentWithInvalidLanguage */ + #[DataProvider('providerForTestUpdateContentWithInvalidLanguage')] public function testUpdateContentWithInvalidLanguage($initialLanguageCode, $structFields) { $this->expectException(APINotFoundException::class); @@ -4863,7 +4770,7 @@ public function testUpdateContentWithInvalidLanguage($initialLanguageCode, $stru ] ); - $fieldValueMock = $this->createMock(Value::class); + $fieldValueMock = self::createStub(Value::class); $content = new Content( [ @@ -4895,7 +4802,7 @@ public function testUpdateContentWithInvalidLanguage($initialLanguageCode, $stru $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function ($languageCode) { @@ -4930,7 +4837,7 @@ static function ($languageCode) { self::equalTo('content'), self::equalTo('edit'), self::equalTo($content), - self::isType('array') + self::isArray() )->will(self::returnValue(true)); $contentUpdateStruct = new ContentUpdateStruct( @@ -4998,7 +4905,7 @@ static function ($value) { $languageHandlerMock->expects(self::any()) ->method('loadByLanguageCode') - ->with(self::isType('string')) + ->with(self::isString()) ->will( self::returnCallback( static function ($languageCode) { @@ -5033,7 +4940,7 @@ static function ($languageCode) { self::equalTo('content'), self::equalTo('edit'), self::equalTo($content), - self::isType('array') + self::isArray() )->will(self::returnValue(true)); /* @@ -5089,7 +4996,7 @@ private function prepareContentForTestCreateAndUpdateContent( ); } - public function providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition() + public static function providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition() { return [ [ @@ -5109,13 +5016,8 @@ public function providerForTestUpdateContentThrowsContentValidationExceptionFiel /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition */ + #[DataProvider('providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition')] public function testUpdateContentThrowsContentValidationExceptionFieldDefinition($initialLanguageCode, $structFields) { $this->expectException(ContentValidationException::class); @@ -5128,7 +5030,7 @@ public function testUpdateContentThrowsContentValidationExceptionFieldDefinition ); } - public function providerForTestUpdateContentThrowsContentValidationExceptionTranslation() + public static function providerForTestUpdateContentThrowsContentValidationExceptionTranslation() { return [ [ @@ -5148,13 +5050,8 @@ public function providerForTestUpdateContentThrowsContentValidationExceptionTran /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentThrowsContentValidationExceptionTranslation */ + #[DataProvider('providerForTestUpdateContentThrowsContentValidationExceptionTranslation')] public function testUpdateContentThrowsContentValidationExceptionTranslation($initialLanguageCode, $structFields) { $this->expectException(ContentValidationException::class); @@ -5228,7 +5125,7 @@ static function (Field $field) { self::equalTo('content'), self::equalTo('edit'), self::equalTo($content), - self::isType('array') + self::isArray() )->will(self::returnValue(true)); $this->acceptFieldTypeValueMock($fieldTypeMock); @@ -5256,7 +5153,7 @@ static function (Field $field) { return [$content->versionInfo, $contentUpdateStruct]; } - public function providerForTestUpdateContentRequiredField() + public static function providerForTestUpdateContentRequiredField() { return [ [ @@ -5279,13 +5176,8 @@ public function providerForTestUpdateContentRequiredField() /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentRequiredField */ + #[DataProvider('providerForTestUpdateContentRequiredField')] public function testUpdateContentRequiredField( $initialLanguageCode, $structFields, @@ -5436,7 +5328,7 @@ static function (FieldDefinition $fieldDefinition) use ($allFieldErrors, $struct return [$content->versionInfo, $contentUpdateStruct, $allFieldErrors]; } - public function providerForTestUpdateContentThrowsContentFieldValidationException(): array + public static function providerForTestUpdateContentThrowsContentFieldValidationException(): array { $newValue1engGBValidationError = new ValidationError('newValue1-eng-GB'); $newValue2ValidationError = new ValidationError('newValue2'); @@ -5493,7 +5385,7 @@ public function providerForTestUpdateContentThrowsContentFieldValidationExceptio ], ]; - $data = $this->providerForTestUpdateContentNonRedundantFieldSetComplex(); + $data = self::providerForTestUpdateContentNonRedundantFieldSetComplex(); $count = count($data); for ($i = 0; $i < $count; ++$i) { $data[$i][] = $allFieldErrors[$i]; @@ -5504,13 +5396,8 @@ public function providerForTestUpdateContentThrowsContentFieldValidationExceptio /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent - * - * @dataProvider providerForTestUpdateContentThrowsContentFieldValidationException */ + #[DataProvider('providerForTestUpdateContentThrowsContentFieldValidationException')] public function testUpdateContentThrowsContentFieldValidationException( $initialLanguageCode, $structFields, @@ -5540,10 +5427,6 @@ public function testUpdateContentThrowsContentFieldValidationException( /** * Test for the updateContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getLanguageCodesForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::mapFieldsForUpdate - * @covers \Ibexa\Contracts\Core\Repository\ContentService::updateContent */ public function testUpdateContentTransactionRollback() { @@ -5605,8 +5488,6 @@ public function testUpdateContentTransactionRollback() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent */ public function testCopyContentThrowsUnauthorizedException() { @@ -5654,10 +5535,6 @@ public function testCopyContentThrowsUnauthorizedException() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::internalPublishVersion */ public function testCopyContent() { @@ -5732,13 +5609,26 @@ public function testCopyContent() $repositoryMock->expects(self::once())->method('commit'); $destinationLocationTarget = (new DestinationLocation($locationCreateStruct->parentLocationId, $contentInfoMock)); - $permissionResolverMock - ->method('canUser') - ->withConsecutive( - ['content', 'create', $contentInfoMock, [$location, $destinationLocationTarget]], - ['content', 'manage_locations', $contentInfoMock, [$location]], - ) - ->willReturnOnConsecutiveCalls(true, true); + $matcher = $this->exactly(2); + $permissionResolverMock->expects($matcher) + ->method('canUser')->willReturnCallback(function (...$parameters) use ($matcher, $contentInfoMock, $location, $destinationLocationTarget) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('create', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertEquals([$location, $destinationLocationTarget], $parameters[3]); + + return true; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('manage_locations', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertSame([$location], $parameters[3]); + + return true; + } + }); $spiContentInfo = new SPIContentInfo(['id' => 42]); $spiVersionInfo = new SPIVersionInfo( @@ -5791,10 +5681,6 @@ public function testCopyContent() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::internalPublishVersion */ public function testCopyContentWithVersionInfo() { @@ -5864,13 +5750,26 @@ public function testCopyContentWithVersionInfo() $repositoryMock->expects(self::once())->method('commit'); $destinationLocationTarget = (new DestinationLocation($locationCreateStruct->parentLocationId, $contentInfoMock)); - $permissionResolverMock - ->method('canUser') - ->withConsecutive( - ['content', 'create', $contentInfoMock, [$location, $destinationLocationTarget]], - ['content', 'manage_locations', $contentInfoMock, [$location]], - ) - ->willReturnOnConsecutiveCalls(true, true); + $matcher = $this->exactly(2); + $permissionResolverMock->expects($matcher) + ->method('canUser')->willReturnCallback(function (...$parameters) use ($matcher, $contentInfoMock, $location, $destinationLocationTarget) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('create', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertEquals([$location, $destinationLocationTarget], $parameters[3]); + + return true; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('manage_locations', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertSame([$location], $parameters[3]); + + return true; + } + }); $spiContentInfo = new SPIContentInfo(['id' => 42]); $spiVersionInfo = new SPIVersionInfo( @@ -5919,10 +5818,6 @@ public function testCopyContentWithVersionInfo() /** * Test for the copyContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\ContentService::copyContent - * @covers \Ibexa\Contracts\Core\Repository\ContentService::getDefaultObjectStates - * @covers \Ibexa\Contracts\Core\Repository\ContentService::internalPublishVersion */ public function testCopyContentWithRollback() { @@ -5970,13 +5865,26 @@ public function testCopyContentWithRollback() $repositoryMock->expects(self::once())->method('rollback'); $destinationLocationTarget = (new DestinationLocation($locationCreateStruct->parentLocationId, $contentInfoMock)); - $permissionResolverMock - ->method('canUser') - ->withConsecutive( - ['content', 'create', $contentInfoMock, [$location, $destinationLocationTarget]], - ['content', 'manage_locations', $contentInfoMock, [$location]], - ) - ->willReturnOnConsecutiveCalls(true, true); + $matcher = $this->exactly(2); + $permissionResolverMock->expects($matcher) + ->method('canUser')->willReturnCallback(function (...$parameters) use ($matcher, $contentInfoMock, $location, $destinationLocationTarget) { + if ($matcher->numberOfInvocations() === 1) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('create', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertEquals([$location, $destinationLocationTarget], $parameters[3]); + + return true; + } + if ($matcher->numberOfInvocations() === 2) { + $this->assertSame('content', $parameters[0]); + $this->assertSame('manage_locations', $parameters[1]); + $this->assertSame($contentInfoMock, $parameters[2]); + $this->assertSame([$location], $parameters[3]); + + return true; + } + }); $contentHandlerMock->expects(self::once()) ->method('copy') @@ -6046,29 +5954,26 @@ protected function mockGetDefaultObjectStates() ->method('loadAllGroups') ->will(self::returnValue($objectStateGroups)); - $objectStateHandlerMock->expects(self::at(1)) + $loadObjectStatesMatcher = self::exactly(2); + $objectStateHandlerMock->expects($loadObjectStatesMatcher) ->method('loadObjectStates') - ->with(self::equalTo(10)) - ->will( - self::returnValue( - [ + ->willReturnCallback(static function ($groupId) use ($loadObjectStatesMatcher): array { + if ($loadObjectStatesMatcher->numberOfInvocations() === 1) { + self::assertSame(10, $groupId); + + return [ new SPIObjectState(['id' => 11, 'groupId' => 10]), new SPIObjectState(['id' => 12, 'groupId' => 10]), - ] - ) - ); + ]; + } - $objectStateHandlerMock->expects(self::at(2)) - ->method('loadObjectStates') - ->with(self::equalTo(20)) - ->will( - self::returnValue( - [ - new SPIObjectState(['id' => 21, 'groupId' => 20]), - new SPIObjectState(['id' => 22, 'groupId' => 20]), - ] - ) - ); + self::assertSame(20, $groupId); + + return [ + new SPIObjectState(['id' => 21, 'groupId' => 20]), + new SPIObjectState(['id' => 22, 'groupId' => 20]), + ]; + }); } protected function mockSetDefaultObjectStates() @@ -6080,15 +5985,17 @@ protected function mockSetDefaultObjectStates() new SPIObjectState(['id' => 11, 'groupId' => 10]), new SPIObjectState(['id' => 21, 'groupId' => 20]), ]; - foreach ($defaultObjectStates as $index => $objectState) { - $objectStateHandlerMock->expects(self::at($index + 3)) - ->method('setContentState') - ->with( - 42, - $objectState->groupId, - $objectState->id - ); - } + $setContentStateMatcher = self::exactly(count($defaultObjectStates)); + $objectStateHandlerMock->expects($setContentStateMatcher) + ->method('setContentState') + ->willReturnCallback(static function ($contentId, $groupId, $stateId) use ($setContentStateMatcher, $defaultObjectStates): bool { + $objectState = $defaultObjectStates[$setContentStateMatcher->numberOfInvocations() - 1]; + self::assertSame(42, $contentId); + self::assertSame($objectState->groupId, $groupId); + self::assertSame($objectState->id, $stateId); + + return true; + }); } /** @@ -6187,14 +6094,21 @@ protected function mockPublishUrlAliasesForContent(APIContent $content) $locationServiceMock = $this->getLocationServiceMock(); $location = $this->createMock(APILocation::class); - $location->expects(self::at(0)) + $locationGetMatcher = self::exactly(4); + $location->expects($locationGetMatcher) ->method('__get') - ->with('id') - ->will(self::returnValue(123)); - $location->expects(self::at(1)) - ->method('__get') - ->with('parentLocationId') - ->will(self::returnValue(456)); + ->willReturnCallback(static function ($property) use ($locationGetMatcher) { + $invocation = $locationGetMatcher->numberOfInvocations(); + if ($invocation === 1 || $invocation === 3) { + self::assertSame('id', $property); + + return 123; + } + + self::assertSame('parentLocationId', $property); + + return 456; + }); $urlAliasNames = ['eng-GB' => 'hello']; $nameSchemaServiceMock->expects(self::once()) @@ -6211,16 +6125,6 @@ protected function mockPublishUrlAliasesForContent(APIContent $content) ->method('publishUrlAliasForLocation') ->with(123, 456, 'hello', 'eng-GB', true, true); - $location->expects(self::at(2)) - ->method('__get') - ->with('id') - ->will(self::returnValue(123)); - - $location->expects(self::at(3)) - ->method('__get') - ->with('parentLocationId') - ->will(self::returnValue(456)); - $urlAliasHandlerMock->expects(self::once()) ->method('archiveUrlAliasesForDeletedTranslations') ->with(123, 456, ['eng-GB']); @@ -6302,8 +6206,7 @@ protected function getLocationServiceMock() protected function getPartlyMockedContentService(?array $methods = null, int $gracePeriodInSeconds = 0) { if (!isset($this->partlyMockedContentService)) { - $this->partlyMockedContentService = $this->getMockBuilder(ContentService::class) - ->setMethods($methods) + $builder = $this->getMockBuilder(ContentService::class) ->setConstructorArgs( [ $this->getRepositoryMock(), @@ -6317,13 +6220,29 @@ protected function getPartlyMockedContentService(?array $methods = null, int $gr $this->getContentValidatorStrategy(), $this->getContentFilteringHandlerMock(), new ContentCollector(), - $this->createMock(ValidatorInterface::class), + self::createStub(ValidatorInterface::class), [ 'grace_period_in_seconds' => $gracePeriodInSeconds, ], ] - ) - ->getMock(); + ); + + $methods ??= []; + if ($methods !== []) { + $reflection = new \ReflectionClass(ContentService::class); + $existingMethods = array_values(array_filter($methods, static fn (string $method): bool => $reflection->hasMethod($method))); + $nonExistingMethods = array_values(array_diff($methods, $existingMethods)); + if ($existingMethods !== []) { + $builder->onlyMethods($existingMethods); + } + if ($nonExistingMethods !== []) { + $builder->addMethods($nonExistingMethods); + } + } else { + $builder->onlyMethods([]); + } + + $this->partlyMockedContentService = $builder->getMock(); } return $this->partlyMockedContentService; diff --git a/tests/lib/Repository/Service/Mock/PermissionTest.php b/tests/lib/Repository/Service/Mock/PermissionTest.php index 268d378e1a..d3938bc737 100644 --- a/tests/lib/Repository/Service/Mock/PermissionTest.php +++ b/tests/lib/Repository/Service/Mock/PermissionTest.php @@ -21,6 +21,7 @@ use Ibexa\Core\Repository\Repository as CoreRepository; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\DataProvider; /** * Mock test case for PermissionResolver. @@ -29,19 +30,19 @@ */ class PermissionTest extends BaseServiceMockTest { - public function providerForTestHasAccessReturnsTrue() + public static function providerForTestHasAccessReturnsTrue() { return [ [ [ - 25 => $this->createRole( + 25 => self::createRole( [ ['dummy-module', 'dummy-function', 'dummy-limitation'], ['dummy-module2', 'dummy-function2', 'dummy-limitation2'], ], 25 ), - 26 => $this->createRole( + 26 => self::createRole( [ ['*', 'dummy-function', 'dummy-limitation'], ], @@ -63,7 +64,7 @@ public function providerForTestHasAccessReturnsTrue() ], [ [ - 27 => $this->createRole( + 27 => self::createRole( [ ['dummy-module', '*', 'dummy-limitation'], ], @@ -80,7 +81,7 @@ public function providerForTestHasAccessReturnsTrue() ], [ [ - 28 => $this->createRole( + 28 => self::createRole( [ ['dummy-module', 'dummy-function', '*'], ], @@ -100,9 +101,8 @@ public function providerForTestHasAccessReturnsTrue() /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsTrue */ + #[DataProvider('providerForTestHasAccessReturnsTrue')] public function testHasAccessReturnsTrue(array $roles, array $roleAssignments) { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ @@ -115,26 +115,20 @@ public function testHasAccessReturnsTrue(array $roles, array $roleAssignments) ->with(self::equalTo(10), self::equalTo(true)) ->will(self::returnValue($roleAssignments)); - foreach ($roleAssignments as $at => $roleAssignment) { - $userHandlerMock - ->expects(self::at($at + 1)) - ->method('loadRole') - ->with($roleAssignment->roleId) - ->will(self::returnValue($roles[$roleAssignment->roleId])); - } + $this->mockLoadRoleSequence($userHandlerMock, $roleAssignments, $roles); $result = $mockedService->hasAccess('dummy-module', 'dummy-function'); self::assertTrue($result); } - public function providerForTestHasAccessReturnsFalse() + public static function providerForTestHasAccessReturnsFalse() { return [ [[], []], [ [ - 29 => $this->createRole( + 29 => self::createRole( [ ['dummy-module', 'dummy-function', 'dummy-limitation'], ], @@ -151,7 +145,7 @@ public function providerForTestHasAccessReturnsFalse() ], [ [ - 30 => $this->createRole( + 30 => self::createRole( [ ['dummy-module', '*', 'dummy-limitation'], ], @@ -171,9 +165,8 @@ public function providerForTestHasAccessReturnsFalse() /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsFalse */ + #[DataProvider('providerForTestHasAccessReturnsFalse')] public function testHasAccessReturnsFalse(array $roles, array $roleAssignments) { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ @@ -186,13 +179,7 @@ public function testHasAccessReturnsFalse(array $roles, array $roleAssignments) ->with(self::equalTo(10), self::equalTo(true)) ->will(self::returnValue($roleAssignments)); - foreach ($roleAssignments as $at => $roleAssignment) { - $userHandlerMock - ->expects(self::at($at + 1)) - ->method('loadRole') - ->with($roleAssignment->roleId) - ->will(self::returnValue($roles[$roleAssignment->roleId])); - } + $this->mockLoadRoleSequence($userHandlerMock, $roleAssignments, $roles); $result = $service->hasAccess('dummy-module2', 'dummy-function2'); @@ -230,12 +217,12 @@ static function (Repository $repo) { /** * @return array */ - public function providerForTestHasAccessReturnsPermissionSets() + public static function providerForTestHasAccessReturnsPermissionSets() { return [ [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['dummy-module', 'dummy-function', 'test-limitation'], ], @@ -252,13 +239,13 @@ public function providerForTestHasAccessReturnsPermissionSets() ], [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['dummy-module', 'dummy-function', 'test-limitation'], ], 31 ), - 32 => $this->createRole( + 32 => self::createRole( [ ['dummy-module', 'dummy-function', 'test-limitation2'], ], @@ -283,9 +270,8 @@ public function providerForTestHasAccessReturnsPermissionSets() /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsPermissionSets */ + #[DataProvider('providerForTestHasAccessReturnsPermissionSets')] public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssignments) { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ @@ -301,32 +287,21 @@ public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssi $userHandlerMock ->expects(self::once()) ->method('loadRoleAssignmentsByGroupId') - ->with(self::isType('integer'), self::equalTo(true)) + ->with(self::isInt(), self::equalTo(true)) ->will(self::returnValue($roleAssignments)); - foreach ($roleAssignments as $at => $roleAssignment) { - $userHandlerMock - ->expects(self::at($at + 1)) - ->method('loadRole') - ->with($roleAssignment->roleId) - ->will(self::returnValue($roles[$roleAssignment->roleId])); - } + $this->mockLoadRoleSequence($userHandlerMock, $roleAssignments, $roles); $permissionSets = []; - $count = 0; + $expectedBuildDomainPolicyObjectCalls = []; /* @var $roleAssignments \Ibexa\Contracts\Core\Persistence\User\RoleAssignment[] */ foreach ($roleAssignments as $i => $roleAssignment) { $permissionSet = ['limitation' => null]; foreach ($roles[$roleAssignment->roleId]->policies as $k => $policy) { $policyName = 'policy-' . $i . '-' . $k; - $return = self::returnValue($policyName); $permissionSet['policies'][] = $policyName; - $roleDomainMapper - ->expects(self::at($count++)) - ->method('buildDomainPolicyObject') - ->with($policy) - ->will($return); + $expectedBuildDomainPolicyObjectCalls[] = [$policy, $policyName]; } if (!empty($permissionSet['policies'])) { @@ -334,6 +309,19 @@ public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssi } } + if ($expectedBuildDomainPolicyObjectCalls !== []) { + $buildDomainPolicyObjectMatcher = self::exactly(count($expectedBuildDomainPolicyObjectCalls)); + $roleDomainMapper + ->expects($buildDomainPolicyObjectMatcher) + ->method('buildDomainPolicyObject') + ->willReturnCallback(static function ($policy) use ($buildDomainPolicyObjectMatcher, $expectedBuildDomainPolicyObjectCalls) { + [$expectedPolicy, $policyName] = $expectedBuildDomainPolicyObjectCalls[$buildDomainPolicyObjectMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedPolicy, $policy); + + return $policyName; + }); + } + /* @var $repositoryMock \Ibexa\Core\Repository\Repository */ self::assertEquals( $permissionSets, @@ -344,12 +332,12 @@ public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssi /** * @return array */ - public function providerForTestHasAccessReturnsLimitationNotFoundException() + public static function providerForTestHasAccessReturnsLimitationNotFoundException() { return [ [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['dummy-module', 'dummy-function', 'notfound'], ], @@ -366,13 +354,13 @@ public function providerForTestHasAccessReturnsLimitationNotFoundException() ], [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['dummy-module', 'dummy-function', 'test-limitation'], ], 31 ), - 32 => $this->createRole( + 32 => self::createRole( [ ['dummy-module', 'dummy-function', 'notfound'], ], @@ -397,9 +385,8 @@ public function providerForTestHasAccessReturnsLimitationNotFoundException() /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsLimitationNotFoundException */ + #[DataProvider('providerForTestHasAccessReturnsLimitationNotFoundException')] public function testHasAccessReturnsLimitationNotFoundException(array $roles, array $roleAssignments) { $this->expectException(LimitationNotFoundException::class); @@ -417,54 +404,57 @@ public function testHasAccessReturnsLimitationNotFoundException(array $roles, ar $userHandlerMock ->expects(self::once()) ->method('loadRoleAssignmentsByGroupId') - ->with(self::isType('integer'), self::equalTo(true)) + ->with(self::isInt(), self::equalTo(true)) ->will(self::returnValue($roleAssignments)); - foreach ($roleAssignments as $at => $roleAssignment) { - $userHandlerMock - ->expects(self::at($at + 1)) - ->method('loadRole') - ->with($roleAssignment->roleId) - ->will(self::returnValue($roles[$roleAssignment->roleId])); - } + $this->mockLoadRoleSequence($userHandlerMock, $roleAssignments, $roles); - $count = 0; + $expectedBuildDomainPolicyObjectCalls = []; /* @var $roleAssignments \Ibexa\Contracts\Core\Persistence\User\RoleAssignment[] */ foreach ($roleAssignments as $i => $roleAssignment) { $permissionSet = ['limitation' => null]; foreach ($roles[$roleAssignment->roleId]->policies as $k => $policy) { $policyName = 'policy-' . $i . '-' . $k; if ($policy->limitations === 'notfound') { - $return = self::throwException(new LimitationNotFoundException('notfound')); + $expectedBuildDomainPolicyObjectCalls[] = [$policy, null]; } else { - $return = self::returnValue($policyName); $permissionSet['policies'][] = $policyName; + $expectedBuildDomainPolicyObjectCalls[] = [$policy, $policyName]; } - $roleDomainMapper - ->expects(self::at($count++)) - ->method('buildDomainPolicyObject') - ->with($policy) - ->will($return); - if ($policy->limitations === 'notfound') { break 2; // no more execution after exception } } } + $buildDomainPolicyObjectMatcher = self::exactly(count($expectedBuildDomainPolicyObjectCalls)); + $roleDomainMapper + ->expects($buildDomainPolicyObjectMatcher) + ->method('buildDomainPolicyObject') + ->willReturnCallback(static function ($policy) use ($buildDomainPolicyObjectMatcher, $expectedBuildDomainPolicyObjectCalls) { + [$expectedPolicy, $policyName] = $expectedBuildDomainPolicyObjectCalls[$buildDomainPolicyObjectMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedPolicy, $policy); + + if ($policyName === null) { + throw new LimitationNotFoundException('notfound'); + } + + return $policyName; + }); + $permissionResolverMock->hasAccess('dummy-module', 'dummy-function'); } /** * @return array */ - public function providerForTestHasAccessReturnsInvalidArgumentValueException() + public static function providerForTestHasAccessReturnsInvalidArgumentValueException() { return [ [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['test-module', 'test-function', '*'], ], @@ -481,13 +471,13 @@ public function providerForTestHasAccessReturnsInvalidArgumentValueException() ], [ [ - 31 => $this->createRole( + 31 => self::createRole( [ ['other-module', 'test-function', '*'], ], 31 ), - 32 => $this->createRole( + 32 => self::createRole( [ ['test-module', 'other-function', '*'], ], @@ -512,9 +502,8 @@ public function providerForTestHasAccessReturnsInvalidArgumentValueException() /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsInvalidArgumentValueException */ + #[DataProvider('providerForTestHasAccessReturnsInvalidArgumentValueException')] public function testHasAccessReturnsInvalidArgumentValueException(array $roles, array $roleAssignments) { $this->expectException(InvalidArgumentValue::class); @@ -530,12 +519,12 @@ public function testHasAccessReturnsInvalidArgumentValueException(array $roles, } } - public function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation() + public static function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation() { return [ [ [ - 32 => $this->createRole( + 32 => self::createRole( [ [ 'dummy-module', 'dummy-function', [ @@ -560,7 +549,7 @@ public function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation( ], [ [ - 33 => $this->createRole([['*', '*', '*']], 33), + 33 => self::createRole([['*', '*', '*']], 33), ], [ new RoleAssignment( @@ -577,9 +566,8 @@ public function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation( /** * Test for the hasAccess() method. - * - * @dataProvider providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation */ + #[DataProvider('providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation')] public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $roles, array $roleAssignments) { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ @@ -597,40 +585,28 @@ public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $role $userHandlerMock ->expects(self::once()) ->method('loadRoleAssignmentsByGroupId') - ->with(self::isType('integer'), self::equalTo(true)) + ->with(self::isInt(), self::equalTo(true)) ->will(self::returnValue($roleAssignments)); - foreach ($roleAssignments as $at => $roleAssignment) { - $userHandlerMock - ->expects(self::at($at + 1)) - ->method('loadRole') - ->with($roleAssignment->roleId) - ->will(self::returnValue($roles[$roleAssignment->roleId])); - } + $this->mockLoadRoleSequence($userHandlerMock, $roleAssignments, $roles); $permissionSets = []; + $expectedBuildDomainPolicyObjectCalls = []; + $expectedBuildValueCalls = []; /** @var $roleAssignments \Ibexa\Contracts\Core\Persistence\User\RoleAssignment[] */ foreach ($roleAssignments as $i => $roleAssignment) { $permissionSet = []; foreach ($roles[$roleAssignment->roleId]->policies as $k => $policy) { $policyName = "policy-{$i}-{$k}"; $permissionSet['policies'][] = $policyName; - $roleDomainMapper - ->expects(self::at($k)) - ->method('buildDomainPolicyObject') - ->with($policy) - ->will(self::returnValue($policyName)); + $expectedBuildDomainPolicyObjectCalls[] = [$policy, $policyName]; } $limitation = $this->createMock(Limitation::class); $limitation->method('getIdentifier')->willReturn("limitation-{$i}"); $permissionSet['limitation'] = $limitation; - $limitationTypeMock - ->expects(self::at($i)) - ->method('buildValue') - ->with($roleAssignment->values) - ->will(self::returnValue($permissionSet['limitation'])); + $expectedBuildValueCalls[] = [$roleAssignment->values, $permissionSet['limitation']]; $limitationService ->expects(self::any()) ->method('getLimitationType') @@ -640,12 +616,67 @@ public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $role $permissionSets[] = $permissionSet; } + if ($expectedBuildDomainPolicyObjectCalls !== []) { + $buildDomainPolicyObjectMatcher = self::exactly(count($expectedBuildDomainPolicyObjectCalls)); + $roleDomainMapper + ->expects($buildDomainPolicyObjectMatcher) + ->method('buildDomainPolicyObject') + ->willReturnCallback(static function ($policy) use ($buildDomainPolicyObjectMatcher, $expectedBuildDomainPolicyObjectCalls) { + [$expectedPolicy, $policyName] = $expectedBuildDomainPolicyObjectCalls[$buildDomainPolicyObjectMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedPolicy, $policy); + + return $policyName; + }); + } + + if ($expectedBuildValueCalls !== []) { + $buildValueMatcher = self::exactly(count($expectedBuildValueCalls)); + $limitationTypeMock + ->expects($buildValueMatcher) + ->method('buildValue') + ->willReturnCallback(static function ($values) use ($buildValueMatcher, $expectedBuildValueCalls) { + [$expectedValues, $limitation] = $expectedBuildValueCalls[$buildValueMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedValues, $values); + + return $limitation; + }); + } + self::assertEquals( $permissionSets, $permissionResolverMock->hasAccess('dummy-module', 'dummy-function') ); } + /** + * Sets up the expectation that $userHandlerMock->loadRole() is called once per + * $roleAssignment, in order, each returning the matching entry from $roles. + * + * @param \PHPUnit\Framework\MockObject\MockObject $userHandlerMock + * @param \Ibexa\Contracts\Core\Persistence\User\RoleAssignment[] $roleAssignments + * @param \Ibexa\Contracts\Core\Persistence\User\Role[] $roles + */ + private function mockLoadRoleSequence($userHandlerMock, array $roleAssignments, array $roles): void + { + if ($roleAssignments === []) { + $userHandlerMock->expects(self::never())->method('loadRole'); + + return; + } + + $roleAssignmentList = array_values($roleAssignments); + $matcher = self::exactly(count($roleAssignmentList)); + $userHandlerMock + ->expects($matcher) + ->method('loadRole') + ->willReturnCallback(static function ($roleId, $status = Role::STATUS_DEFINED) use ($matcher, $roleAssignmentList, $roles) { + $roleAssignment = $roleAssignmentList[$matcher->numberOfInvocations() - 1]; + self::assertSame($roleAssignment->roleId, $roleId); + + return $roles[$roleAssignment->roleId]; + }); + } + /** * Returns Role stub. * @@ -654,7 +685,7 @@ public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $role * * @return \Ibexa\Contracts\Core\Persistence\User\Role */ - private function createRole(array $policiesData, $roleId = null) + private static function createRole(array $policiesData, $roleId = null) { $policies = []; foreach ($policiesData as $policyData) { @@ -675,7 +706,7 @@ private function createRole(array $policiesData, $roleId = null) ); } - public function providerForTestCanUserSimple() + public static function providerForTestCanUserSimple() { return [ [true, true], @@ -688,9 +719,8 @@ public function providerForTestCanUserSimple() * Test for the canUser() method. * * Tests execution paths with permission sets equaling to boolean value or empty array. - * - * @dataProvider providerForTestCanUserSimple */ + #[DataProvider('providerForTestCanUserSimple')] public function testCanUserSimple($permissionSets, $result) { $permissionResolverMock = $this->getPermissionResolverMock(['hasAccess']); @@ -725,9 +755,9 @@ public function testCanUserWithoutLimitations() ); $policyMock = $this->getMockBuilder(Policy::class) - ->setMethods(['getLimitations']) ->setConstructorArgs([]) ->disableOriginalConstructor() + ->addMethods(['getLimitations']) ->getMock(); $policyMock @@ -782,8 +812,8 @@ private function getPermissionSetsMock() ->will(self::returnValue('test-policy-limitation-identifier')); $policyMock = $this->getMockBuilder(Policy::class) - ->setMethods(['getLimitations']) ->setConstructorArgs([]) + ->addMethods(['getLimitations']) ->getMock(); $policyMock @@ -806,7 +836,7 @@ private function getPermissionSetsMock() * * @return array */ - public function providerForTestCanUserComplex() + public static function providerForTestCanUserComplex() { return [ [ @@ -886,13 +916,12 @@ public function providerForTestCanUserComplex() * Test for the canUser() method. * * Tests execution paths with permission sets containing limitations. - * - * @dataProvider providerForTestCanUserComplex */ + #[DataProvider('providerForTestCanUserComplex')] public function testCanUserComplex(array $roleLimitationEvaluations, array $policyLimitationEvaluations, $userCan) { /** @var $valueObject \Ibexa\Contracts\Core\Repository\Values\ValueObject */ - $valueObject = $this->createMock(ValueObject::class); + $valueObject = self::createStub(ValueObject::class); $limitationServiceMock = $this->getLimitationServiceMock(); $permissionResolverMock = $this->getPermissionResolverMock( [ @@ -914,7 +943,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli ->method('getCurrentUserReference') ->will(self::returnValue(new UserReference(14))); - $invocation = 0; + $expectedGetLimitationTypeCalls = []; for ($i = 0; $i < count($permissionSets); ++$i) { $limitation = $this->createMock(Type::class); $limitation @@ -922,11 +951,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli ->method('evaluate') ->with($permissionSets[$i]['limitation'], $userRef, $valueObject, [$valueObject]) ->will(self::returnValue($roleLimitationEvaluations[$i])); - $limitationServiceMock - ->expects(self::at($invocation++)) - ->method('getLimitationType') - ->with('test-role-limitation-identifier') - ->will(self::returnValue($limitation)); + $expectedGetLimitationTypeCalls[] = ['test-role-limitation-identifier', $limitation]; if (!$roleLimitationEvaluations[$i]) { continue; @@ -944,11 +969,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli ->method('evaluate') ->with($limitations[$k], $userRef, $valueObject, [$valueObject]) ->will(self::returnValue($policyLimitationEvaluations[$i][$j][$k])); - $limitationServiceMock - ->expects(self::at($invocation++)) - ->method('getLimitationType') - ->with('test-policy-limitation-identifier') - ->will(self::returnValue($limitation)); + $expectedGetLimitationTypeCalls[] = ['test-policy-limitation-identifier', $limitation]; if (!$policyLimitationEvaluations[$i][$j][$k]) { $limitationsPass = false; @@ -963,6 +984,17 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli } } + $getLimitationTypeMatcher = self::exactly(count($expectedGetLimitationTypeCalls)); + $limitationServiceMock + ->expects($getLimitationTypeMatcher) + ->method('getLimitationType') + ->willReturnCallback(static function ($identifier) use ($getLimitationTypeMatcher, $expectedGetLimitationTypeCalls) { + [$expectedIdentifier, $limitation] = $expectedGetLimitationTypeCalls[$getLimitationTypeMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedIdentifier, $identifier); + + return $limitation; + }); + self::assertEquals( $userCan, $permissionResolverMock->canUser( @@ -1019,9 +1051,14 @@ protected function getPermissionResolverMock($methods = []) ->with('anonymous_user_id') ->willReturn(10); - $this->permissionResolverMock = $this - ->getMockBuilder(PermissionResolver::class) - ->setMethods($methods) + $builder = $this + ->getMockBuilder(PermissionResolver::class); + if ($methods === null) { + $builder->onlyMethods([]); + } elseif ($methods !== []) { + $builder->onlyMethods($methods); + } + $this->permissionResolverMock = $builder ->setConstructorArgs( [ $this->getRoleDomainMapperMock(), diff --git a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php index 274a03565c..64c5e3ff24 100644 --- a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php +++ b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php @@ -20,14 +20,14 @@ use Ibexa\Core\Repository\Values\Content\Relation as RelationValue; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; -/** - * @covers \Ibexa\Core\Repository\Helper\RelationProcessor - */ +#[CoversClass(RelationProcessor::class)] class RelationProcessorTest extends BaseServiceMockTest { - public function providerForTestAppendRelations() + public static function providerForTestAppendRelations() { return [ [ @@ -161,35 +161,44 @@ public function providerForTestAppendRelations() /** * Test for the appendFieldRelations() method. - * - * @dataProvider providerForTestAppendRelations */ + #[DataProvider('providerForTestAppendRelations')] public function testAppendFieldRelations(array $fieldRelations, array $expected) { $locationHandler = $this->getPersistenceMock()->locationHandler(); $relationProcessor = $this->getPartlyMockedRelationProcessor(); $fieldValueMock = $this->getMockForAbstractClass(Value::class); $fieldTypeMock = $this->createMock(FieldType::class); - $locationCallCount = 0; $fieldTypeMock->expects(self::once()) ->method('getRelations') ->with(self::equalTo($fieldValueMock)) ->will(self::returnValue($fieldRelations)); + $expectedLocationIds = []; $this->assertLocationHandlerExpectation( - $locationHandler, $fieldRelations, RelationType::LINK->value, - $locationCallCount + $expectedLocationIds ); $this->assertLocationHandlerExpectation( - $locationHandler, $fieldRelations, RelationType::EMBED->value, - $locationCallCount + $expectedLocationIds ); + if ($expectedLocationIds !== []) { + $loadMatcher = self::exactly(count($expectedLocationIds)); + $locationHandler->expects($loadMatcher) + ->method('load') + ->willReturnCallback(static function ($locationId) use ($loadMatcher, $expectedLocationIds): Location { + $expectedLocationId = $expectedLocationIds[$loadMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedLocationId, $locationId); + + return new Location(['contentId' => $expectedLocationId + 100]); + }); + } + $relations = []; $locationIdToContentIdMapping = []; @@ -207,22 +216,11 @@ public function testAppendFieldRelations(array $fieldRelations, array $expected) /** * Assert loading Locations to find Content id in {@link RelationProcessor::appendFieldRelations()} method. */ - protected function assertLocationHandlerExpectation($locationHandlerMock, $fieldRelations, $type, &$callCounter) + protected function assertLocationHandlerExpectation($fieldRelations, $type, array &$expectedLocationIds) { if (isset($fieldRelations[$type]['locationIds'])) { foreach ($fieldRelations[$type]['locationIds'] as $locationId) { - $locationHandlerMock->expects(self::at($callCounter)) - ->method('load') - ->with(self::equalTo($locationId)) - ->will( - self::returnValue( - new Location( - ['contentId' => $locationId + 100] - ) - ) - ); - - ++$callCounter; + $expectedLocationIds[] = $locationId; } } } @@ -351,15 +349,20 @@ public function testProcessFieldRelationsNoChanges() $contentHandlerMock = $this->getPersistenceMockHandler('Content\\Handler'); $contentTypeMock = $this->createMock(ContentType::class); - $contentTypeMock->expects(self::at(0)) + $getFieldDefinitionMatcher = self::exactly(2); + $contentTypeMock->expects($getFieldDefinitionMatcher) ->method('getFieldDefinition') - ->with(self::equalTo('identifier42')) - ->will(self::returnValue(new FieldDefinition(['id' => 42]))); + ->willReturnCallback(static function ($identifier) use ($getFieldDefinitionMatcher): FieldDefinition { + if ($getFieldDefinitionMatcher->numberOfInvocations() === 1) { + self::assertSame('identifier42', $identifier); - $contentTypeMock->expects(self::at(1)) - ->method('getFieldDefinition') - ->with(self::equalTo('identifier43')) - ->will(self::returnValue(new FieldDefinition(['id' => 43]))); + return new FieldDefinition(['id' => 42]); + } + + self::assertSame('identifier43', $identifier); + + return new FieldDefinition(['id' => 43]); + }); $contentHandlerMock->expects(self::never())->method('addRelation'); $contentHandlerMock->expects(self::never())->method('removeRelation'); @@ -455,61 +458,53 @@ public function testProcessFieldRelationsAddsRelations() $contentTypeMock->expects(self::never())->method('getFieldDefinition'); $contentHandlerMock->expects(self::never())->method('removeRelation'); - $contentHandlerMock->expects(self::at(0)) - ->method('addRelation') - ->with( - new CreateStruct( - [ - 'sourceContentId' => 24, - 'sourceContentVersionNo' => 2, - 'sourceFieldDefinitionId' => null, - 'destinationContentId' => 17, - 'type' => RelationType::EMBED->value, - ] - ) - ); - - $contentHandlerMock->expects(self::at(1)) - ->method('addRelation') - ->with( - new CreateStruct( - [ - 'sourceContentId' => 24, - 'sourceContentVersionNo' => 2, - 'sourceFieldDefinitionId' => null, - 'destinationContentId' => 17, - 'type' => RelationType::LINK->value, - ] - ) - ); - - $contentHandlerMock->expects(self::at(2)) - ->method('addRelation') - ->with( - new CreateStruct( - [ - 'sourceContentId' => 24, - 'sourceContentVersionNo' => 2, - 'sourceFieldDefinitionId' => 42, - 'destinationContentId' => 13, - 'type' => RelationType::FIELD->value, - ] - ) - ); - - $contentHandlerMock->expects(self::at(3)) + $expectedAddRelationCreateStructs = [ + new CreateStruct( + [ + 'sourceContentId' => 24, + 'sourceContentVersionNo' => 2, + 'sourceFieldDefinitionId' => null, + 'destinationContentId' => 17, + 'type' => RelationType::EMBED->value, + ] + ), + new CreateStruct( + [ + 'sourceContentId' => 24, + 'sourceContentVersionNo' => 2, + 'sourceFieldDefinitionId' => null, + 'destinationContentId' => 17, + 'type' => RelationType::LINK->value, + ] + ), + new CreateStruct( + [ + 'sourceContentId' => 24, + 'sourceContentVersionNo' => 2, + 'sourceFieldDefinitionId' => 42, + 'destinationContentId' => 13, + 'type' => RelationType::FIELD->value, + ] + ), + new CreateStruct( + [ + 'sourceContentId' => 24, + 'sourceContentVersionNo' => 2, + 'sourceFieldDefinitionId' => 44, + 'destinationContentId' => 18, + 'type' => RelationType::ASSET->value, + ] + ), + ]; + $addRelationMatcher = self::exactly(count($expectedAddRelationCreateStructs)); + $contentHandlerMock->expects($addRelationMatcher) ->method('addRelation') - ->with( - new CreateStruct( - [ - 'sourceContentId' => 24, - 'sourceContentVersionNo' => 2, - 'sourceFieldDefinitionId' => 44, - 'destinationContentId' => 18, - 'type' => RelationType::ASSET->value, - ] - ) - ); + ->willReturnCallback(static function ($createStruct) use ($addRelationMatcher, $expectedAddRelationCreateStructs): void { + self::assertEquals( + $expectedAddRelationCreateStructs[$addRelationMatcher->numberOfInvocations() - 1], + $createStruct + ); + }); $relationProcessor->processFieldRelations( $inputRelations, @@ -568,46 +563,36 @@ public function testProcessFieldRelationsRemovesRelations() $contentHandlerMock->expects(self::never())->method('addRelation'); - $contentTypeMock->expects(self::at(0)) + $getFieldDefinitionMatcher = self::exactly(2); + $contentTypeMock->expects($getFieldDefinitionMatcher) ->method('getFieldDefinition') - ->with(self::equalTo('identifier42')) - ->will(self::returnValue(new FieldDefinition(['id' => 42]))); + ->willReturnCallback(static function ($identifier) use ($getFieldDefinitionMatcher): FieldDefinition { + if ($getFieldDefinitionMatcher->numberOfInvocations() === 1) { + self::assertSame('identifier42', $identifier); - $contentTypeMock->expects(self::at(1)) - ->method('getFieldDefinition') - ->with(self::equalTo('identifier44')) - ->will(self::returnValue(new FieldDefinition(['id' => 44]))); + return new FieldDefinition(['id' => 42]); + } - $contentHandlerMock->expects(self::at(0)) - ->method('removeRelation') - ->with( - self::equalTo(7), - self::equalTo(RelationType::EMBED->value), - self::equalTo(16) - ); - - $contentHandlerMock->expects(self::at(1)) - ->method('removeRelation') - ->with( - self::equalTo(7), - self::equalTo(RelationType::LINK->value), - self::equalTo(16) - ); + self::assertSame('identifier44', $identifier); - $contentHandlerMock->expects(self::at(2)) - ->method('removeRelation') - ->with( - self::equalTo(4), - self::equalTo(RelationType::FIELD->value), - self::equalTo(13) - ); + return new FieldDefinition(['id' => 44]); + }); - $contentHandlerMock->expects(self::at(3)) + $expectedRemoveRelationCalls = [ + [7, RelationType::EMBED->value, 16], + [7, RelationType::LINK->value, 16], + [4, RelationType::FIELD->value, 13], + [9, RelationType::FIELD->value, 18], + ]; + $removeRelationMatcher = self::exactly(count($expectedRemoveRelationCalls)); + $contentHandlerMock->expects($removeRelationMatcher) ->method('removeRelation') - ->with( - self::equalTo(9), - self::equalTo(RelationType::FIELD->value) - ); + ->willReturnCallback(static function ($relationId, $type, $destinationContentId = null) use ($removeRelationMatcher, $expectedRemoveRelationCalls): void { + [$expectedRelationId, $expectedType, $expectedDestinationContentId] = $expectedRemoveRelationCalls[$removeRelationMatcher->numberOfInvocations() - 1]; + self::assertSame($expectedRelationId, $relationId); + self::assertSame($expectedType, $type); + self::assertSame($expectedDestinationContentId, $destinationContentId); + }); $relationProcessor->processFieldRelations( $inputRelations, @@ -629,17 +614,19 @@ public function testProcessFieldRelationsWhenRelationFieldNoLongerExists() ]; $contentTypeMock = $this->createMock(ContentType::class); + $getFieldDefinitionMatcher = self::exactly(2); $contentTypeMock - ->expects(self::at(0)) + ->expects($getFieldDefinitionMatcher) ->method('getFieldDefinition') - ->with(self::equalTo('identifier43')) - ->will(self::returnValue(null)); + ->willReturnCallback(static function ($identifier) use ($getFieldDefinitionMatcher): ?FieldDefinition { + if ($getFieldDefinitionMatcher->numberOfInvocations() === 1) { + self::assertSame('identifier43', $identifier); + } else { + self::assertSame('identifier44', $identifier); + } - $contentTypeMock - ->expects(self::at(1)) - ->method('getFieldDefinition') - ->with(self::equalTo('identifier44')) - ->will(self::returnValue(null)); + return null; + }); $relationProcessor = $this->getPartlyMockedRelationProcessor(); $relationProcessor->processFieldRelations([], 24, 2, $contentTypeMock, $existingRelations); @@ -671,12 +658,12 @@ protected function getStubbedRelation($id, $type, $fieldDefinitionId, $contentId protected function getPartlyMockedRelationProcessor(?array $methods = null) { return $this->getMockBuilder(RelationProcessor::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getPersistenceMock(), ] ) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } diff --git a/tests/lib/Repository/Service/Mock/RepositoryTest.php b/tests/lib/Repository/Service/Mock/RepositoryTest.php index f098ed8858..2f78ce2844 100644 --- a/tests/lib/Repository/Service/Mock/RepositoryTest.php +++ b/tests/lib/Repository/Service/Mock/RepositoryTest.php @@ -7,17 +7,20 @@ namespace Ibexa\Tests\Core\Repository\Service\Mock; +use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; /** * Mock test case for Repository. */ +#[CoversMethod(Repository::class, 'beginTransaction')] +#[CoversMethod(Repository::class, 'commit')] +#[CoversMethod(Repository::class, 'rollback')] class RepositoryTest extends BaseServiceMockTest { /** * Test for the beginTransaction() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::beginTransaction */ public function testBeginTransaction() { @@ -35,8 +38,6 @@ public function testBeginTransaction() /** * Test for the commit() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::commit */ public function testCommit() { @@ -54,8 +55,6 @@ public function testCommit() /** * Test for the commit() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::commit */ public function testCommitThrowsRuntimeException() { @@ -77,8 +76,6 @@ public function testCommitThrowsRuntimeException() /** * Test for the rollback() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::rollback */ public function testRollback() { @@ -96,8 +93,6 @@ public function testRollback() /** * Test for the rollback() method. - * - * @covers \Ibexa\Contracts\Core\Repository\Repository::rollback */ public function testRollbackThrowsRuntimeException() { diff --git a/tests/lib/Repository/Service/Mock/RoleTest.php b/tests/lib/Repository/Service/Mock/RoleTest.php index d3123bb412..1f8f506544 100644 --- a/tests/lib/Repository/Service/Mock/RoleTest.php +++ b/tests/lib/Repository/Service/Mock/RoleTest.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\LimitationValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Contracts\Core\Repository\RoleService as CoveredRoleService; use Ibexa\Contracts\Core\Repository\UserService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\RoleLimitation; use Ibexa\Contracts\Core\Repository\Values\User\PolicyCreateStruct; @@ -30,12 +31,12 @@ use Ibexa\Core\Repository\Permission\LimitationService; use Ibexa\Core\Repository\RoleService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; -/** - * @covers \Ibexa\Contracts\Core\Repository\RoleService - * @covers \Ibexa\Core\Repository\Permission\LimitationService::validateLimitations - * @covers \Ibexa\Core\Repository\Permission\LimitationService::validateLimitation - */ +#[CoversClass(CoveredRoleService::class)] +#[CoversMethod(LimitationService::class, 'validateLimitations')] +#[CoversMethod(LimitationService::class, 'validateLimitation')] class RoleTest extends BaseServiceMockTest { /** @@ -196,7 +197,7 @@ public function testUpdatePolicyThrowsLimitationValidationException() $roleServiceMock = $this->getPartlyMockedRoleService(['loadRole'], $settings); - $roleDraftMock = $this->createMock(RoleDraft::class); + $roleDraftMock = self::createStub(RoleDraft::class); $policyDraftMock = $this->createMock(PolicyDraft::class); $policyUpdateStructMock = $this->createMock(PolicyUpdateStruct::class); @@ -249,9 +250,9 @@ public function testAssignRoleToUserThrowsUnauthorizedException() $roleServiceMock = $this->getPartlyMockedRoleService(); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\User $userMock */ - $userMock = $this->createMock(User::class); + $userMock = self::createStub(User::class); $permissionResolverMock = $this->getPermissionResolverMock(); $permissionResolverMock->expects(self::once()) @@ -295,9 +296,9 @@ public function testAssignRoleToUserThrowsLimitationValidationException() $roleServiceMock = $this->getPartlyMockedRoleService(null, $settings); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\User $userMock */ - $userMock = $this->createMock(User::class); + $userMock = self::createStub(User::class); $permissionResolverMock = $this->getPermissionResolverMock(); $permissionResolverMock->expects(self::once()) @@ -322,9 +323,9 @@ public function testAssignRoleToUserThrowsBadStateException() $roleServiceMock = $this->getPartlyMockedRoleService(); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\User $userMock */ - $userMock = $this->createMock(User::class); + $userMock = self::createStub(User::class); $limitationMock = $this->createMock(RoleLimitation::class); $limitationMock->expects(self::once()) @@ -564,9 +565,9 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedException() $repository = $this->getRepositoryMock(); $roleServiceMock = $this->getPartlyMockedRoleService(); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\UserGroup $userGroupMock */ - $userGroupMock = $this->createMock(UserGroup::class); + $userGroupMock = self::createStub(UserGroup::class); $permissionResolverMock = $this->getPermissionResolverMock(); $permissionResolverMock->expects(self::once()) @@ -611,9 +612,9 @@ public function testAssignRoleToUserGroupThrowsLimitationValidationException() $repository = $this->getRepositoryMock(); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\UserGroup $userGroupMock */ - $userGroupMock = $this->createMock(UserGroup::class); + $userGroupMock = self::createStub(UserGroup::class); $permissionResolverMock = $this->getPermissionResolverMock(); $permissionResolverMock->expects(self::once()) @@ -639,9 +640,9 @@ public function testAssignRoleGroupToUserThrowsBadStateException() $repository = $this->getRepositoryMock(); $roleServiceMock = $this->getPartlyMockedRoleService(); /** @var \Ibexa\Contracts\Core\Repository\Values\User\Role $roleMock */ - $roleMock = $this->createMock(Role::class); + $roleMock = self::createStub(Role::class); /** @var \Ibexa\Contracts\Core\Repository\Values\User\UserGroup $userGroupMock */ - $userGroupMock = $this->createMock(UserGroup::class); + $userGroupMock = self::createStub(UserGroup::class); $limitationMock = $this->createMock(RoleLimitation::class); $limitationMock->expects(self::once()) @@ -887,7 +888,7 @@ public function testRemovePolicyByRoleDraftThrowsUnauthorizedException() { $this->expectException(UnauthorizedException::class); - $roleDraftMock = $this->createMock(RoleDraft::class); + $roleDraftMock = self::createStub(RoleDraft::class); $roleDomainMapper = $this->createMock(RoleDomainMapper::class); $roleDomainMapper ->method('buildDomainRoleObject') @@ -1061,13 +1062,11 @@ protected function getPartlyMockedRoleService( ); if ($roleDomainMapper === null) { $roleDomainMapper = $this->getMockBuilder(RoleDomainMapper::class) - ->setMethods([]) ->setConstructorArgs([$limitationService]) ->getMock(); } $this->partlyMockedRoleService = $this->getMockBuilder(RoleService::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getRepositoryMock(), @@ -1077,6 +1076,7 @@ protected function getPartlyMockedRoleService( $settings, ] ) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } diff --git a/tests/lib/Repository/Service/Mock/SearchTest.php b/tests/lib/Repository/Service/Mock/SearchTest.php index 51520b1b54..9c079382f0 100644 --- a/tests/lib/Repository/Service/Mock/SearchTest.php +++ b/tests/lib/Repository/Service/Mock/SearchTest.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Location as SPILocation; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; +use Ibexa\Contracts\Core\Repository\SearchService as CoveredSearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; @@ -26,10 +27,17 @@ use Ibexa\Core\Search\Common\BackgroundIndexer; use Ibexa\Core\Search\Common\BackgroundIndexer\NullIndexer; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; /** * Mock test case for Search service. */ +#[CoversMethod(CoveredSearchService::class, '__construct')] +#[CoversMethod(CoveredSearchService::class, 'addPermissionsCriterion')] +#[CoversMethod(CoveredSearchService::class, 'findContent')] +#[CoversMethod(CoveredSearchService::class, 'findSingle')] +#[CoversMethod(CoveredSearchService::class, 'findLocations')] class SearchTest extends BaseServiceMockTest { protected $repositoryMock; @@ -40,8 +48,6 @@ class SearchTest extends BaseServiceMockTest /** * Test for the __construct() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::__construct */ public function testConstructor() { @@ -62,7 +68,7 @@ public function testConstructor() ); } - public function providerForFindContentValidatesLocationCriteriaAndSortClauses() + public static function providerForFindContentValidatesLocationCriteriaAndSortClauses() { return [ [ @@ -92,9 +98,7 @@ public function providerForFindContentValidatesLocationCriteriaAndSortClauses() ]; } - /** - * @dataProvider providerForFindContentValidatesLocationCriteriaAndSortClauses - */ + #[DataProvider('providerForFindContentValidatesLocationCriteriaAndSortClauses')] public function testFindContentValidatesLocationCriteriaAndSortClauses($query, $exceptionMessage) { $this->expectException(InvalidArgumentException::class); @@ -123,7 +127,7 @@ public function testFindContentValidatesLocationCriteriaAndSortClauses($query, $ self::fail('Expected exception was not thrown'); } - public function providerForFindSingleValidatesLocationCriteria() + public static function providerForFindSingleValidatesLocationCriteria() { return [ [ @@ -141,9 +145,7 @@ public function providerForFindSingleValidatesLocationCriteria() ]; } - /** - * @dataProvider providerForFindSingleValidatesLocationCriteria - */ + #[DataProvider('providerForFindSingleValidatesLocationCriteria')] public function testFindSingleValidatesLocationCriteria($criterion, $exceptionMessage) { $this->expectException(InvalidArgumentException::class); @@ -173,9 +175,6 @@ public function testFindSingleValidatesLocationCriteria($criterion, $exceptionMe /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentThrowsHandlerException() { @@ -213,8 +212,6 @@ public function testFindContentThrowsHandlerException() /** * Test for the findContent() method when search is out of sync with persistence. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentWhenDomainMapperThrowsException() { @@ -230,7 +227,8 @@ public function testFindContentWhenDomainMapperThrowsException() $mapper = $this->getContentDomainMapperMock(), $this->getPermissionCriterionResolverMock(), $indexer, - ])->setMethods(['internalFindContentInfo']) + ]) + ->onlyMethods(['internalFindContentInfo']) ->getMock(); $info = new SPIContentInfo(['id' => 33]); @@ -260,9 +258,6 @@ public function testFindContentWhenDomainMapperThrowsException() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentNoPermissionsFilter() { @@ -325,9 +320,6 @@ public function testFindContentNoPermissionsFilter() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentWithPermission() { @@ -398,9 +390,6 @@ public function testFindContentWithPermission() /** * Test for the findContent() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findContent */ public function testFindContentWithNoPermission() { @@ -513,9 +502,6 @@ public function testFindContentWithDefaultQueryValues() /** * Test for the findSingle() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findSingle */ public function testFindSingleThrowsNotFoundException() { @@ -549,9 +535,6 @@ public function testFindSingleThrowsNotFoundException() /** * Test for the findSingle() method. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::addPermissionsCriterion - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findSingle */ public function testFindSingleThrowsHandlerException() { @@ -785,8 +768,6 @@ public function testFindLocationsWithNoPermissionsFilter() /** * Test for the findLocations() method when search is out of sync with persistence. - * - * @covers \Ibexa\Contracts\Core\Repository\SearchService::findLocations */ public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsException() { @@ -802,7 +783,8 @@ public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsExceptio $mapper = $this->getContentDomainMapperMock(), $this->getPermissionCriterionResolverMock(), $indexer, - ])->setMethods(['addPermissionsCriterion']) + ]) + ->onlyMethods(['addPermissionsCriterion']) ->getMock(); $location = new SPILocation(['id' => 44]); @@ -814,7 +796,7 @@ public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsExceptio $result = new SearchResult(['searchHits' => [new SearchHit(['valueObject' => $location])], 'totalCount' => 2]); $searchHandler->expects(self::once()) ->method('findLocations') - ->with(self::isInstanceOf(LocationQuery::class), self::isType('array')) + ->with(self::isInstanceOf(LocationQuery::class), self::isArray()) ->willReturn($result); $mapper->expects(self::once()) diff --git a/tests/lib/Repository/Service/Mock/UrlAliasTest.php b/tests/lib/Repository/Service/Mock/UrlAliasTest.php index f0e751f2ab..a3e14e5f9a 100644 --- a/tests/lib/Repository/Service/Mock/UrlAliasTest.php +++ b/tests/lib/Repository/Service/Mock/UrlAliasTest.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\LanguageResolver; use Ibexa\Contracts\Core\Repository\NameSchema\NameSchemaServiceInterface; +use Ibexa\Contracts\Core\Repository\URLAliasService as CoveredURLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Core\Base\Exceptions\ForbiddenException; use Ibexa\Core\Base\Exceptions\NotFoundException; @@ -22,11 +23,17 @@ use Ibexa\Core\Repository\URLAliasService; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\MockObject\MockObject; /** * Mock test case for UrlAlias Service. */ +#[CoversMethod(CoveredURLAliasService::class, 'createUrlAlias')] +#[CoversMethod(CoveredURLAliasService::class, 'createGlobalUrlAlias')] +#[CoversMethod(CoveredURLAliasService::class, 'removeAliases')] class UrlAliasTest extends BaseServiceMockTest { private const EXAMPLE_ID = 'eznode:42'; @@ -313,7 +320,7 @@ public function testRemoveAliasesWithRollback() $mockedService->removeAliases($aliasList); } - public function providerForTestListAutogeneratedLocationAliasesPath() + public static function providerForTestListAutogeneratedLocationAliasesPath() { $pathElement1 = [ 'always-available' => true, @@ -712,9 +719,8 @@ public function providerForTestListAutogeneratedLocationAliasesPath() /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesPath')] public function testListAutogeneratedLocationAliasesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -747,9 +753,8 @@ public function testListAutogeneratedLocationAliasesPath($spiUrlAliases, $priori /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesPath')] public function testListAutogeneratedLocationAliasesPathCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes, @@ -919,7 +924,7 @@ public function testListLocationAliasesWithShowAllTranslationsCustomConfiguratio self::assertEquals('/jedan/dva/tri', $urlAliases[0]->path); } - public function providerForTestListAutogeneratedLocationAliasesEmpty() + public static function providerForTestListAutogeneratedLocationAliasesEmpty() { $pathElement1 = [ 'always-available' => true, @@ -998,9 +1003,8 @@ public function providerForTestListAutogeneratedLocationAliasesEmpty() /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesEmpty')] public function testListAutogeneratedLocationAliasesEmpty($spiUrlAliases, $prioritizedLanguageCodes) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -1018,9 +1022,8 @@ public function testListAutogeneratedLocationAliasesEmpty($spiUrlAliases, $prior /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesEmpty')] public function testListAutogeneratedLocationAliasesEmptyCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes @@ -1044,7 +1047,7 @@ public function testListAutogeneratedLocationAliasesEmptyCustomConfiguration( self::assertEmpty($urlAliases); } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath() { $pathElement1 = [ 'always-available' => true, @@ -1401,9 +1404,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeP /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath')] public function testListAutogeneratedLocationAliasesWithLanguageCodePath( $spiUrlAliases, $languageCode, @@ -1435,9 +1437,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodePath( /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath')] public function testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration( $spiUrlAliases, $languageCode, @@ -1473,7 +1474,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodePathCustomCo } } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty() { $pathElement1 = [ 'always-available' => true, @@ -1664,9 +1665,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeE /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeEmpty( $spiUrlAliases, $languageCode, @@ -1687,9 +1687,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeEmpty( /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration( $spiUrlAliases, $languageCode, @@ -1714,7 +1713,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomC self::assertEmpty($urlAliases); } - public function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath() + public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath() { $spiUrlAliases = [ new SPIUrlAlias( @@ -1781,9 +1780,8 @@ public function providerForTestListAutogeneratedLocationAliasesMultipleLanguages /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath')] public function testListAutogeneratedLocationAliasesMultipleLanguagesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -1811,9 +1809,8 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesPath($spiUr /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath')] public function testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes, @@ -1848,7 +1845,7 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomC } } - public function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty() + public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty() { $spiUrlAliases = [ new SPIUrlAlias( @@ -1889,9 +1886,8 @@ public function providerForTestListAutogeneratedLocationAliasesMultipleLanguages /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty')] public function testListAutogeneratedLocationAliasesMultipleLanguagesEmpty($spiUrlAliases, $prioritizedLanguageCodes) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -1909,9 +1905,8 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesEmpty($spiU /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty')] public function testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes @@ -1934,7 +1929,7 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustom self::assertEmpty($urlAliases); } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath() { $spiUrlAliases = [ new SPIUrlAlias( @@ -2005,9 +2000,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeM /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath')] public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath( $spiUrlAliases, $languageCode, @@ -2038,9 +2032,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath')] public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration( $spiUrlAliases, $languageCode, @@ -2075,7 +2068,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang } } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty() { $spiUrlAliases = [ new SPIUrlAlias( @@ -2128,9 +2121,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeM /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty( $spiUrlAliases, $languageCode, @@ -2150,9 +2142,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration( $spiUrlAliases, $languageCode, @@ -2176,7 +2167,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang self::assertEmpty($urlAliases); } - public function providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath() + public static function providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath() { $spiUrlAliases = [ new SPIUrlAlias( @@ -2249,9 +2240,8 @@ public function providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePa /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath')] public function testListAutogeneratedLocationAliasesAlwaysAvailablePath( $spiUrlAliases, $prioritizedLanguageCodes, @@ -2281,9 +2271,8 @@ public function testListAutogeneratedLocationAliasesAlwaysAvailablePath( /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath')] public function testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes, @@ -2317,7 +2306,7 @@ public function testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomCon } } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath() { $spiUrlAliases = [ new SPIUrlAlias( @@ -2371,9 +2360,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeA /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath')] public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath( $spiUrlAliases, $languageCode, @@ -2404,9 +2392,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath')] public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration( $spiUrlAliases, $languageCode, @@ -2441,7 +2428,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila } } - public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty() + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty() { $spiUrlAliases = [ new SPIUrlAlias( @@ -2488,9 +2475,8 @@ public function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeA /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty( $spiUrlAliases, $languageCode, @@ -2510,9 +2496,8 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila /** * Test for the listLocationAliases() method. - * - * @dataProvider providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty */ + #[DataProvider('providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty')] public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration( $spiUrlAliases, $languageCode, @@ -2675,7 +2660,7 @@ public function testLookupThrowsNotFoundException() $urlAliasService->lookup('url'); } - public function providerForTestLookupThrowsNotFoundExceptionPath() + public static function providerForTestLookupThrowsNotFoundExceptionPath() { return [ // alias does not exist in requested language @@ -2691,9 +2676,8 @@ public function providerForTestLookupThrowsNotFoundExceptionPath() /** * Test for the lookup() method. - * - * @dataProvider providerForTestLookupThrowsNotFoundExceptionPath */ + #[DataProvider('providerForTestLookupThrowsNotFoundExceptionPath')] public function testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable($url, $prioritizedLanguageList, $languageCode) { $this->expectException(NotFoundException::class); @@ -2734,7 +2718,7 @@ public function testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable($ur $urlAliasService->lookup($url, $languageCode); } - public function providerForTestLookup() + public static function providerForTestLookup() { return [ // showAllTranslations setting is true @@ -2748,9 +2732,8 @@ public function providerForTestLookup() /** * Test for the lookup() method. - * - * @dataProvider providerForTestLookup */ + #[DataProvider('providerForTestLookup')] public function testLookup($prioritizedLanguageList, $showAllTranslations, $alwaysAvailable, $languageCode) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -2801,7 +2784,7 @@ public function testLookup($prioritizedLanguageList, $showAllTranslations, $alwa ); } - public function providerForTestLookupWithSharedTranslation() + public static function providerForTestLookupWithSharedTranslation() { return [ // showAllTranslations setting is true @@ -2824,9 +2807,8 @@ public function providerForTestLookupWithSharedTranslation() /** * Test for the lookup() method. - * - * @dataProvider providerForTestLookupWithSharedTranslation */ + #[DataProvider('providerForTestLookupWithSharedTranslation')] public function testLookupWithSharedTranslation( $prioritizedLanguageList, $showAllTranslations, @@ -2944,16 +2926,15 @@ public function testReverseLookupThrowsNotFoundException() $urlAliasService->reverseLookup($location, $languageCode); } - public function providerForTestReverseLookup() + public static function providerForTestReverseLookup() { - return $this->providerForTestListAutogeneratedLocationAliasesPath(); + return self::providerForTestListAutogeneratedLocationAliasesPath(); } /** * Test for the reverseLookup() method. - * - * @dataProvider providerForTestReverseLookup */ + #[DataProvider('providerForTestReverseLookup')] public function testReverseLookupPath($spiUrlAliases, $prioritizedLanguageCodes, $paths, $reverseLookupLanguageCode) { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -2975,16 +2956,15 @@ public function testReverseLookupPath($spiUrlAliases, $prioritizedLanguageCodes, ); } - public function providerForTestReverseLookupAlwaysAvailablePath() + public static function providerForTestReverseLookupAlwaysAvailablePath() { - return $this->providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath(); + return self::providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath(); } /** * Test for the reverseLookup() method. - * - * @dataProvider providerForTestReverseLookupAlwaysAvailablePath */ + #[DataProvider('providerForTestReverseLookupAlwaysAvailablePath')] public function testReverseLookupAlwaysAvailablePath( $spiUrlAliases, $prioritizedLanguageCodes, @@ -3387,11 +3367,10 @@ public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionPath() /** * Test for the createGlobalUrlAlias() method. - * - * @depends Ibexa\Tests\Core\Repository\Service\Mock\UrlAliasTest::testCreateUrlAlias - * @depends Ibexa\Tests\Core\Repository\Service\Mock\UrlAliasTest::testCreateUrlAliasWithRollback - * @depends Ibexa\Tests\Core\Repository\Service\Mock\UrlAliasTest::testCreateUrlAliasThrowsInvalidArgumentException */ + #[DependsExternal(self::class, 'testCreateUrlAlias')] + #[DependsExternal(self::class, 'testCreateUrlAliasWithRollback')] + #[DependsExternal(self::class, 'testCreateUrlAliasThrowsInvalidArgumentException')] public function testCreateGlobalUrlAliasForLocation() { $repositoryMock = $this->getRepositoryMock(); @@ -3504,7 +3483,6 @@ protected function getPartlyMockedURLAliasServiceService( ->willReturn($showAllTranslations); return $this->getMockBuilder(URLAliasService::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getRepositoryMock(), @@ -3514,13 +3492,12 @@ protected function getPartlyMockedURLAliasServiceService( $languageResolverMock, ] ) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } /** * Test for the createUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createUrlAlias */ public function testCreateUrlAliasThrowsUnauthorizedException() { @@ -3547,8 +3524,6 @@ public function testCreateUrlAliasThrowsUnauthorizedException() /** * Test for the createGlobalUrlAlias() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::createGlobalUrlAlias */ public function testCreateGlobalUrlAliasThrowsUnauthorizedException() { @@ -3574,8 +3549,6 @@ public function testCreateGlobalUrlAliasThrowsUnauthorizedException() /** * Test for the removeAliases() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLAliasService::removeAliases */ public function testRemoveAliasesThrowsUnauthorizedException() { diff --git a/tests/lib/Repository/Service/Mock/UrlTest.php b/tests/lib/Repository/Service/Mock/UrlTest.php index a36e809331..47e7f0430a 100644 --- a/tests/lib/Repository/Service/Mock/UrlTest.php +++ b/tests/lib/Repository/Service/Mock/UrlTest.php @@ -25,6 +25,7 @@ use Ibexa\Core\Base\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\URLService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\DataProvider; class UrlTest extends BaseServiceMockTest { @@ -340,9 +341,7 @@ public function testLoadByUrl() self::assertEquals($apiUrl, $this->createUrlService()->loadByUrl($url)); } - /** - * @dataProvider dateProviderForFindUsages - */ + #[DataProvider('dateProviderForFindUsages')] public function testFindUsages($offset, $limit, ContentQuery $expectedQuery, array $usages) { $url = $this->getApiUrl(self::URL_ID, self::URL_IBEXA_CO); @@ -388,7 +387,7 @@ public function testFindUsages($offset, $limit, ContentQuery $expectedQuery, arr } } - public function dateProviderForFindUsages() + public static function dateProviderForFindUsages() { return [ [ @@ -461,11 +460,15 @@ protected function configureUrlUpdatePermission($object, $hasAccess = false) protected function configurePermissions(array $permissions) { + $matcher = self::exactly(count($permissions)); $this->permissionResolver - ->expects(self::exactly(count($permissions))) + ->expects($matcher) ->method('canUser') - ->withConsecutive(...$permissions) - ->willReturn(true); + ->willReturnCallback(function (...$parameters) use ($matcher, $permissions) { + $this->assertEquals($permissions[$matcher->numberOfInvocations() - 1], $parameters); + + return true; + }); } /** @@ -476,7 +479,7 @@ private function createUrlService(?array $methods = null) return $this ->getMockBuilder(URLService::class) ->setConstructorArgs([$this->getRepositoryMock(), $this->urlHandler, $this->permissionResolver]) - ->setMethods($methods) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } diff --git a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php index 2019c47261..cc21d80814 100644 --- a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php +++ b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php @@ -14,15 +14,22 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Contracts\Core\Repository\URLWildcardService as CoveredURLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult; use Ibexa\Core\Base\Exceptions\NotFoundException as APINotFoundException; use Ibexa\Core\Repository\URLWildcardService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; /** * Mock Test case for UrlWildcard Service. */ +#[CoversMethod(CoveredURLWildcardService::class, 'create')] +#[CoversMethod(CoveredURLWildcardService::class, 'remove')] +#[CoversMethod(CoveredURLWildcardService::class, 'loadAll')] +#[CoversMethod(CoveredURLWildcardService::class, 'translate')] class UrlWildcardTest extends BaseServiceMockTest { private const EXAMPLE_URL_WILDCARD_ID = 1; @@ -42,8 +49,6 @@ protected function setUp(): void /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create */ public function testCreateThrowsUnauthorizedException() { @@ -69,8 +74,6 @@ public function testCreateThrowsUnauthorizedException() /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create */ public function testCreateThrowsInvalidArgumentException() { @@ -100,7 +103,7 @@ public function testCreateThrowsInvalidArgumentException() $mockedService->create('/lorem/ipsum', 'opossum', true); } - public function providerForTestCreateThrowsContentValidationException() + public static function providerForTestCreateThrowsContentValidationException() { return [ ['fruit', 'food/{1}', true], @@ -111,11 +114,8 @@ public function providerForTestCreateThrowsContentValidationException() /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create - * - * @dataProvider providerForTestCreateThrowsContentValidationException */ + #[DataProvider('providerForTestCreateThrowsContentValidationException')] public function testCreateThrowsContentValidationException($sourceUrl, $destinationUrl, $forward) { $this->expectException(ContentValidationException::class); @@ -144,7 +144,7 @@ public function testCreateThrowsContentValidationException($sourceUrl, $destinat $mockedService->create($sourceUrl, $destinationUrl, $forward); } - public function providerForTestCreate() + public static function providerForTestCreate() { return [ ['fruit', 'food', true], @@ -159,11 +159,8 @@ public function providerForTestCreate() /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create - * - * @dataProvider providerForTestCreate */ + #[DataProvider('providerForTestCreate')] public function testCreate($sourceUrl, $destinationUrl, $forward) { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -230,8 +227,6 @@ public function testCreate($sourceUrl, $destinationUrl, $forward) /** * Test for the create() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::create */ public function testCreateWithRollback() { @@ -283,8 +278,6 @@ public function testCreateWithRollback() /** * Test for the remove() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove */ public function testRemoveThrowsUnauthorizedException() { @@ -316,8 +309,6 @@ public function testRemoveThrowsUnauthorizedException() /** * Test for the remove() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove */ public function testRemove() { @@ -354,8 +345,6 @@ public function testRemove() /** * Test for the remove() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove */ public function testRemoveWithRollback() { @@ -398,8 +387,6 @@ public function testRemoveWithRollback() /** * Test for the load() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove */ public function testLoadThrowsException() { @@ -424,8 +411,6 @@ public function testLoadThrowsException() /** * Test for the load() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::remove */ public function testLoad() { @@ -467,8 +452,6 @@ public function testLoad() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll */ public function testLoadAll() { @@ -490,8 +473,6 @@ public function testLoadAll() /** * Test for the loadAll() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::loadAll */ public function testLoadAllWithLimitAndOffset() { @@ -539,7 +520,7 @@ public function testLoadAllWithLimitAndOffset() /** * @return array */ - public function providerForTestTranslateThrowsNotFoundException() + public static function providerForTestTranslateThrowsNotFoundException() { return [ [ @@ -579,11 +560,8 @@ public function providerForTestTranslateThrowsNotFoundException() /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate - * - * @dataProvider providerForTestTranslateThrowsNotFoundException */ + #[DataProvider('providerForTestTranslateThrowsNotFoundException')] public function testTranslateThrowsNotFoundException($createArray, $url) { $this->expectException(NotFoundException::class); @@ -606,7 +584,7 @@ public function testTranslateThrowsNotFoundException($createArray, $url) /** * @return array */ - public function providerForTestTranslate() + public static function providerForTestTranslate() { return [ [ @@ -686,11 +664,8 @@ public function providerForTestTranslate() /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate - * - * @dataProvider providerForTestTranslate */ + #[DataProvider('providerForTestTranslate')] public function testTranslate($createArray, $url, $uri) { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -723,8 +698,6 @@ public function testTranslate($createArray, $url, $uri) /** * Test for the translate() method. - * - * @covers \Ibexa\Contracts\Core\Repository\URLWildcardService::translate */ public function testTranslateUsesLongestMatchingWildcard() { @@ -767,7 +740,6 @@ public function testTranslateUsesLongestMatchingWildcard() protected function getPartlyMockedURLWildcardService(?array $methods = null) { return $this->getMockBuilder(URLWildcardService::class) - ->setMethods($methods) ->setConstructorArgs( [ $this->getRepositoryMock(), @@ -775,6 +747,7 @@ protected function getPartlyMockedURLWildcardService(?array $methods = null) $this->permissionResolver, ] ) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } } diff --git a/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php b/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php index ebee11608b..5f5b01981e 100644 --- a/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php +++ b/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php @@ -11,15 +11,13 @@ use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\Repository\Validator\UserPasswordValidator; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; -/** - * @covers \Ibexa\Core\Repository\Validator\UserPasswordValidator - */ +#[CoversClass(UserPasswordValidator::class)] class UserPasswordValidatorTest extends TestCase { - /** - * @dataProvider dateProviderForValidate - */ + #[DataProvider('dateProviderForValidate')] public function testValidate(array $constraints, string $password, array $expectedErrors) { $validator = new UserPasswordValidator($constraints); @@ -27,7 +25,7 @@ public function testValidate(array $constraints, string $password, array $expect self::assertEqualsCanonicalizing($expectedErrors, $validator->validate($password), ''); } - public function dateProviderForValidate(): array + public static function dateProviderForValidate(): array { return [ [ diff --git a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php index 7d35327973..3a1386f461 100644 --- a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php +++ b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php @@ -13,12 +13,19 @@ use Ibexa\Contracts\Core\Persistence\UserPreference\UserPreferenceSetStruct; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\PermissionResolver; +use Ibexa\Contracts\Core\Repository\UserPreferenceService as CoveredUserPreferenceService; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreference as APIUserPreference; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceSetStruct as APIUserPreferenceSetStruct; use Ibexa\Core\Repository\UserPreferenceService; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversMethod; +#[CoversMethod(CoveredUserPreferenceService::class, 'setUserPreference()')] +#[CoversMethod(CoveredUserPreferenceService::class, 'setUserPreference')] +#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreference()')] +#[CoversMethod(CoveredUserPreferenceService::class, 'loadUserPreferences')] +#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreferenceCount()')] class UserPreferenceTest extends BaseServiceMockTest { public const CURRENT_USER_ID = 14; @@ -42,9 +49,6 @@ protected function setUp(): void ->willReturn($permissionResolverMock); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference() - */ public function testSetUserPreference() { $apiUserPreferenceSetStruct = new APIUserPreferenceSetStruct([ @@ -68,9 +72,6 @@ public function testSetUserPreference() $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference - */ public function testSetUserPreferenceThrowsInvalidArgumentException() { $this->expectException(InvalidArgumentException::class); @@ -86,9 +87,6 @@ public function testSetUserPreferenceThrowsInvalidArgumentException() $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::setUserPreference - */ public function testSetUserPreferenceWithRollback() { $this->expectException(\Exception::class); @@ -102,15 +100,12 @@ public function testSetUserPreferenceWithRollback() $this->userSPIPreferenceHandler ->expects($this->once()) ->method('setUserPreference') - ->willThrowException($this->createMock(Exception::class)); + ->willThrowException(self::createStub(Exception::class)); }); $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::getUserPreference() - */ public function testGetUserPreference() { $userPreferenceName = 'setting'; @@ -134,9 +129,6 @@ public function testGetUserPreference() self::assertEquals($expected, $APIUserPreference); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::loadUserPreferences - */ public function testLoadUserPreferences() { $offset = 0; @@ -170,9 +162,6 @@ public function testLoadUserPreferences() self::assertEquals($expectedItems, $userPreferences->items); } - /** - * @covers \Ibexa\Contracts\Core\Repository\UserPreferenceService::getUserPreferenceCount() - */ public function testGetUserPreferenceCount() { $expectedTotalCount = 10; @@ -196,7 +185,7 @@ private function createAPIUserPreferenceService(?array $methods = null) return $this ->getMockBuilder(UserPreferenceService::class) ->setConstructorArgs([$this->getRepositoryMock(), $this->userSPIPreferenceHandler]) - ->setMethods($methods) + ->onlyMethods(array_values($methods ?? [])) ->getMock(); } diff --git a/tests/lib/Repository/Service/Mock/UserTest.php b/tests/lib/Repository/Service/Mock/UserTest.php index 2a9e09c47a..cee00d5854 100644 --- a/tests/lib/Repository/Service/Mock/UserTest.php +++ b/tests/lib/Repository/Service/Mock/UserTest.php @@ -22,10 +22,9 @@ use Ibexa\Core\Repository\User\PasswordValidatorInterface; use Ibexa\Core\Repository\UserService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Repository\UserService - */ +#[CoversClass(UserService::class)] class UserTest extends BaseServiceMockTest { private const MOCKED_USER_ID = 42; @@ -91,16 +90,16 @@ public function testDeleteUserWithRollback(): void protected function getPartlyMockedUserService(?array $methods = null): APIUserService { return $this->getMockBuilder(UserService::class) - ->onlyMethods($methods) + ->onlyMethods(array_values($methods)) ->setConstructorArgs( [ $this->getRepositoryMock(), $this->getPermissionResolverMock(), $this->getPersistenceMock()->userHandler(), $this->getPersistenceMock()->locationHandler(), - $this->createMock(PasswordHashService::class), - $this->createMock(PasswordValidatorInterface::class), - $this->createMock(ConfigResolverInterface::class), + self::createStub(PasswordHashService::class), + self::createStub(PasswordValidatorInterface::class), + self::createStub(ConfigResolverInterface::class), ] ) ->getMock(); diff --git a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php index 672dd03a11..a8f58219a1 100644 --- a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php +++ b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php @@ -9,6 +9,7 @@ use Closure; use Ibexa\Contracts\Core\Repository\LanguageResolver; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use ReflectionClass; use ReflectionMethod; @@ -31,6 +32,14 @@ abstract class AbstractServiceTestCase extends TestCase */ public const LANG_ARG = 0; + /** + * Sentinel method name yielded by {@see providerForLanguagesLookupMethods()} implementations + * that legitimately have no language-lookup methods to test; PHPUnit 11 treats an empty data + * provider as a hard error, so a single sentinel row is yielded instead and the two consuming + * test methods skip immediately when they see it. + */ + protected const NO_DATA_METHOD = '__no_data__'; + /** @var \object|\PHPUnit\Framework\MockObject\MockObject */ protected $innerApiServiceMock; @@ -70,19 +79,19 @@ protected function tearDown(): void /** * @return array See signature on {@link testForPassTrough} for arguments and their type. */ - abstract public function providerForPassTroughMethods(); + abstract public static function providerForPassTroughMethods(); /** * Make sure these methods does nothing more then passing the arguments to inner service. * * Methods tested here are basically those without as languages argument. * - * @dataProvider providerForPassTroughMethods * * @param string $method * @param array $arguments * @param mixed $return */ + #[DataProvider('providerForPassTroughMethods')] final public function testForPassTrough($method, array $arguments, $return = true) { if ($return) { @@ -109,7 +118,7 @@ final public function testForPassTrough($method, array $arguments, $return = tru * @return array See signature on {@link testForLanguagesLookup} for arguments and their type. * NOTE: languages / prioritizedLanguage, can be set to 0, it will be replaced by tests methods. */ - abstract public function providerForLanguagesLookupMethods(); + abstract public static function providerForLanguagesLookupMethods(); /** * Method to be able to customize the logic for setting expected language argument during {@see testForLanguagesLookup()}. @@ -143,10 +152,9 @@ protected function setLanguagesLookupArguments(array $arguments, $languageArgume } /** - * @dataProvider providerForLanguagesLookupMethods - * * @param array $arguments */ + #[DataProvider('providerForLanguagesLookupMethods')] final public function testForLanguagesLookup( string $method, array $arguments, @@ -155,6 +163,10 @@ final public function testForLanguagesLookup( ?callable $callback = null, ?int $alwaysAvailableArgumentIndex = null ) { + if ($method === self::NO_DATA_METHOD) { + self::markTestSkipped($arguments[0] ?? 'No language-lookup methods for this service.'); + } + $languages = ['eng-GB', 'eng-US']; $arguments = $this->setLanguagesLookupArguments($arguments, $languageArgumentIndex); @@ -211,10 +223,9 @@ protected function setLanguagesPassTroughArguments(array $arguments, $languageAr } /** - * @dataProvider providerForLanguagesLookupMethods - * * @param array $arguments */ + #[DataProvider('providerForLanguagesLookupMethods')] final public function testForLanguagesPassTrough( string $method, array $arguments, @@ -223,6 +234,10 @@ final public function testForLanguagesPassTrough( ?callable $callback = null, ?int $alwaysAvailableArgumentIndex = null ) { + if ($method === self::NO_DATA_METHOD) { + self::markTestSkipped($arguments[0] ?? 'No language-lookup methods for this service.'); + } + $languages = ['eng-GB', 'eng-US']; $arguments = $this->setLanguagesPassTroughArguments($arguments, $languageArgumentIndex, $languages); @@ -257,14 +272,27 @@ final public function testForLanguagesPassTrough( } } + /** + * @param iterable $data + * + * @return array + */ + private static function toArray(iterable $data): array + { + return is_array($data) ? $data : iterator_to_array($data); + } + /** * @todo replace with coverage testing (see EZP-31035) */ final public function testIfThereIsMissingTest(): void { $tested = array_merge( - array_column($this->providerForLanguagesLookupMethods(), 0), - array_column($this->providerForPassTroughMethods(), 0) + array_diff( + array_column(self::toArray($this->providerForLanguagesLookupMethods()), 0), + [self::NO_DATA_METHOD] + ), + array_column(self::toArray($this->providerForPassTroughMethods()), 0) ); $class = new ReflectionClass($this->getSiteAccessAwareServiceClassName()); diff --git a/tests/lib/Repository/SiteAccessAware/ContentServiceTest.php b/tests/lib/Repository/SiteAccessAware/ContentServiceTest.php index fb53e65a0e..f207ca146e 100644 --- a/tests/lib/Repository/SiteAccessAware/ContentServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/ContentServiceTest.php @@ -8,7 +8,6 @@ namespace Ibexa\Tests\Core\Repository\SiteAccessAware; use Ibexa\Contracts\Core\Repository\ContentService as APIService; -use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentDraftList; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\ContentList; @@ -16,12 +15,13 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ContentId; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation; use Ibexa\Contracts\Core\Repository\Values\Content\RelationList; use Ibexa\Contracts\Core\Repository\Values\Filter\Filter; use Ibexa\Core\Repository\SiteAccessAware\ContentService; +use Ibexa\Core\Repository\Values\Content\Content as CoreContent; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; +use Ibexa\Core\Repository\Values\Content\Relation as CoreRelation; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Repository\Values\User\User; @@ -41,12 +41,12 @@ public function getSiteAccessAwareServiceClassName(): string return ContentService::class; } - public function providerForPassTroughMethods(): array + public static function providerForPassTroughMethods(): array { $contentInfo = new ContentInfo(); $versionInfo = new VersionInfo(); - $content = $this->createMock(Content::class); - $relation = $this->createMock(Relation::class); + $content = new CoreContent(); + $relation = new CoreRelation(); $relationList = new RelationList(); $contentCreateStruct = new ContentCreateStruct(); $contentUpdateStruct = new ContentUpdateStruct(); @@ -131,9 +131,9 @@ public function providerForPassTroughMethods(): array /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException */ - public function providerForLanguagesLookupMethods(): array + public static function providerForLanguagesLookupMethods(): array { - $content = $this->createMock(Content::class); + $content = new CoreContent(); $contentInfo = new ContentInfo(); $versionInfo = new VersionInfo(); diff --git a/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php b/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php index 8eb591567b..6fbecdd855 100644 --- a/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php @@ -35,7 +35,7 @@ public function getSiteAccessAwareServiceClassName(): string return ContentTypeService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $contentTypeGroupCreateStruct = new ContentTypeGroupCreateStruct(); $contentTypeGroupUpdateStruct = new ContentTypeGroupUpdateStruct(); @@ -107,7 +107,7 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { $contentType = new ContentType(); $contentTypeGroup = new ContentTypeGroup(); diff --git a/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php b/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php index 9832182548..70741533a6 100644 --- a/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php +++ b/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php @@ -8,24 +8,24 @@ namespace Ibexa\Tests\Core\Repository\SiteAccessAware\Language; +use Ibexa\Core\Repository\SiteAccessAware\Language\AbstractLanguageResolver; use Ibexa\Core\Repository\SiteAccessAware\Language\LanguageResolver; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\SiteAccessAware\Language\AbstractLanguageResolver - * @covers \Ibexa\Core\Repository\SiteAccessAware\Language\LanguageResolver - */ +#[CoversClass(AbstractLanguageResolver::class)] +#[CoversClass(LanguageResolver::class)] class LanguageResolverTest extends TestCase { /** - * @dataProvider getDataForTestGetPrioritizedLanguages - * * @param array $expectedPrioritizedLanguagesList * @param array $configLanguages * @param bool $defaultShowAllTranslations * @param array|null $forcedLanguages * @param string|null $contextLanguage */ + #[DataProvider('getDataForTestGetPrioritizedLanguages')] public function testGetPrioritizedLanguages( array $expectedPrioritizedLanguagesList, array $configLanguages, @@ -57,7 +57,7 @@ public function testGetPrioritizedLanguages( * * @return array */ - public function getDataForTestGetPrioritizedLanguages(): array + public static function getDataForTestGetPrioritizedLanguages(): array { return [ [ diff --git a/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php b/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php index b5ce70999a..c5e693fb43 100644 --- a/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php @@ -24,7 +24,7 @@ public function getSiteAccessAwareServiceClassName(): string return LanguageService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $languageCreateStruct = new LanguageCreateStruct(); $language = new Language(); @@ -55,9 +55,9 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { // string $method, array $arguments, bool $return, int $languageArgumentIndex - return []; + yield [self::NO_DATA_METHOD, ['LanguageService has no language-lookup methods.'], null, 0]; } } diff --git a/tests/lib/Repository/SiteAccessAware/LocationServiceTest.php b/tests/lib/Repository/SiteAccessAware/LocationServiceTest.php index 4c8ccbb360..0409999203 100644 --- a/tests/lib/Repository/SiteAccessAware/LocationServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/LocationServiceTest.php @@ -30,7 +30,7 @@ public function getSiteAccessAwareServiceClassName(): string return LocationService::class; } - public function providerForPassTroughMethods(): array + public static function providerForPassTroughMethods(): array { $location = new Location(); $contentInfo = new ContentInfo(); @@ -68,7 +68,7 @@ public function providerForPassTroughMethods(): array ]; } - public function providerForLanguagesLookupMethods(): array + public static function providerForLanguagesLookupMethods(): array { $location = new Location(); $locationList = new LocationList(); diff --git a/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php b/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php index d564a08dee..e55fec66d9 100644 --- a/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php @@ -29,7 +29,7 @@ public function getSiteAccessAwareServiceClassName(): string return ObjectStateService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $objectStateGroupCreateStruct = new ObjectStateGroupCreateStruct(); $objectStateGroupUpdateStruct = new ObjectStateGroupUpdateStruct(); @@ -63,7 +63,7 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { $objectStateGroup = new ObjectStateGroup(); $objectState = new ObjectState(); diff --git a/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php b/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php index 077985803a..8636f51e55 100644 --- a/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php @@ -26,7 +26,7 @@ public function getSiteAccessAwareServiceClassName(): string return SearchService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { // string $method, array $arguments, bool $return = true return [ @@ -35,7 +35,7 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { $query = new Query(); $locationQuery = new LocationQuery(); diff --git a/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php b/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php index 1bba0c3595..fe456822e9 100644 --- a/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php @@ -28,7 +28,7 @@ public function getSiteAccessAwareServiceClassName(): string return TrashService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $location = new Location(); $newLocation = new Location(); @@ -49,9 +49,9 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { // string $method, array $arguments, bool $return, int $languageArgumentIndex - return []; + yield [self::NO_DATA_METHOD, ['TrashService has no language-lookup methods.'], null, 0]; } } diff --git a/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php b/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php index 62e31b8158..d46fd148d5 100644 --- a/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php @@ -24,7 +24,7 @@ public function getSiteAccessAwareServiceClassName(): string return URLAliasService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $location = new Location(); $urlAlias = new URLAlias(); @@ -42,7 +42,7 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { $location = new Location(); $urlAlias = new URLAlias(); diff --git a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php index e273a4e954..c78f012dd0 100644 --- a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php @@ -34,7 +34,7 @@ public function getSiteAccessAwareServiceClassName(): string return UserService::class; } - public function providerForPassTroughMethods() + public static function providerForPassTroughMethods() { $userGroupCreateStruct = new UserGroupCreateStruct(); $userGroupUpdateStruct = new UserGroupUpdateStruct(); @@ -46,7 +46,7 @@ public function providerForPassTroughMethods() $userTokenUpdateStruct = new UserTokenUpdateStruct(); $user = new User(); $userId = 14; - $contentType = $this->createMock(ContentType::class); + $contentType = new ContentType(); $passwordValidationContext = new PasswordValidationContext(); $passwordExpirationDate = (new DateTime())->add(new DateInterval('P30D')); @@ -84,7 +84,7 @@ public function providerForPassTroughMethods() ]; } - public function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods() { $userGroup = new UserGroup(); $user = new User(); diff --git a/tests/lib/Repository/Strategy/Publication/ChainContentPublicationStrategyTest.php b/tests/lib/Repository/Strategy/Publication/ChainContentPublicationStrategyTest.php index 4fdbe1e1d3..2c45dc86b7 100644 --- a/tests/lib/Repository/Strategy/Publication/ChainContentPublicationStrategyTest.php +++ b/tests/lib/Repository/Strategy/Publication/ChainContentPublicationStrategyTest.php @@ -19,7 +19,7 @@ final class ChainContentPublicationStrategyTest extends TestCase { public function testPublishVersionExecutesFirstSupportingStrategy(): void { - $versionInfo = $this->createStub(VersionInfo::class); + $versionInfo = self::createStub(VersionInfo::class); $result = new ContentPublicationResult(null); $notSupportingStrategy = $this->createMock(ContentPublicationStrategyInterface::class); @@ -101,6 +101,6 @@ public function testPublishVersionThrowsLogicExceptionWhenNoStrategySupports(): $this->expectException(LogicException::class); $this->expectExceptionMessage('No content publication strategy supports the current publication.'); - $chain->publishVersion($this->createMock(VersionInfo::class)); + $chain->publishVersion(self::createStub(VersionInfo::class)); } } diff --git a/tests/lib/Repository/Strategy/Publication/SynchronousContentPublicationStrategyTest.php b/tests/lib/Repository/Strategy/Publication/SynchronousContentPublicationStrategyTest.php index 27bc27b868..a7d4a17ace 100644 --- a/tests/lib/Repository/Strategy/Publication/SynchronousContentPublicationStrategyTest.php +++ b/tests/lib/Repository/Strategy/Publication/SynchronousContentPublicationStrategyTest.php @@ -13,6 +13,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Strategy\ContentPublication\SynchronousContentPublicationStrategy; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class SynchronousContentPublicationStrategyTest extends TestCase @@ -20,24 +21,23 @@ final class SynchronousContentPublicationStrategyTest extends TestCase public function testSupportsAlwaysReturnsTrue(): void { $strategy = new SynchronousContentPublicationStrategy( - $this->createStub(ContentService::class) + self::createStub(ContentService::class) ); self::assertTrue($strategy->supports()); } /** - * @dataProvider providerForTestPublishVersionDelegatesToContentService - * * @param list|null $translations * @param list $expectedTranslations */ + #[DataProvider('providerForTestPublishVersionDelegatesToContentService')] public function testPublishVersionDelegatesToContentService( ?array $translations, array $expectedTranslations ): void { - $versionInfo = $this->createStub(VersionInfo::class); - $content = $this->createStub(Content::class); + $versionInfo = self::createStub(VersionInfo::class); + $content = self::createStub(Content::class); $contentService = $this->createMock(ContentService::class); $contentService diff --git a/tests/lib/Repository/Values/Content/ContentInfoTest.php b/tests/lib/Repository/Values/Content/ContentInfoTest.php index bf8de1afbe..5174aff00c 100644 --- a/tests/lib/Repository/Values/Content/ContentInfoTest.php +++ b/tests/lib/Repository/Values/Content/ContentInfoTest.php @@ -10,11 +10,10 @@ use DateTimeImmutable; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo - */ +#[CoversClass(ContentInfo::class)] final class ContentInfoTest extends TestCase { public function testCreateObject(): void diff --git a/tests/lib/Repository/Values/Content/ContentTest.php b/tests/lib/Repository/Values/Content/ContentTest.php index f1bdd191d1..5c5de44d41 100644 --- a/tests/lib/Repository/Values/Content/ContentTest.php +++ b/tests/lib/Repository/Values/Content/ContentTest.php @@ -13,11 +13,10 @@ use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\Content\Content - */ +#[CoversClass(Content::class)] final class ContentTest extends TestCase { /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Field[] */ diff --git a/tests/lib/Repository/Values/Content/LanguageTest.php b/tests/lib/Repository/Values/Content/LanguageTest.php index 5132390dcc..750792aefd 100644 --- a/tests/lib/Repository/Values/Content/LanguageTest.php +++ b/tests/lib/Repository/Values/Content/LanguageTest.php @@ -11,11 +11,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Language - */ +#[CoversClass(Language::class)] class LanguageTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/Content/LocationTest.php b/tests/lib/Repository/Values/Content/LocationTest.php index aeb9f3cf70..eca9a0bb46 100644 --- a/tests/lib/Repository/Values/Content/LocationTest.php +++ b/tests/lib/Repository/Values/Content/LocationTest.php @@ -13,11 +13,14 @@ use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\Content\Location - */ +#[CoversClass(Location::class)] +#[CoversMethod(Location::class, '__set')] +#[CoversMethod(Location::class, '__unset')] final class LocationTest extends TestCase { use ValueObjectTestTrait; @@ -73,10 +76,9 @@ public static function getDataForTestPathComputedPropertyGetter(): iterable } /** - * @dataProvider getDataForTestPathComputedPropertyGetter - * * @param string[] $expectedPathValue */ + #[DataProvider('getDataForTestPathComputedPropertyGetter')] public function testPathComputedPropertyGetter(Location $location, array $expectedPathValue): void { self::assertSame($expectedPathValue, $location->getPath()); @@ -97,8 +99,6 @@ public function testMissingProperty(): void /** * Test setting read only property. - * - * @covers \Ibexa\Core\Repository\Values\Content\Location::__set */ public function testReadOnlyProperty(): void { @@ -125,8 +125,6 @@ public function testIsPropertySet(): void /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\Content\Location::__unset */ public function testUnsetProperty(): void { diff --git a/tests/lib/Repository/Values/Content/Query/Aggregation/Location/SubtreeTermAggregationTest.php b/tests/lib/Repository/Values/Content/Query/Aggregation/Location/SubtreeTermAggregationTest.php index 7aef2b0111..ee6c0e392e 100644 --- a/tests/lib/Repository/Values/Content/Query/Aggregation/Location/SubtreeTermAggregationTest.php +++ b/tests/lib/Repository/Values/Content/Query/Aggregation/Location/SubtreeTermAggregationTest.php @@ -32,7 +32,7 @@ public function testConstruct(): void public function testConstructThrowsInvalidArgumentExceptionOnInvalidPathString(): void { $this->expectException(InvalidArgumentException::class); - $this->expectErrorMessage("'/INVALID/PATH' value must follow the path string format, e.g. /1/2/"); + $this->expectExceptionMessage("'/INVALID/PATH' value must follow the path string format, e.g. /1/2/"); $aggregation = new SubtreeTermAggregation('foo', '/INVALID/PATH'); } diff --git a/tests/lib/Repository/Values/Content/Query/Aggregation/RangeTest.php b/tests/lib/Repository/Values/Content/Query/Aggregation/RangeTest.php index eef108e6ec..801d0129f0 100644 --- a/tests/lib/Repository/Values/Content/Query/Aggregation/RangeTest.php +++ b/tests/lib/Repository/Values/Content/Query/Aggregation/RangeTest.php @@ -10,15 +10,15 @@ use DateTimeImmutable; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class RangeTest extends TestCase { /** - * @dataProvider dataProviderForTestToString - * * @phpstan-param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range $range */ + #[DataProvider('dataProviderForTestToString')] public function testToString(Range $range, string $expected): void { self::assertEquals($expected, (string)$range); @@ -27,7 +27,7 @@ public function testToString(Range $range, string $expected): void /** * @return iterable, string}> */ - public function dataProviderForTestToString(): iterable + public static function dataProviderForTestToString(): iterable { yield 'empty' => [ new Range(null, null), @@ -78,11 +78,10 @@ public function testOfDateTime(): void } /** - * @dataProvider dataProviderForEqualsTo - * * @phpstan-param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range $rangeA * @phpstan-param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range $rangeB */ + #[DataProvider('dataProviderForEqualsTo')] public function testEqualsTo(Range $rangeA, Range $rangeB, bool $expectedResult): void { self::assertEquals($expectedResult, $rangeA->equalsTo($rangeB)); @@ -92,7 +91,7 @@ public function testEqualsTo(Range $rangeA, Range $rangeB, bool $expectedResult) /** * @return iterable, \Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Range, bool}> */ - public function dataProviderForEqualsTo(): iterable + public static function dataProviderForEqualsTo(): iterable { yield 'int (true)' => [ Range::ofInt(1, 10), diff --git a/tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php b/tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php index ccf8f75215..5cada87bb1 100644 --- a/tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php +++ b/tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php @@ -8,13 +8,12 @@ namespace Ibexa\Tests\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\DateMetadata; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; final class DateMetadataTest extends TestCase { - /** - * @dataProvider provideValidConstructorArguments - */ + #[DataProvider('provideValidConstructorArguments')] public function testConstruction(string $target, string $operator, $value): void { $criterion = new DateMetadata($target, $operator, $value); diff --git a/tests/lib/Repository/Values/Content/SectionTest.php b/tests/lib/Repository/Values/Content/SectionTest.php index f9d1844392..58d93be149 100644 --- a/tests/lib/Repository/Values/Content/SectionTest.php +++ b/tests/lib/Repository/Values/Content/SectionTest.php @@ -11,16 +11,19 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; +#[CoversMethod(Section::class, '__get')] +#[CoversMethod(Section::class, '__set')] +#[CoversMethod(Section::class, '__isset')] +#[CoversMethod(Section::class, '__unset')] class SectionTest extends TestCase { use ValueObjectTestTrait; /** * Test retrieving missing property. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Section::__get */ public function testMissingProperty() { @@ -34,8 +37,6 @@ public function testMissingProperty() /** * Test setting read only property. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Section::__set */ public function testReadOnlyProperty() { @@ -48,8 +49,6 @@ public function testReadOnlyProperty() /** * Test if property exists. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Section::__isset */ public function testIsPropertySet() { @@ -64,8 +63,6 @@ public function testIsPropertySet() /** * Test unsetting a property. - * - * @covers \Ibexa\Contracts\Core\Repository\Values\Content\Section::__unset */ public function testUnsetProperty() { diff --git a/tests/lib/Repository/Values/Content/TrashItemTest.php b/tests/lib/Repository/Values/Content/TrashItemTest.php index b375fac104..e6721c1f2e 100644 --- a/tests/lib/Repository/Values/Content/TrashItemTest.php +++ b/tests/lib/Repository/Values/Content/TrashItemTest.php @@ -11,11 +11,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Core\Repository\Values\Content\TrashItem; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\Content\TrashItem - */ +#[CoversClass(TrashItem::class)] +#[CoversMethod(TrashItem::class, '__unset')] class TrashItemTest extends TestCase { use ValueObjectTestTrait; @@ -61,8 +62,6 @@ public function testIsPropertySet() /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\Content\TrashItem::__unset */ public function testUnsetProperty() { diff --git a/tests/lib/Repository/Values/Content/VersionInfoTest.php b/tests/lib/Repository/Values/Content/VersionInfoTest.php index 517811353f..1fec3bb302 100644 --- a/tests/lib/Repository/Values/Content/VersionInfoTest.php +++ b/tests/lib/Repository/Values/Content/VersionInfoTest.php @@ -9,11 +9,10 @@ namespace Ibexa\Tests\Core\Repository\Values\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\Content\VersionInfo - */ +#[CoversClass(VersionInfo::class)] final class VersionInfoTest extends TestCase { public function testIsDraft(): void diff --git a/tests/lib/Repository/Values/ContentType/ContentTypeTest.php b/tests/lib/Repository/Values/ContentType/ContentTypeTest.php index 787d16842d..c3f1b0b725 100644 --- a/tests/lib/Repository/Values/ContentType/ContentTypeTest.php +++ b/tests/lib/Repository/Values/ContentType/ContentTypeTest.php @@ -12,11 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionCollection as APIFieldDefinitionCollection; use Ibexa\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Repository\Values\ContentType\ContentTypeDraft; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\ContentType\ContentType - */ +#[CoversClass(ContentType::class)] final class ContentTypeTest extends TestCase { private const string EXAMPLE_FIELD_DEFINITION_IDENTIFIER = 'example'; @@ -32,7 +32,7 @@ public function testStrictGetters(): void public function testGetFieldDefinition(): void { - $fieldDefinition = $this->createMock(FieldDefinition::class); + $fieldDefinition = self::createStub(FieldDefinition::class); $fieldDefinitionCollection = $this->createMock(APIFieldDefinitionCollection::class); @@ -96,7 +96,7 @@ public function testHasFieldDefinitionOfType(): void public function testGetFieldDefinitionsOfType(): void { - $expectedFieldDefinitionCollection = $this->createMock(APIFieldDefinitionCollection::class); + $expectedFieldDefinitionCollection = self::createStub(APIFieldDefinitionCollection::class); $fieldDefinitionCollection = $this->createMock(APIFieldDefinitionCollection::class); $fieldDefinitionCollection @@ -117,7 +117,7 @@ public function testGetFieldDefinitionsOfType(): void public function testGetFirstFieldDefinitionOfType(): void { - $expectedFieldDefinition = $this->createMock(FieldDefinition::class); + $expectedFieldDefinition = self::createStub(FieldDefinition::class); $filteredFieldDefinitionCollection = $this->createMock(APIFieldDefinitionCollection::class); $filteredFieldDefinitionCollection @@ -141,9 +141,7 @@ public function testGetFirstFieldDefinitionOfType(): void ); } - /** - * @dataProvider provideForDeprecatedPropertyAccessMatchesMethodCallResult - */ + #[DataProvider('provideForDeprecatedPropertyAccessMatchesMethodCallResult')] public function testDeprecatedPropertyAccessMatchesMethodCallResult(bool $isContainer): void { $contentTypeDraft = new ContentTypeDraft([ @@ -162,7 +160,7 @@ public function testDeprecatedPropertyAccessMatchesMethodCallResult(bool $isCont /** * @return iterable */ - public function provideForDeprecatedPropertyAccessMatchesMethodCallResult(): iterable + public static function provideForDeprecatedPropertyAccessMatchesMethodCallResult(): iterable { yield 'content type draft is a container' => [true]; yield 'content type draft is not a container' => [false]; diff --git a/tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php b/tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php index a4a02f449d..bc0c1bc8dd 100644 --- a/tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php +++ b/tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php @@ -13,11 +13,10 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition as APIFieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection - */ +#[CoversClass(FieldDefinitionCollection::class)] final class FieldDefinitionCollectionTest extends TestCase { public function testGet(): void diff --git a/tests/lib/Repository/Values/ContentType/FieldDefinitionTest.php b/tests/lib/Repository/Values/ContentType/FieldDefinitionTest.php index 6634f3bdfa..f297cf6703 100644 --- a/tests/lib/Repository/Values/ContentType/FieldDefinitionTest.php +++ b/tests/lib/Repository/Values/ContentType/FieldDefinitionTest.php @@ -10,16 +10,15 @@ use Ibexa\Core\FieldType\Value as BaseFieldValue; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\ContentType\FieldDefinition - */ +#[CoversClass(FieldDefinition::class)] final class FieldDefinitionTest extends TestCase { public function testStrictGetters(): void { - $defaultValueMock = $this->createMock(BaseFieldValue::class); + $defaultValueMock = self::createStub(BaseFieldValue::class); $fieldDefinition = new FieldDefinition( [ 'id' => 123, diff --git a/tests/lib/Repository/Values/Filter/FilterTest.php b/tests/lib/Repository/Values/Filter/FilterTest.php index a6d29af580..468d329a43 100644 --- a/tests/lib/Repository/Values/Filter/FilterTest.php +++ b/tests/lib/Repository/Values/Filter/FilterTest.php @@ -17,12 +17,12 @@ use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringCriterion; use Ibexa\Contracts\Core\Repository\Values\URL\Query\SortClause as URLQuerySortClause; use function md5; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use function sprintf; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\Filter\Filter - */ +#[CoversClass(Filter::class)] final class FilterTest extends TestCase { /** @@ -43,10 +43,9 @@ public function testConstructor(): void } /** - * @dataProvider getInvalidSortClausesData - * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException */ + #[DataProvider('getInvalidSortClausesData')] public function testConstructorThrowsBadStateException( array $sortClauses, string $expectedExceptionMessage @@ -57,7 +56,7 @@ public function testConstructorThrowsBadStateException( return new Filter(new Criterion\ParentLocationId(3), $sortClauses); } - public function getInvalidSortClausesData(): iterable + public static function getInvalidSortClausesData(): iterable { yield [ [ @@ -183,10 +182,9 @@ public function testWithSortClause(): Filter } /** - * @dataProvider getComplexFilterTestData - * * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause[] $expectedSortClauses */ + #[DataProvider('getComplexFilterTestData')] public function testBuildingComplexFilter( Filter $filter, ?Query\CriterionInterface $expectedCriterion, @@ -204,7 +202,7 @@ public function testBuildingComplexFilter( * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ - public function getComplexFilterTestData(): iterable + public static function getComplexFilterTestData(): iterable { $parent1Criterion = new Criterion\ParentLocationId(1); $engGBCriterion = new Criterion\LanguageCode('eng-GB'); @@ -334,9 +332,7 @@ public function getComplexFilterTestData(): iterable ]; } - /** - * @dataProvider getFiltersWithInvalidSliceData - */ + #[DataProvider('getFiltersWithInvalidSliceData')] public function testSliceByThrowsInvalidArgumentException( int $limit, int $offset, @@ -350,7 +346,7 @@ public function testSliceByThrowsInvalidArgumentException( $filter->sliceBy($limit, $offset); } - public function getFiltersWithInvalidSliceData(): iterable + public static function getFiltersWithInvalidSliceData(): iterable { yield [-1, 0, 'Argument \'$limit\' is invalid: Filtering slice limit needs to be >=0, got -1']; yield [0, -1, 'Argument \'$offset\' is invalid: Filtering slice offset needs to be >=0, got -1']; @@ -364,9 +360,7 @@ public function getFiltersWithInvalidSliceData(): iterable ]; } - /** - * @dataProvider getFilters - */ + #[DataProvider('getFilters')] public function testReset(Filter $filter): void { $filter->reset(); @@ -376,9 +370,7 @@ public function testReset(Filter $filter): void self::assertSame(0, $filter->getLimit()); } - /** - * @dataProvider getFilters - */ + #[DataProvider('getFilters')] public function testClone(Filter $filter): void { $clonedFilter = clone $filter; @@ -397,7 +389,7 @@ public function testClone(Filter $filter): void /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\BadStateException */ - public function getFilters(): iterable + public static function getFilters(): iterable { $criterion = new Criterion\LogicalAnd( [ diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php index a5b2b81145..f45d82772e 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php @@ -12,11 +12,14 @@ use Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup; use Ibexa\Tests\Core\Repository\Values\MultiLanguageTestTrait; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup - */ +#[CoversClass(ObjectStateGroup::class)] +#[CoversMethod(ObjectStateGroup::class, '__get')] +#[CoversMethod(ObjectStateGroup::class, '__set')] +#[CoversMethod(ObjectStateGroup::class, '__unset')] class ObjectStateGroupTest extends TestCase { use ValueObjectTestTrait; @@ -74,8 +77,6 @@ public function testNewClassWithMultiLanguageProperties() /** * Test retrieving missing property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup::__get */ public function testMissingProperty() { @@ -89,8 +90,6 @@ public function testMissingProperty() /** * Test setting read only property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup::__set */ public function testReadOnlyProperty() { @@ -117,8 +116,6 @@ public function testIsPropertySet() /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup::__unset */ public function testUnsetProperty() { diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php index 3dd7a34063..da803ddd94 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php @@ -9,14 +9,22 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyNotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; +use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup as CoveredObjectStateGroup; use Ibexa\Core\Repository\Values\ObjectState\ObjectState; +use Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup; use Ibexa\Tests\Core\Repository\Values\MultiLanguageTestTrait; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectState - */ +#[CoversClass(ObjectState::class)] +#[CoversMethod(ObjectState::class, '__get')] +#[CoversMethod(ObjectStateGroup::class, '__get')] +#[CoversMethod(ObjectState::class, '__set')] +#[CoversMethod(ObjectStateGroup::class, '__set')] +#[CoversMethod(ObjectState::class, '__unset')] +#[CoversMethod(CoveredObjectStateGroup::class, '__unset')] class ObjectStateTest extends TestCase { use ValueObjectTestTrait; @@ -75,9 +83,6 @@ public function testNewClassWithMultiLanguageProperties() /** * Test retrieving missing property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectState::__get - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup::__get */ public function testMissingProperty() { @@ -91,9 +96,6 @@ public function testMissingProperty() /** * Test setting read only property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectState::__set - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectStateGroup::__set */ public function testReadOnlyProperty() { @@ -120,9 +122,6 @@ public function testIsPropertySet() /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\ObjectState\ObjectState::__unset - * @covers \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup::__unset */ public function testUnsetProperty() { diff --git a/tests/lib/Repository/Values/Translation/MessageTest.php b/tests/lib/Repository/Values/Translation/MessageTest.php index cfd2b52f09..fb1c7da832 100644 --- a/tests/lib/Repository/Values/Translation/MessageTest.php +++ b/tests/lib/Repository/Values/Translation/MessageTest.php @@ -9,18 +9,17 @@ namespace Ibexa\Tests\Core\Repository\Values\Translation; use Ibexa\Contracts\Core\Repository\Values\Translation\Message; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\Translation\Message - */ +#[CoversClass(Message::class)] final class MessageTest extends TestCase { /** - * @dataProvider getDataForTestMessage - * * @param array $values */ + #[DataProvider('getDataForTestMessage')] public function testStringable( string $message, array $values, @@ -30,10 +29,9 @@ public function testStringable( } /** - * @dataProvider getDataForTestMessage - * * @param array $values */ + #[DataProvider('getDataForTestMessage')] public function testGetters(string $message, array $values): void { $translation = new Message($message, $values); diff --git a/tests/lib/Repository/Values/Translation/PluralTest.php b/tests/lib/Repository/Values/Translation/PluralTest.php index 26acfd14f3..0984936fb7 100644 --- a/tests/lib/Repository/Values/Translation/PluralTest.php +++ b/tests/lib/Repository/Values/Translation/PluralTest.php @@ -9,18 +9,17 @@ namespace Ibexa\Tests\Core\Repository\Values\Translation; use Ibexa\Contracts\Core\Repository\Values\Translation\Plural; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Repository\Values\Translation\Plural - */ +#[CoversClass(Plural::class)] final class PluralTest extends TestCase { /** - * @dataProvider getDataForTestPlural - * * @param array $values */ + #[DataProvider('getDataForTestPlural')] public function testStringable( string $singular, string $plural, @@ -31,10 +30,9 @@ public function testStringable( } /** - * @dataProvider getDataForTestPlural - * * @param array $values */ + #[DataProvider('getDataForTestPlural')] public function testGetters( string $singular, string $plural, diff --git a/tests/lib/Repository/Values/User/PolicyTest.php b/tests/lib/Repository/Values/User/PolicyTest.php index 3a0ff9bbca..035174082d 100644 --- a/tests/lib/Repository/Values/User/PolicyTest.php +++ b/tests/lib/Repository/Values/User/PolicyTest.php @@ -11,16 +11,20 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Core\Repository\Values\User\Policy; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; +#[CoversMethod(Policy::class, '__construct')] +#[CoversMethod(Policy::class, '__get')] +#[CoversMethod(Policy::class, '__set')] +#[CoversMethod(Policy::class, '__isset')] +#[CoversMethod(Policy::class, '__unset')] class PolicyTest extends TestCase { use ValueObjectTestTrait; /** * Test a new class and default values on properties. - * - * @covers \Ibexa\Core\Repository\Values\User\Policy::__construct */ public function testNewClass() { @@ -38,8 +42,6 @@ public function testNewClass() /** * Test retrieving missing property. - * - * @covers \Ibexa\Core\Repository\Values\User\Policy::__get */ public function testMissingProperty() { @@ -53,8 +55,6 @@ public function testMissingProperty() /** * Test setting read only property. - * - * @covers \Ibexa\Core\Repository\Values\User\Policy::__set */ public function testReadOnlyProperty() { @@ -67,8 +67,6 @@ public function testReadOnlyProperty() /** * Test if property exists. - * - * @covers \Ibexa\Core\Repository\Values\User\Policy::__isset */ public function testIsPropertySet() { @@ -83,8 +81,6 @@ public function testIsPropertySet() /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\User\Policy::__unset */ public function testUnsetProperty() { diff --git a/tests/lib/Repository/Values/User/RoleTest.php b/tests/lib/Repository/Values/User/RoleTest.php index c62122c8de..ab5a0997c2 100644 --- a/tests/lib/Repository/Values/User/RoleTest.php +++ b/tests/lib/Repository/Values/User/RoleTest.php @@ -11,11 +11,14 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Core\Repository\Values\User\Role; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\User\Role - */ +#[CoversClass(Role::class)] +#[CoversMethod(Role::class, '__get')] +#[CoversMethod(Role::class, '__set')] +#[CoversMethod(Role::class, '__unset')] class RoleTest extends TestCase { use ValueObjectTestTrait; @@ -37,8 +40,6 @@ public function testNewClass(): void /** * Test retrieving missing property. - * - * @covers \Ibexa\Core\Repository\Values\User\Role::__get */ public function testMissingProperty(): void { @@ -52,8 +53,6 @@ public function testMissingProperty(): void /** * Test setting read only property. - * - * @covers \Ibexa\Core\Repository\Values\User\Role::__set */ public function testReadOnlyProperty(): void { @@ -77,8 +76,6 @@ public function testIsPropertySet(): void /** * Test unsetting a property. - * - * @covers \Ibexa\Core\Repository\Values\User\Role::__unset */ public function testUnsetProperty(): void { diff --git a/tests/lib/Repository/Values/User/UserGroupTest.php b/tests/lib/Repository/Values/User/UserGroupTest.php index 59bb0ace42..776d2d3411 100644 --- a/tests/lib/Repository/Values/User/UserGroupTest.php +++ b/tests/lib/Repository/Values/User/UserGroupTest.php @@ -13,11 +13,10 @@ use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\UserGroup; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\User\UserGroup - */ +#[CoversClass(UserGroup::class)] class UserGroupTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/User/UserTest.php b/tests/lib/Repository/Values/User/UserTest.php index e6f0bac126..d768fc2e8c 100644 --- a/tests/lib/Repository/Values/User/UserTest.php +++ b/tests/lib/Repository/Values/User/UserTest.php @@ -13,11 +13,10 @@ use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\User; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Repository\Values\User\User - */ +#[CoversClass(User::class)] final class UserTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Search/Common/FieldValueMapper/AggregateTest.php b/tests/lib/Search/Common/FieldValueMapper/AggregateTest.php index ee34111799..208576637e 100644 --- a/tests/lib/Search/Common/FieldValueMapper/AggregateTest.php +++ b/tests/lib/Search/Common/FieldValueMapper/AggregateTest.php @@ -14,11 +14,10 @@ use Ibexa\Contracts\Core\Search\FieldType\FloatField; use Ibexa\Core\Search\Common\FieldValueMapper\Aggregate; use Ibexa\Core\Search\Common\FieldValueMapper\BooleanMapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Search\Common\FieldValueMapper\Aggregate - */ +#[CoversClass(Aggregate::class)] final class AggregateTest extends TestCase { private const MAPPED_VALUE = true; @@ -71,7 +70,7 @@ public function testMapThrowsNotImplementedException(): void $booleanMapperMock = $this->createMock(BooleanMapper::class); $this->aggregateMapper->addMapper($booleanMapperMock); - $floatFieldMock = $this->createMock(FloatField::class); + $floatFieldMock = self::createStub(FloatField::class); $searchFieldMock = $this->createMock(Field::class); $searchFieldMock ->method('getType') diff --git a/tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php b/tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php index b90fe383e5..d2e11fcfed 100644 --- a/tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php +++ b/tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php @@ -15,11 +15,11 @@ use Ibexa\Contracts\Core\Search\FieldType\StringField; use Ibexa\Core\Search\Common\FieldValueMapper\RemoteIdentifierMapper; use Ibexa\Tests\Core\Search\TestCase; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Psr\Log\LoggerInterface; -/** - * @covers \Ibexa\Core\Search\Common\FieldValueMapper\RemoteIdentifierMapper - */ +#[CoversClass(RemoteIdentifierMapper::class)] final class RemoteIdentifierMapperTest extends TestCase { /** @var \Ibexa\Core\Search\Common\FieldValueMapper\RemoteIdentifierMapper */ @@ -28,19 +28,17 @@ final class RemoteIdentifierMapperTest extends TestCase protected function setUp(): void { $this->mapper = new RemoteIdentifierMapper( - $this->createMock(LoggerInterface::class) + self::createStub(LoggerInterface::class) ); } - /** - * @dataProvider getDataForTestCanMap - */ + #[DataProvider('getDataForTestCanMap')] public function testCanMap(Field $field, bool $canMap): void { self::assertSame($canMap, $this->mapper->canMap($field)); } - public function getDataForTestCanMap(): iterable + public static function getDataForTestCanMap(): iterable { yield 'can map' => [ new Field('id', 1, new RemoteIdentifierField()), @@ -63,15 +61,13 @@ public function getDataForTestCanMap(): iterable ]; } - /** - * @dataProvider getDataForTestMap - */ + #[DataProvider('getDataForTestMap')] public function testMap(Field $field, string $expectedMappedValue): void { self::assertSame($expectedMappedValue, $this->mapper->map($field)); } - public function getDataForTestMap(): iterable + public static function getDataForTestMap(): iterable { yield 'numeric id' => [ new Field('id', 1, new IdentifierField()), diff --git a/tests/lib/Search/Common/FieldValueMapper/StringMapperTest.php b/tests/lib/Search/Common/FieldValueMapper/StringMapperTest.php index eddd165ddc..b74889f45a 100644 --- a/tests/lib/Search/Common/FieldValueMapper/StringMapperTest.php +++ b/tests/lib/Search/Common/FieldValueMapper/StringMapperTest.php @@ -11,11 +11,10 @@ use Ibexa\Contracts\Core\Search\Field; use Ibexa\Contracts\Core\Search\FieldType\StringField; use Ibexa\Core\Search\Common\FieldValueMapper\StringMapper; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Search\Common\FieldValueMapper\StringMapper - */ +#[CoversClass(StringMapper::class)] final class StringMapperTest extends TestCase { private StringMapper $mapper; diff --git a/tests/lib/Search/Embedding/EmbeddingProviderRegistryTest.php b/tests/lib/Search/Embedding/EmbeddingProviderRegistryTest.php index 5c46f95625..2fe9b233a4 100644 --- a/tests/lib/Search/Embedding/EmbeddingProviderRegistryTest.php +++ b/tests/lib/Search/Embedding/EmbeddingProviderRegistryTest.php @@ -18,7 +18,7 @@ final class EmbeddingProviderRegistryTest extends TestCase public function testHasEmbeddingProvider(): void { $registry = new EmbeddingProviderRegistry([ - 'existing' => $this->createMock(EmbeddingProviderInterface::class), + 'existing' => self::createStub(EmbeddingProviderInterface::class), ]); self::assertTrue($registry->hasEmbeddingProvider('existing')); @@ -27,7 +27,7 @@ public function testHasEmbeddingProvider(): void public function testGetEmbeddingProvider(): void { - $expectedEmbeddingProvider = $this->createMock(EmbeddingProviderInterface::class); + $expectedEmbeddingProvider = self::createStub(EmbeddingProviderInterface::class); $registry = new EmbeddingProviderRegistry([ 'example' => $expectedEmbeddingProvider, @@ -50,8 +50,8 @@ public function testGetEmbeddingProviderThrowsInvalidArgumentException(): void public function testGetEmbeddingProviders(): void { - $embeddingProviderA = $this->createMock(EmbeddingProviderInterface::class); - $embeddingProviderB = $this->createMock(EmbeddingProviderInterface::class); + $embeddingProviderA = self::createStub(EmbeddingProviderInterface::class); + $embeddingProviderB = self::createStub(EmbeddingProviderInterface::class); $registry = new EmbeddingProviderRegistry([ 'existingA' => $embeddingProviderA, diff --git a/tests/lib/Search/Embedding/EmbeddingProviderResolverTest.php b/tests/lib/Search/Embedding/EmbeddingProviderResolverTest.php index 174c036ea9..042deee5b9 100644 --- a/tests/lib/Search/Embedding/EmbeddingProviderResolverTest.php +++ b/tests/lib/Search/Embedding/EmbeddingProviderResolverTest.php @@ -38,7 +38,7 @@ protected function setUp(): void public function testResolveReturnsProviderWhenAvailable(): void { $embeddingProviderIdentifier = 'ibexa_openai'; - $mockProvider = $this->createMock(EmbeddingProviderInterface::class); + $mockProvider = self::createStub(EmbeddingProviderInterface::class); $this->configuration ->method('getDefaultProvider') @@ -84,7 +84,7 @@ public function testResolveByModelIdentifierReturnsProviderConfiguredForModel(): { $modelIdentifier = 'gemini_embedding_001_1536'; $embeddingProviderIdentifier = 'ibexa_gemini'; - $mockProvider = $this->createMock(EmbeddingProviderInterface::class); + $mockProvider = self::createStub(EmbeddingProviderInterface::class); $this->configuration ->expects(self::once()) diff --git a/tests/lib/Search/FieldNameResolverTest.php b/tests/lib/Search/FieldNameResolverTest.php index 04482068d6..01437e7c9a 100644 --- a/tests/lib/Search/FieldNameResolverTest.php +++ b/tests/lib/Search/FieldNameResolverTest.php @@ -17,10 +17,9 @@ use Ibexa\Core\Search\Common\FieldNameGenerator; use Ibexa\Core\Search\Common\FieldNameResolver; use Ibexa\Core\Search\Common\FieldRegistry; +use PHPUnit\Framework\Attributes\CoversClass; -/** - * @covers \Ibexa\Core\Search\Common\FieldNameResolver - */ +#[CoversClass(FieldNameResolver::class)] class FieldNameResolverTest extends TestCase { public function testGetFieldNamesReturnsEmptyArray() @@ -92,33 +91,27 @@ public function testGetFieldNames() ) ); + $getIndexFieldNameMatcher = self::exactly(2); $mockedFieldNameResolver - ->expects(self::at(1)) + ->expects($getIndexFieldNameMatcher) ->method('getIndexFieldName') - ->with( - self::isInstanceOf( - APICriterion::class - ), - 'content_type_identifier_1', - 'field_definition_identifier_1', - 'field_type_identifier_1', - null - ) - ->will(self::returnValue(['index_field_name_1' => null])); + ->willReturnCallback(static function ($criterion, $contentTypeIdentifier, $fieldDefinitionIdentifier, $fieldTypeIdentifier, $fieldName) use ($getIndexFieldNameMatcher) { + self::assertInstanceOf(APICriterion::class, $criterion); + self::assertSame('field_definition_identifier_1', $fieldDefinitionIdentifier); + self::assertNull($fieldName); - $mockedFieldNameResolver - ->expects(self::at(2)) - ->method('getIndexFieldName') - ->with( - self::isInstanceOf( - APICriterion::class - ), - 'content_type_identifier_2', - 'field_definition_identifier_1', - 'field_type_identifier_2', - null - ) - ->will(self::returnValue(['index_field_name_2' => null])); + if ($getIndexFieldNameMatcher->numberOfInvocations() === 1) { + self::assertSame('content_type_identifier_1', $contentTypeIdentifier); + self::assertSame('field_type_identifier_1', $fieldTypeIdentifier); + + return ['index_field_name_1' => null]; + } + + self::assertSame('content_type_identifier_2', $contentTypeIdentifier); + self::assertSame('field_type_identifier_2', $fieldTypeIdentifier); + + return ['index_field_name_2' => null]; + }); $fieldNames = $mockedFieldNameResolver->getFieldTypes( $criterionMock, @@ -166,33 +159,27 @@ public function testGetFieldNamesWithNamedField() ) ); + $getIndexFieldNameMatcher = self::exactly(2); $mockedFieldNameResolver - ->expects(self::at(1)) + ->expects($getIndexFieldNameMatcher) ->method('getIndexFieldName') - ->with( - self::isInstanceOf( - APICriterion::class - ), - 'content_type_identifier_1', - 'field_definition_identifier_1', - 'field_type_identifier_1', - 'field_name' - ) - ->will(self::returnValue(['index_field_name_1' => null])); + ->willReturnCallback(static function ($criterion, $contentTypeIdentifier, $fieldDefinitionIdentifier, $fieldTypeIdentifier, $fieldName) use ($getIndexFieldNameMatcher) { + self::assertInstanceOf(APICriterion::class, $criterion); + self::assertSame('field_definition_identifier_1', $fieldDefinitionIdentifier); + self::assertSame('field_name', $fieldName); - $mockedFieldNameResolver - ->expects(self::at(2)) - ->method('getIndexFieldName') - ->with( - self::isInstanceOf( - APICriterion::class - ), - 'content_type_identifier_2', - 'field_definition_identifier_1', - 'field_type_identifier_2', - 'field_name' - ) - ->will(self::returnValue(['index_field_name_2' => null])); + if ($getIndexFieldNameMatcher->numberOfInvocations() === 1) { + self::assertSame('content_type_identifier_1', $contentTypeIdentifier); + self::assertSame('field_type_identifier_1', $fieldTypeIdentifier); + + return ['index_field_name_1' => null]; + } + + self::assertSame('content_type_identifier_2', $contentTypeIdentifier); + self::assertSame('field_type_identifier_2', $fieldTypeIdentifier); + + return ['index_field_name_2' => null]; + }); $fieldNames = $mockedFieldNameResolver->getFieldTypes( $criterionMock, @@ -243,7 +230,7 @@ public function testGetFieldNamesWithTypedField() ); $mockedFieldNameResolver - ->expects(self::at(1)) + ->expects(self::once()) ->method('getIndexFieldName') ->with( self::isInstanceOf( @@ -304,7 +291,7 @@ public function testGetFieldNamesWithTypedAndNamedField() ); $mockedFieldNameResolver - ->expects(self::at(1)) + ->expects(self::once()) ->method('getIndexFieldName') ->with( self::isInstanceOf( @@ -769,7 +756,7 @@ public function testGetIndexFieldNameNamedFieldThrowsRuntimeException() */ protected function getMockedFieldNameResolver(array $methods = []) { - $fieldNameResolver = $this + $builder = $this ->getMockBuilder(FieldNameResolver::class) ->setConstructorArgs( [ @@ -777,9 +764,11 @@ protected function getMockedFieldNameResolver(array $methods = []) $this->getContentTypeHandlerMock(), $this->getFieldNameGeneratorMock(), ] - ) - ->setMethods($methods) - ->getMock(); + ); + if ($methods !== []) { + $builder->onlyMethods(array_values($methods)); + } + $fieldNameResolver = $builder->getMock(); return $fieldNameResolver; } diff --git a/tests/lib/Search/Indexer/ContentIdBatchListTest.php b/tests/lib/Search/Indexer/ContentIdBatchListTest.php index 1a4a2d6887..425f3f4390 100644 --- a/tests/lib/Search/Indexer/ContentIdBatchListTest.php +++ b/tests/lib/Search/Indexer/ContentIdBatchListTest.php @@ -12,21 +12,21 @@ use Generator; use Ibexa\Core\Search\Indexer\ContentIdBatchList; use IteratorAggregate; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Traversable; -/** - * @covers \Ibexa\Core\Search\Indexer\ContentIdBatchList - */ +#[CoversClass(ContentIdBatchList::class)] final class ContentIdBatchListTest extends TestCase { /** * @return iterable>, int, array>}> */ - public function getDataForTestGetIterator(): iterable + public static function getDataForTestGetIterator(): iterable { yield 'generator' => [ - $this->buildGenerator(), + self::buildGenerator(), 5, [ [1, 2, 3], @@ -49,7 +49,7 @@ public function getDataForTestGetIterator(): iterable ]; yield 'Traversable object' => [ - $this->buildTraversableObject(), + self::buildTraversableObject(), 5, [ [1, 2, 3, 4], @@ -58,18 +58,17 @@ public function getDataForTestGetIterator(): iterable ]; yield 'empty generator' => [ - $this->buildEmptyGenerator(), + self::buildEmptyGenerator(), 0, [], ]; } /** - * @dataProvider getDataForTestGetIterator - * * @param iterable> $list * @param array> $expectedBatches */ + #[DataProvider('getDataForTestGetIterator')] public function testGetIterator(iterable $list, int $totalCount, array $expectedBatches): void { $contentIdBatchList = new ContentIdBatchList($list, $totalCount); @@ -86,13 +85,13 @@ public function testGetCount(): void self::assertSame(3, $contentIdBatchList->getCount()); } - private function buildGenerator(): Generator + private static function buildGenerator(): Generator { yield [1, 2, 3]; yield [4, 5]; } - private function buildEmptyGenerator(): \Generator + private static function buildEmptyGenerator(): \Generator { yield from []; } @@ -100,7 +99,7 @@ private function buildEmptyGenerator(): \Generator /** * @return \Traversable> */ - private function buildTraversableObject(): Traversable + private static function buildTraversableObject(): Traversable { return new class() implements IteratorAggregate { /** diff --git a/tests/lib/Search/Legacy/Content/AbstractTestCase.php b/tests/lib/Search/Legacy/Content/AbstractTestCase.php index ca15b7023e..378b877427 100644 --- a/tests/lib/Search/Legacy/Content/AbstractTestCase.php +++ b/tests/lib/Search/Legacy/Content/AbstractTestCase.php @@ -98,11 +98,11 @@ protected function getContentTypeHandler(): SPIContentTypeHandler new ContentTypeMapper( $this->getConverterRegistry(), $this->getLanguageMaskGenerator(), - $this->createMock(StorageDispatcherInterface::class), + self::createStub(StorageDispatcherInterface::class), $this->getFieldTypeAliasResolver(), ), - $this->createMock(ContentTypeUpdateHandler::class), - $this->createMock(StorageDispatcherInterface::class), + self::createStub(ContentTypeUpdateHandler::class), + self::createStub(StorageDispatcherInterface::class), $this->getFieldTypeAliasResolver(), ); } @@ -137,8 +137,8 @@ protected function getEventDispatcher(): EventDispatcherInterface $eventDispatcher->addSubscriber( new ResolveVirtualFieldSubscriber( $this->getConverterRegistry(), - $this->createMock(StorageRegistry::class), - $this->createMock(Gateway::class) + self::createStub(StorageRegistry::class), + self::createStub(Gateway::class) ) ); diff --git a/tests/lib/Search/Legacy/Content/Common/Gateway/SortClauseHandler/Random/RandomSortClauseHandlerPlatformSupportTest.php b/tests/lib/Search/Legacy/Content/Common/Gateway/SortClauseHandler/Random/RandomSortClauseHandlerPlatformSupportTest.php index 31102256ca..29f122858d 100644 --- a/tests/lib/Search/Legacy/Content/Common/Gateway/SortClauseHandler/Random/RandomSortClauseHandlerPlatformSupportTest.php +++ b/tests/lib/Search/Legacy/Content/Common/Gateway/SortClauseHandler/Random/RandomSortClauseHandlerPlatformSupportTest.php @@ -21,20 +21,19 @@ use Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\MySqlRandom; use Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\PgSqlRandom; use Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\SqlLiteRandom; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\MySqlRandom - * @covers \Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\PgSqlRandom - * @covers \Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Random\SqlLiteRandom - */ +#[CoversClass(MySqlRandom::class)] +#[CoversClass(PgSqlRandom::class)] +#[CoversClass(SqlLiteRandom::class)] final class RandomSortClauseHandlerPlatformSupportTest extends TestCase { /** - * @dataProvider providePlatformSupport - * * @phpstan-param class-string<\Ibexa\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\AbstractRandom> $handlerClass */ + #[DataProvider('providePlatformSupport')] public function testSupportsPlatform( string $handlerClass, AbstractPlatform $platform, @@ -49,7 +48,7 @@ public function testSupportsPlatform( /** * @return iterable, AbstractPlatform, bool}> */ - public function providePlatformSupport(): iterable + public static function providePlatformSupport(): iterable { yield 'MySQL' => [MySqlRandom::class, new MySQLPlatform(), true]; yield 'MySQL 8.0' => [MySqlRandom::class, new MySQL80Platform(), true]; @@ -71,7 +70,7 @@ public function providePlatformSupport(): iterable */ private function createHandler(string $handlerClass, AbstractPlatform $platform): AbstractRandom { - $connection = $this->createStub(Connection::class); + $connection = self::createStub(Connection::class); $connection ->method('getDatabasePlatform') ->willReturn($platform); diff --git a/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php b/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php index bdea90b99a..3f8955d17f 100644 --- a/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php @@ -77,7 +77,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = ), $this->getLanguageHandler() ), - $this->createMock(LocationGateway::class), + self::createStub(LocationGateway::class), new Content\WordIndexer\Gateway\DoctrineDatabase( $this->getDatabaseConnection(), $this->getContentTypeHandler(), @@ -87,7 +87,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = $this->getFullTextSearchConfiguration() ), $this->getContentMapperMock(), - $this->createMock(LocationMapper::class), + self::createStub(LocationMapper::class), $this->getLanguageHandler(), $this->getFullTextMapper($this->getContentTypeHandler()) ); @@ -110,11 +110,11 @@ protected function getContentMapperMock() $this->getFieldTypeAliasResolver(), ] ) - ->setMethods(['extractContentInfoFromRows']) + ->onlyMethods(['extractContentInfoFromRows']) ->getMock(); $mapperMock->expects(self::any()) ->method('extractContentInfoFromRows') - ->with(self::isType('array')) + ->with(self::isArray()) ->will( self::returnCallback( static function ($rows): array { @@ -145,7 +145,6 @@ protected function getFieldRegistry() if (!isset($this->fieldRegistry)) { $this->fieldRegistry = $this->getMockBuilder(ConverterRegistry::class) ->setConstructorArgs([]) - ->setMethods([]) ->getMock(); } @@ -161,7 +160,7 @@ protected function getContentFieldHandlerMock() { return $this->getMockBuilder(FieldHandler::class) ->disableOriginalConstructor() - ->setMethods(['loadExternalFieldData']) + ->onlyMethods(['loadExternalFieldData']) ->getMock(); } diff --git a/tests/lib/Search/Legacy/Content/HandlerContentTest.php b/tests/lib/Search/Legacy/Content/HandlerContentTest.php index 3eab281e10..78eea2d39e 100644 --- a/tests/lib/Search/Legacy/Content/HandlerContentTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerContentTest.php @@ -199,7 +199,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = ), $this->getLanguageHandler() ), - $this->createMock(LocationGateway::class), + self::createStub(LocationGateway::class), new Content\WordIndexer\Gateway\DoctrineDatabase( $this->getDatabaseConnection(), $this->getContentTypeHandler(), @@ -209,7 +209,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = $this->getFullTextSearchConfiguration() ), $this->getContentMapperMock(), - $this->createMock(LocationMapper::class), + self::createStub(LocationMapper::class), $this->getLanguageHandler(), $this->getFullTextMapper($this->getContentTypeHandler()) ); @@ -232,11 +232,11 @@ protected function getContentMapperMock() $this->getFieldTypeAliasResolver(), ] ) - ->setMethods(['extractContentInfoFromRows']) + ->onlyMethods(['extractContentInfoFromRows']) ->getMock(); $mapperMock->expects(self::any()) ->method('extractContentInfoFromRows') - ->with(self::isType('array')) + ->with(self::isArray()) ->will( self::returnCallback( static function ($rows): array { @@ -266,7 +266,7 @@ protected function getContentFieldHandlerMock() { return $this->getMockBuilder(FieldHandler::class) ->disableOriginalConstructor() - ->setMethods(['loadExternalFieldData']) + ->onlyMethods(['loadExternalFieldData']) ->getMock(); } diff --git a/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php b/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php index fe4d39381f..0c33f4cb1f 100644 --- a/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php @@ -53,7 +53,7 @@ protected function getContentSearchHandler() $joinedTablesTracker = new JoinedTablesTracker(); return new Content\Handler( - $this->createMock(ContentGateway::class), + self::createStub(ContentGateway::class), new Content\Location\Gateway\DoctrineDatabase( $connection, new CriteriaConverter( @@ -101,7 +101,7 @@ protected function getContentSearchHandler() $this->getLanguageMaskGenerator(), $this->getFullTextSearchConfiguration() ), - $this->createMock(ContentMapper::class), + self::createStub(ContentMapper::class), $this->getLocationMapperMock(), $this->getLanguageHandler(), $this->getFullTextMapper($this->getContentTypeHandler()) @@ -116,12 +116,12 @@ protected function getContentSearchHandler() protected function getLocationMapperMock() { $mapperMock = $this->getMockBuilder(LocationMapper::class) - ->setMethods(['createLocationsFromRows']) + ->onlyMethods(['createLocationsFromRows']) ->getMock(); $mapperMock ->expects(self::any()) ->method('createLocationsFromRows') - ->with(self::isType('array')) + ->with(self::isArray()) ->will( self::returnCallback( static function ($rows): array { diff --git a/tests/lib/Search/Legacy/Content/HandlerLocationTest.php b/tests/lib/Search/Legacy/Content/HandlerLocationTest.php index 92d36ab6ce..6cf19d2b48 100644 --- a/tests/lib/Search/Legacy/Content/HandlerLocationTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerLocationTest.php @@ -72,7 +72,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = ); return new Content\Handler( - $this->createMock(ContentGateway::class), + self::createStub(ContentGateway::class), new Content\Location\Gateway\DoctrineDatabase( $connection, new CriteriaConverter( @@ -169,7 +169,7 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = $this->getLanguageMaskGenerator(), $this->getFullTextSearchConfiguration() ), - $this->createMock(ContentMapper::class), + self::createStub(ContentMapper::class), $this->getLocationMapperMock(), $this->getLanguageHandler(), $this->getFullTextMapper($this->getContentTypeHandler()) @@ -184,12 +184,12 @@ protected function getContentSearchHandler(array $fullTextSearchConfiguration = protected function getLocationMapperMock() { $mapperMock = $this->getMockBuilder(LocationMapper::class) - ->setMethods(['createLocationsFromRows']) + ->onlyMethods(['createLocationsFromRows']) ->getMock(); $mapperMock ->expects(self::any()) ->method('createLocationsFromRows') - ->with(self::isType('array')) + ->with(self::isArray()) ->will( self::returnCallback( static function ($rows): array { diff --git a/tests/lib/Specification/Content/ContentContainerSpecificationTest.php b/tests/lib/Specification/Content/ContentContainerSpecificationTest.php index 0aff756d04..8b9f8d5098 100644 --- a/tests/lib/Specification/Content/ContentContainerSpecificationTest.php +++ b/tests/lib/Specification/Content/ContentContainerSpecificationTest.php @@ -12,11 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Specification\Content\ContentContainerSpecification; use Ibexa\Contracts\Core\Specification\Content\ContentSpecification; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Specification\Content\ContentContainerSpecification - */ +#[CoversClass(ContentContainerSpecification::class)] final class ContentContainerSpecificationTest extends TestCase { public function testConstructor(): void @@ -26,9 +26,7 @@ public function testConstructor(): void self::assertInstanceOf(ContentSpecification::class, $contentTypeSpecification); } - /** - * @dataProvider providerForIsSatisfiedBy - */ + #[DataProvider('providerForIsSatisfiedBy')] public function testIsSatisfiedBy( bool $isContainer, bool $shouldBeSatisfied @@ -52,7 +50,7 @@ public function testIsSatisfiedBy( ); } - public function providerForIsSatisfiedBy(): array + public static function providerForIsSatisfiedBy(): array { return [ [true, true], diff --git a/tests/lib/Specification/Content/ContentTypeSpecificationTest.php b/tests/lib/Specification/Content/ContentTypeSpecificationTest.php index 49b8f534d1..a081c4266d 100644 --- a/tests/lib/Specification/Content/ContentTypeSpecificationTest.php +++ b/tests/lib/Specification/Content/ContentTypeSpecificationTest.php @@ -12,11 +12,11 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Specification\Content\ContentSpecification; use Ibexa\Contracts\Core\Specification\Content\ContentTypeSpecification; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Contracts\Core\Specification\Content\ContentTypeSpecification - */ +#[CoversClass(ContentTypeSpecification::class)] final class ContentTypeSpecificationTest extends TestCase { private const EXISTING_CONTENT_TYPE_IDENTIFIER = 'article'; @@ -40,9 +40,7 @@ public function testConstructorWithNotExistingContentTypeIdentifier(): void self::assertInstanceOf(ContentSpecification::class, $contentTypeSpecification); } - /** - * @dataProvider providerForIsSatisfiedBy - */ + #[DataProvider('providerForIsSatisfiedBy')] public function testIsSatisfiedBy( string $contentTypeSpecificationIdentifier, string $contentTypeIdentifier, @@ -69,7 +67,7 @@ public function testIsSatisfiedBy( ); } - public function providerForIsSatisfiedBy(): array + public static function providerForIsSatisfiedBy(): array { return [ [self::EXISTING_CONTENT_TYPE_IDENTIFIER, self::EXISTING_CONTENT_TYPE_IDENTIFIER, true], diff --git a/tests/lib/Token/RandomBytesGeneratorTest.php b/tests/lib/Token/RandomBytesGeneratorTest.php index 138485510e..6cf6f05c34 100644 --- a/tests/lib/Token/RandomBytesGeneratorTest.php +++ b/tests/lib/Token/RandomBytesGeneratorTest.php @@ -10,11 +10,11 @@ use Ibexa\Contracts\Core\Token\TokenGeneratorInterface; use Ibexa\Core\Token\RandomBytesGenerator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Token\RandomBytesGenerator - */ +#[CoversClass(RandomBytesGenerator::class)] final class RandomBytesGeneratorTest extends TestCase { private TokenGeneratorInterface $tokenGenerator; @@ -25,10 +25,9 @@ protected function setUp(): void } /** - * @dataProvider provideDataForTestGenerateToken - * * @throws \Exception */ + #[DataProvider('provideDataForTestGenerateToken')] public function testGenerateToken(int $expectedTokenLength): void { $generatedToken = $this->tokenGenerator->generateToken($expectedTokenLength); @@ -50,7 +49,7 @@ public function testGenerateToken(int $expectedTokenLength): void * int * }> */ - public function provideDataForTestGenerateToken(): iterable + public static function provideDataForTestGenerateToken(): iterable { yield [ 20, diff --git a/tests/lib/Token/WebSafeGeneratorTest.php b/tests/lib/Token/WebSafeGeneratorTest.php index e3ed9daafb..e02973f20f 100644 --- a/tests/lib/Token/WebSafeGeneratorTest.php +++ b/tests/lib/Token/WebSafeGeneratorTest.php @@ -10,11 +10,11 @@ use Ibexa\Contracts\Core\Token\TokenGeneratorInterface; use Ibexa\Core\Token\WebSafeGenerator; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -/** - * @covers \Ibexa\Core\Token\WebSafeGenerator - */ +#[CoversClass(WebSafeGenerator::class)] final class WebSafeGeneratorTest extends TestCase { private TokenGeneratorInterface $tokenGenerator; @@ -29,10 +29,9 @@ protected function setUp(): void } /** - * @dataProvider provideDataForTestGenerateToken - * * @throws \Exception */ + #[DataProvider('provideDataForTestGenerateToken')] public function testGenerateToken( int $expectedTokenLength, string $mockGeneratorOutputToken, @@ -63,7 +62,7 @@ public function testGenerateToken( * string * }> */ - public function provideDataForTestGenerateToken(): iterable + public static function provideDataForTestGenerateToken(): iterable { yield [ 20, diff --git a/tests/lib/Validation/StructValidatorTest.php b/tests/lib/Validation/StructValidatorTest.php index 8a81ab5e6f..2bdd370394 100644 --- a/tests/lib/Validation/StructValidatorTest.php +++ b/tests/lib/Validation/StructValidatorTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Validation\StructValidator; use Ibexa\Contracts\Core\Validation\ValidationFailedException; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use stdClass; use Symfony\Component\Validator\ConstraintViolation; @@ -18,9 +19,7 @@ use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; -/** - * @covers \Ibexa\Contracts\Core\Validation\StructValidator - */ +#[CoversClass(StructValidator::class)] final class StructValidatorTest extends TestCase { /** @var \Symfony\Component\Validator\Validator\ValidatorInterface&\PHPUnit\Framework\MockObject\MockObject) */ diff --git a/tests/lib/Validation/StructWrapperValidatorTest.php b/tests/lib/Validation/StructWrapperValidatorTest.php index 154d8c827b..1b27fe3299 100644 --- a/tests/lib/Validation/StructWrapperValidatorTest.php +++ b/tests/lib/Validation/StructWrapperValidatorTest.php @@ -10,6 +10,7 @@ use Ibexa\Contracts\Core\Validation\StructWrapperValidator; use Ibexa\Contracts\Core\Validation\ValidationStructWrapperInterface; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use stdClass; use Symfony\Component\Validator\ConstraintViolation; @@ -18,9 +19,7 @@ use Symfony\Component\Validator\ConstraintViolationListInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; -/** - * @covers \Ibexa\Contracts\Core\Validation\StructWrapperValidator - */ +#[CoversClass(StructWrapperValidator::class)] final class StructWrapperValidatorTest extends TestCase { /** @var \Symfony\Component\Validator\Validator\ValidatorInterface&\PHPUnit\Framework\MockObject\MockObject */ From 8a125e61d6b4b53cad68762c52e689f51f17df4b Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 14:33:15 +0200 Subject: [PATCH 02/20] IBX-12606: Removed constructor override from EZP22612URLAliasTranslations regression test --- phpstan-baseline.neon | 6 ------ .../Repository/Regression/EZP22612URLAliasTranslations.php | 5 ----- 2 files changed, 11 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 0b046f3540..e0c8d627a9 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -31968,12 +31968,6 @@ parameters: count: 1 path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:__construct\(\) overrides @final method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:__construct\(\)\.$#' - identifier: method.parentMethodFinalByPhpDoc - count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:getFolderCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php index 5474adf1f8..c374ed5a98 100644 --- a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php +++ b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php @@ -12,11 +12,6 @@ class EZP22612URLAliasTranslations extends BaseTestCase { - public function __construct() - { - parent::__construct(static::class); - } - protected function setUp(): void { $contentService = $this->getRepository()->getContentService(); From b402202fac997d9adfdaf3f94decd6965fa950e8 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 14:33:15 +0200 Subject: [PATCH 03/20] IBX-12606: Used exactly()-based expectations for multi-target evaluation in ParentContentTypeLimitationTypeTest --- phpstan-baseline.neon | 30 ----- .../ParentContentTypeLimitationTypeTest.php | 117 ++++++++++++------ 2 files changed, 81 insertions(+), 66 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e0c8d627a9..ed8bc2793d 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -40800,36 +40800,6 @@ parameters: count: 1 path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has parameter \$callNo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has parameter \$contentId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has parameter \$contentInfo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:assertContentHandlerExpectations\(\) has parameter \$persistenceCalled with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:getTestEvaluateContentMock\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php index 8ea1faa608..f017946ca4 100644 --- a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php @@ -454,21 +454,52 @@ public static function providerForTestEvaluate() ], 'expected' => true, ], + // ContentCreateStruct, with multiple LocationCreateStruct targets, with access + [ + 'limitation' => new ParentContentTypeLimitation(['limitationValues' => [12, 34]]), + 'object' => new ContentCreateStruct(), + 'targets' => [ + new LocationCreateStruct(['parentLocationId' => 43]), + new LocationCreateStruct(['parentLocationId' => 55]), + ], + 'persistence' => [ + 'locations' => [ + new SPILocation(['contentId' => 100]), + new SPILocation(['contentId' => 200]), + ], + 'contentInfos' => [ + new SPIContentInfo(['contentTypeId' => 12]), + new SPIContentInfo(['contentTypeId' => 34]), + ], + ], + 'expected' => true, + ], ]; } - protected function assertContentHandlerExpectations($callNo, $persistenceCalled, $contentId, $contentInfo) + /** + * @param int[]|string[] $contentIds + * @param \Ibexa\Contracts\Core\Persistence\Content\ContentInfo[] $contentInfos + */ + private function assertContentHandlerExpectations(array $contentIds, array $contentInfos): void { + $contentIds = array_values($contentIds); + $contentInfos = array_values($contentInfos); + $this->getPersistenceMock() - ->expects(self::once()) + ->expects(self::exactly(count($contentIds))) ->method('contentHandler') - ->will(self::returnValue($this->contentHandlerMock)); + ->willReturn($this->contentHandlerMock); + $matcher = self::exactly(count($contentIds)); $this->contentHandlerMock - ->expects(self::once()) + ->expects($matcher) ->method('loadContentInfo') - ->with($contentId) - ->will(self::returnValue($contentInfo)); + ->willReturnCallback(static function ($contentId) use ($matcher, $contentIds, $contentInfos) { + self::assertSame($contentIds[$matcher->numberOfInvocations() - 1], $contentId); + + return $contentInfos[$matcher->numberOfInvocations() - 1]; + }); } #[DataProvider('providerForTestEvaluate')] @@ -505,40 +536,47 @@ public function testEvaluate( ->expects(self::never()) ->method(self::anything()); } elseif (!empty($targets)) { + $locationLoadArguments = []; + $locationLoadReturnValues = []; + $contentIds = []; + $contentInfos = []; + foreach ($targets as $index => $target) { if ($target instanceof LocationCreateStruct) { - $this->getPersistenceMock() - ->expects(self::once()) - ->method('locationHandler') - ->will(self::returnValue($this->locationHandlerMock)); - - $this->locationHandlerMock - ->expects(self::once()) - ->method('load') - ->with($target->parentLocationId) - ->will(self::returnValue($location = $persistence['locations'][$index])); - - $contentId = $location->contentId; + $locationLoadArguments[] = $target->parentLocationId; + $location = $persistence['locations'][$index]; + $locationLoadReturnValues[] = $location; + $contentIds[] = $location->contentId; } else { - $contentId = $target->contentId; + $contentIds[] = $target->contentId; } - $this->assertContentHandlerExpectations( - $index, - $target instanceof LocationCreateStruct, - $contentId, - $persistence['contentInfos'][$index] - ); + $contentInfos[] = $persistence['contentInfos'][$index]; + } + + if ($locationLoadArguments !== []) { + $this->getPersistenceMock() + ->expects(self::exactly(count($locationLoadArguments))) + ->method('locationHandler') + ->willReturn($this->locationHandlerMock); + + $locationMatcher = self::exactly(count($locationLoadArguments)); + $this->locationHandlerMock + ->expects($locationMatcher) + ->method('load') + ->willReturnCallback(static function ($parentLocationId) use ($locationMatcher, $locationLoadArguments, $locationLoadReturnValues) { + self::assertSame($locationLoadArguments[$locationMatcher->numberOfInvocations() - 1], $parentLocationId); + + return $locationLoadReturnValues[$locationMatcher->numberOfInvocations() - 1]; + }); } + + $this->assertContentHandlerExpectations($contentIds, $contentInfos); } else { $this->getPersistenceMock() ->method('locationHandler') ->will(self::returnValue($this->locationHandlerMock)); - $this->getPersistenceMock() - ->method('contentHandler') - ->will(self::returnValue($this->contentHandlerMock)); - $this->locationHandlerMock ->method( $object instanceof ContentInfo && $object->published ? 'loadLocationsByContent' : 'loadParentLocationsForDraftContent' @@ -562,14 +600,21 @@ public function testEvaluate( } } - foreach ($persistence['locations'] as $index => $location) { - $this->assertContentHandlerExpectations( - $index, - true, - $location->contentId, - $persistence['contentInfos'][$index] - ); + $contentIds = []; + $contentInfos = []; + $contentInfoIndex = 0; + foreach ($persistence['locations'] as $location) { + // Locations with a depth > 0 are resolved to their parent location first (see + // ParentContentTypeLimitationType::loadParentLocations()); the parent's content ID + // is what evaluate() actually passes to contentHandler()->loadContentInfo(). + $target = $persistence['parentLocations'][$location->parentId] ?? $location; + + $contentIds[] = $target->contentId; + $contentInfos[] = $persistence['contentInfos'][$contentInfoIndex]; + ++$contentInfoIndex; } + + $this->assertContentHandlerExpectations($contentIds, $contentInfos); } $value = $limitationType->evaluate( From 69dbf948589ce1a9d8aa1d06a33e32e06c5fcddf Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 14:33:15 +0200 Subject: [PATCH 04/20] IBX-12606: Stripped parameter lists from CoversMethod attribute method names --- .../ContentServiceAuthorizationTest.php | 63 ++++++++----------- .../Core/Repository/ContentServiceTest.php | 53 +++++----------- .../ContentTypeServiceAuthorizationTest.php | 28 ++++----- .../Repository/ContentTypeServiceTest.php | 56 +++++++---------- .../FieldType/KeywordIntegrationTest.php | 2 +- .../FieldType/RelationIntegrationTest.php | 2 +- .../Core/Repository/FieldTypeServiceTest.php | 6 +- .../LanguageServiceAuthorizationTest.php | 10 +-- ...geServiceMaximumSupportedLanguagesTest.php | 2 +- .../LocationServiceAuthorizationTest.php | 22 +++---- .../Core/Repository/LocationServiceTest.php | 22 +++---- .../Repository/NonRedundantFieldSetTest.php | 6 +- .../ObjectStateServiceAuthorizationTest.php | 16 ++--- .../Repository/ObjectStateServiceTest.php | 31 ++++----- .../Repository/PermissionResolverTest.php | 9 ++- .../Core/Repository/RepositoryTest.php | 2 +- .../RoleServiceAuthorizationTest.php | 30 +++++---- .../Core/Repository/RoleServiceTest.php | 51 +++++++-------- .../SearchServiceAuthorizationTest.php | 8 +-- .../Repository/SearchServiceLocationTest.php | 1 - .../Core/Repository/SearchServiceTest.php | 5 +- .../SectionServiceAuthorizationTest.php | 14 ++--- .../Core/Repository/SectionServiceTest.php | 24 +++---- .../Core/Repository/SettingServiceTest.php | 8 +-- .../TrashServiceAuthorizationTest.php | 9 ++- .../URLAliasServiceAuthorizationTest.php | 6 +- .../Core/Repository/URLAliasServiceTest.php | 21 ++----- .../Core/Repository/URLServiceTest.php | 3 +- .../URLWildcardServiceAuthorizationTest.php | 2 +- .../Repository/URLWildcardServiceTest.php | 10 +-- .../Repository/UserPreferenceServiceTest.php | 8 +-- .../UserServiceAuthorizationTest.php | 28 ++++----- .../Core/Repository/UserServiceTest.php | 43 +++++-------- .../Service/Mock/UserPreferenceTest.php | 5 +- 34 files changed, 251 insertions(+), 355 deletions(-) diff --git a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php index 2d0a00bf3e..54c0220068 100644 --- a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php @@ -26,44 +26,31 @@ * Test case for operations in the ContentServiceAuthorization using in memory storage. */ #[CoversClass(ContentService::class)] -#[CoversMethod(ContentService::class, 'createContent()')] -#[CoversMethod(ContentService::class, 'createContent($contentCreateStruct, $locationCreateStructs)')] -#[CoversMethod(ContentService::class, 'loadContentInfo()')] -#[CoversMethod(Repository::class, 'sudo()')] -#[CoversMethod(ContentService::class, 'loadContentInfoList()')] -#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId()')] -#[CoversMethod(ContentService::class, 'loadVersionInfo()')] -#[CoversMethod(ContentService::class, 'loadVersionInfo($contentInfo, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById()')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById($contentId, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo()')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages)')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo()')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo($versionInfo, $languages)')] -#[CoversMethod(ContentService::class, 'loadContent()')] -#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages)')] -#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId()')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages)')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'updateContentMetadata()')] -#[CoversMethod(ContentService::class, 'deleteContent()')] -#[CoversMethod(ContentService::class, 'createContentDraft()')] -#[CoversMethod(ContentService::class, 'createContentDraft($contentInfo, $versionInfo)')] -#[CoversMethod(ContentService::class, 'countContentDrafts()')] -#[CoversMethod(ContentService::class, 'loadContentDraftList()')] -#[CoversMethod(ContentService::class, 'loadContentDraftList($user)')] -#[CoversMethod(ContentService::class, 'updateContent()')] -#[CoversMethod(ContentService::class, 'publishVersion()')] -#[CoversMethod(ContentService::class, 'deleteVersion()')] -#[CoversMethod(ContentService::class, 'loadVersions()')] -#[CoversMethod(ContentService::class, 'copyContent()')] -#[CoversMethod(ContentService::class, 'copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo)')] -#[CoversMethod(ContentService::class, 'loadRelationList()')] -#[CoversMethod(ContentService::class, 'loadReverseRelations()')] -#[CoversMethod(ContentService::class, 'addRelation()')] -#[CoversMethod(ContentService::class, 'deleteRelation()')] +#[CoversMethod(ContentService::class, 'createContent')] +#[CoversMethod(ContentService::class, 'loadContentInfo')] +#[CoversMethod(Repository::class, 'sudo')] +#[CoversMethod(ContentService::class, 'loadContentInfoList')] +#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] +#[CoversMethod(ContentService::class, 'loadVersionInfo')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] +#[CoversMethod(ContentService::class, 'loadContent')] +#[CoversMethod(ContentService::class, 'loadContentByRemoteId')] +#[CoversMethod(ContentService::class, 'updateContentMetadata')] +#[CoversMethod(ContentService::class, 'deleteContent')] +#[CoversMethod(ContentService::class, 'createContentDraft')] +#[CoversMethod(ContentService::class, 'countContentDrafts')] +#[CoversMethod(ContentService::class, 'loadContentDraftList')] +#[CoversMethod(ContentService::class, 'updateContent')] +#[CoversMethod(ContentService::class, 'publishVersion')] +#[CoversMethod(ContentService::class, 'deleteVersion')] +#[CoversMethod(ContentService::class, 'loadVersions')] +#[CoversMethod(ContentService::class, 'copyContent')] +#[CoversMethod(ContentService::class, 'loadRelationList')] +#[CoversMethod(ContentService::class, 'loadReverseRelations')] +#[CoversMethod(ContentService::class, 'addRelation')] +#[CoversMethod(ContentService::class, 'deleteRelation')] #[Group('integration')] #[Group('authorization')] class ContentServiceAuthorizationTest extends BaseContentServiceTestCase diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index b193b3df2a..49a2e98733 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -51,61 +51,36 @@ * * @see \Ibexa\Contracts\Core\Repository\ContentService */ -#[CoversMethod(ContentService::class, 'newContentCreateStruct()')] -#[CoversMethod(ContentService::class, 'createContent()')] +#[CoversMethod(ContentService::class, 'newContentCreateStruct')] #[CoversMethod(ContentService::class, 'createContent')] -#[CoversMethod(ContentService::class, 'createContent($contentCreateStruct, $locationCreateStructs)')] -#[CoversMethod(ContentService::class, 'loadContentInfo()')] #[CoversMethod(ContentService::class, 'loadContentInfo')] -#[CoversMethod(ContentService::class, 'loadContentInfoList()')] -#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId()')] +#[CoversMethod(ContentService::class, 'loadContentInfoList')] #[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] -#[CoversMethod(ContentService::class, 'loadVersionInfo()')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById()')] +#[CoversMethod(ContentService::class, 'loadVersionInfo')] #[CoversMethod(ContentService::class, 'loadVersionInfoById')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo()')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo()')] -#[CoversMethod(ContentService::class, 'loadContent()')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] +#[CoversMethod(ContentService::class, 'loadContent')] #[CoversMethod(ContentService::class, 'loadContentByRemoteId')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId()')] -#[CoversMethod(ContentService::class, 'publishVersion()')] #[CoversMethod(ContentService::class, 'publishVersion')] -#[CoversMethod(ContentService::class, 'createContentDraft()')] #[CoversMethod(ContentService::class, 'createContentDraft')] #[CoversMethod(ContentService::class, 'newContentUpdateStruct')] -#[CoversMethod(ContentService::class, 'updateContent()')] -#[CoversMethod(ContentService::class, 'createContentDraft($contentInfo, $versionInfo)')] +#[CoversMethod(ContentService::class, 'updateContent')] #[CoversMethod(ContentService::class, 'newContentMetadataUpdateStruct')] -#[CoversMethod(ContentService::class, 'updateContentMetadata()')] #[CoversMethod(ContentService::class, 'updateContentMetadata')] -#[CoversMethod(ContentService::class, 'deleteContent()')] -#[CoversMethod(ContentService::class, 'loadContentDraftList()')] -#[CoversMethod(ContentService::class, 'loadContentDraftList($user)')] -#[CoversMethod(ContentService::class, 'loadVersionInfo($contentInfo, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById($contentId, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo($versionInfo, $languages)')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages)')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo($contentInfo, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages)')] -#[CoversMethod(ContentService::class, 'loadContent')] -#[CoversMethod(ContentService::class, 'loadContent($contentId, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages)')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId($remoteId, $languages, $versionNo)')] -#[CoversMethod(ContentService::class, 'deleteVersion()')] -#[CoversMethod(ContentService::class, 'loadVersions()')] +#[CoversMethod(ContentService::class, 'deleteContent')] +#[CoversMethod(ContentService::class, 'loadContentDraftList')] +#[CoversMethod(ContentService::class, 'deleteVersion')] #[CoversMethod(ContentService::class, 'loadVersions')] -#[CoversMethod(ContentService::class, 'copyContent()')] -#[CoversMethod(ContentService::class, 'copyContent($contentInfo, $destinationLocationCreateStruct, $versionInfo)')] +#[CoversMethod(ContentService::class, 'copyContent')] #[CoversMethod(ContentService::class, 'addRelation')] -#[CoversMethod(ContentService::class, 'addRelation()')] -#[CoversMethod(ContentService::class, 'loadRelationList()')] +#[CoversMethod(ContentService::class, 'loadRelationList')] #[CoversMethod(ContentService::class, 'countReverseRelations')] -#[CoversMethod(ContentService::class, 'loadReverseRelations()')] +#[CoversMethod(ContentService::class, 'loadReverseRelations')] #[CoversMethod(ContentService::class, 'loadReverseRelationList')] -#[CoversMethod(ContentService::class, 'deleteRelation()')] +#[CoversMethod(ContentService::class, 'deleteRelation')] #[CoversMethod(ContentService::class, 'deleteTranslation')] #[CoversMethod(ContentService::class, 'deleteTranslationFromDraft')] -#[CoversMethod(ContentService::class, 'deleteVersion')] #[CoversMethod(ContentService::class, 'hideContent')] #[CoversMethod(ContentService::class, 'revealContent')] #[Group('content')] diff --git a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php index 1883708a06..3d80c6ea93 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php @@ -18,20 +18,20 @@ * Test case for operations in the ContentTypeServiceAuthorization using in memory storage. */ #[CoversClass(ContentTypeService::class)] -#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'createContentType()')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft()')] -#[CoversMethod(ContentTypeService::class, 'addFieldDefinition()')] -#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition()')] -#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition()')] -#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft()')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft()')] -#[CoversMethod(ContentTypeService::class, 'deleteContentType()')] -#[CoversMethod(ContentTypeService::class, 'copyContentType()')] -#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'createContentType')] +#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'addFieldDefinition')] +#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition')] +#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition')] +#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'deleteContentType')] +#[CoversMethod(ContentTypeService::class, 'copyContentType')] +#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup')] #[Group('integration')] #[Group('authorization')] class ContentTypeServiceAuthorizationTest extends BaseContentTypeServiceTestCase diff --git a/tests/integration/Core/Repository/ContentTypeServiceTest.php b/tests/integration/Core/Repository/ContentTypeServiceTest.php index 6637b7518d..51d11393ed 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -41,49 +41,39 @@ * Test case for operations in the ContentTypeService using in memory storage. */ #[CoversClass(ContentTypeService::class)] -#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupCreateStruct()')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupCreateStruct')] #[CoversMethod(ContentTypeService::class, 'createContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroupByIdentifier()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroups()')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupUpdateStruct()')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup()')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroupByIdentifier')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroups')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupUpdateStruct')] #[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup')] #[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeCreateStruct()')] -#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionCreateStruct()')] -#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'createContentType()')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeCreateStruct')] +#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionCreateStruct')] #[CoversMethod(ContentTypeService::class, 'createContentType')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeDraft()')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft()')] +#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeDraft')] #[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'addFieldDefinition()')] -#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'addFieldDefinition')] #[CoversMethod(ContentTypeService::class, 'removeFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionUpdateStruct()')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct')] -#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition()')] +#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionUpdateStruct')] #[CoversMethod(ContentTypeService::class, 'updateFieldDefinition')] #[CoversClass(FieldDefinitionUpdateStruct::class)] -#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft()')] #[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'loadContentType()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeByIdentifier()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeByRemoteId()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeList()')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypes()')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft()')] -#[CoversMethod(ContentTypeService::class, 'deleteContentType()')] -#[CoversMethod(ContentTypeService::class, 'copyContentType()')] -#[CoversMethod(ContentTypeService::class, 'copyContentType($contentType, $user)')] -#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup()')] -#[CoversMethod(ContentTypeService::class, 'isContentTypeUsed()')] +#[CoversMethod(ContentTypeService::class, 'loadContentType')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeByIdentifier')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeByRemoteId')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypeList')] +#[CoversMethod(ContentTypeService::class, 'loadContentTypes')] +#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft')] +#[CoversMethod(ContentTypeService::class, 'deleteContentType')] +#[CoversMethod(ContentTypeService::class, 'copyContentType')] +#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup')] +#[CoversMethod(ContentTypeService::class, 'isContentTypeUsed')] #[CoversMethod(ContentTypeService::class, 'removeContentTypeTranslation')] -#[CoversMethod(ContentTypeService::class, 'deleteUserDrafts()')] +#[CoversMethod(ContentTypeService::class, 'deleteUserDrafts')] #[Group('integration')] #[Group('content-type')] class ContentTypeServiceTest extends BaseContentTypeServiceTestCase diff --git a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php index 9973aaf07e..9e4d8efb44 100644 --- a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php @@ -21,7 +21,7 @@ /** * Integration test for use field type. */ -#[CoversMethod(SearchService::class, 'findContent()')] +#[CoversMethod(SearchService::class, 'findContent')] #[Group('integration')] #[Group('field-type')] class KeywordIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index db6e4b2551..562140de9b 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -21,7 +21,7 @@ /** * Integration test for use field type. */ -#[CoversMethod(BaseIntegrationTestCase::class, 'getValidatorSchema()')] +#[CoversMethod(BaseIntegrationTestCase::class, 'getValidatorSchema')] #[Group('integration')] #[Group('field-type')] class RelationIntegrationTest extends SearchBaseIntegrationTestCase diff --git a/tests/integration/Core/Repository/FieldTypeServiceTest.php b/tests/integration/Core/Repository/FieldTypeServiceTest.php index 135b32601d..5f852c0c2e 100644 --- a/tests/integration/Core/Repository/FieldTypeServiceTest.php +++ b/tests/integration/Core/Repository/FieldTypeServiceTest.php @@ -17,9 +17,9 @@ * Test case for operations in the FieldTypeService using in memory storage. */ #[CoversClass(FieldTypeService::class)] -#[CoversMethod(FieldTypeService::class, 'getFieldTypes()')] -#[CoversMethod(FieldTypeService::class, 'getFieldType()')] -#[CoversMethod(FieldTypeService::class, 'hasFieldType()')] +#[CoversMethod(FieldTypeService::class, 'getFieldTypes')] +#[CoversMethod(FieldTypeService::class, 'getFieldType')] +#[CoversMethod(FieldTypeService::class, 'hasFieldType')] #[Group('field-type')] class FieldTypeServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php index e6fbd98999..582b4387d3 100644 --- a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php @@ -17,11 +17,11 @@ * Test case for operations in the LanguageService using in memory storage. */ #[CoversClass(LanguageService::class)] -#[CoversMethod(LanguageService::class, 'createLanguage()')] -#[CoversMethod(LanguageService::class, 'updateLanguageName()')] -#[CoversMethod(LanguageService::class, 'enableLanguage()')] -#[CoversMethod(LanguageService::class, 'disableLanguage()')] -#[CoversMethod(LanguageService::class, 'deleteLanguage()')] +#[CoversMethod(LanguageService::class, 'createLanguage')] +#[CoversMethod(LanguageService::class, 'updateLanguageName')] +#[CoversMethod(LanguageService::class, 'enableLanguage')] +#[CoversMethod(LanguageService::class, 'disableLanguage')] +#[CoversMethod(LanguageService::class, 'deleteLanguage')] #[Group('integration')] #[Group('authorization')] class LanguageServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php index 1e97e130dc..5105ebf651 100644 --- a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php +++ b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php @@ -18,7 +18,7 @@ * * @see \Ibexa\Contracts\Core\Repository\LanguageService */ -#[CoversMethod(LanguageService::class, 'createLanguage()')] +#[CoversMethod(LanguageService::class, 'createLanguage')] #[Group('integration')] #[Group('language')] class LanguageServiceMaximumSupportedLanguagesTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php index 621ae9e310..610e8e91ac 100644 --- a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php @@ -22,18 +22,18 @@ * Test case for operations in the LocationService using in memory storage. */ #[CoversClass(LocationService::class)] -#[CoversMethod(LocationService::class, 'createLocation()')] -#[CoversMethod(LocationService::class, 'loadLocation()')] +#[CoversMethod(LocationService::class, 'createLocation')] +#[CoversMethod(LocationService::class, 'loadLocation')] #[CoversMethod(LocationService::class, 'loadLocationList')] -#[CoversMethod(LocationService::class, 'loadLocationByRemoteId()')] -#[CoversMethod(LocationService::class, 'loadLocations()')] -#[CoversMethod(LocationService::class, 'updateLocation()')] -#[CoversMethod(LocationService::class, 'swapLocation()')] -#[CoversMethod(LocationService::class, 'hideLocation()')] -#[CoversMethod(LocationService::class, 'unhideLocation()')] -#[CoversMethod(LocationService::class, 'deleteLocation()')] -#[CoversMethod(LocationService::class, 'copySubtree()')] -#[CoversMethod(LocationService::class, 'moveSubtree()')] +#[CoversMethod(LocationService::class, 'loadLocationByRemoteId')] +#[CoversMethod(LocationService::class, 'loadLocations')] +#[CoversMethod(LocationService::class, 'updateLocation')] +#[CoversMethod(LocationService::class, 'swapLocation')] +#[CoversMethod(LocationService::class, 'hideLocation')] +#[CoversMethod(LocationService::class, 'unhideLocation')] +#[CoversMethod(LocationService::class, 'deleteLocation')] +#[CoversMethod(LocationService::class, 'copySubtree')] +#[CoversMethod(LocationService::class, 'moveSubtree')] #[Group('integration')] #[Group('authorization')] class LocationServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LocationServiceTest.php b/tests/integration/Core/Repository/LocationServiceTest.php index c9f8b8e0be..8c36ead521 100644 --- a/tests/integration/Core/Repository/LocationServiceTest.php +++ b/tests/integration/Core/Repository/LocationServiceTest.php @@ -39,31 +39,23 @@ * Test case for operations in the LocationService using in memory storage. */ #[CoversClass(LocationService::class)] -#[CoversMethod(LocationService::class, 'newLocationCreateStruct()')] -#[CoversMethod(LocationService::class, 'createLocation()')] +#[CoversMethod(LocationService::class, 'newLocationCreateStruct')] #[CoversMethod(LocationService::class, 'createLocation')] #[CoversMethod(LocationService::class, 'loadLocation')] -#[CoversMethod(LocationService::class, 'loadLocation()')] #[CoversMethod(LocationService::class, 'loadLocationList')] -#[CoversMethod(LocationService::class, 'loadLocationByRemoteId()')] -#[CoversMethod(LocationService::class, 'loadLocations()')] -#[CoversMethod(LocationService::class, 'loadLocations($contentInfo, $rootLocation)')] +#[CoversMethod(LocationService::class, 'loadLocationByRemoteId')] +#[CoversMethod(LocationService::class, 'loadLocations')] #[CoversMethod(LocationService::class, 'loadLocationChildren')] #[CoversMethod(LocationService::class, 'loadParentLocationsForDraftContent')] -#[CoversMethod(LocationService::class, 'getLocationChildCount()')] -#[CoversMethod(LocationService::class, 'loadLocationChildren()')] +#[CoversMethod(LocationService::class, 'getLocationChildCount')] #[CoversMethod(LocationService::class, 'newLocationUpdateStruct')] -#[CoversMethod(LocationService::class, 'updateLocation()')] -#[CoversMethod(LocationService::class, 'swapLocation()')] +#[CoversMethod(LocationService::class, 'updateLocation')] #[CoversMethod(LocationService::class, 'swapLocation')] -#[CoversMethod(LocationService::class, 'hideLocation()')] -#[CoversMethod(LocationService::class, 'unhideLocation()')] -#[CoversMethod(LocationService::class, 'deleteLocation()')] +#[CoversMethod(LocationService::class, 'hideLocation')] +#[CoversMethod(LocationService::class, 'unhideLocation')] #[CoversMethod(LocationService::class, 'deleteLocation')] -#[CoversMethod(LocationService::class, 'copySubtree()')] #[CoversMethod(LocationService::class, 'copySubtree')] #[CoversMethod(LocationService::class, 'moveSubtree')] -#[CoversMethod(LocationService::class, 'moveSubtree()')] #[Group('location')] class LocationServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php index a1872d5b5d..1eb21fc896 100644 --- a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php +++ b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php @@ -23,9 +23,9 @@ * These tests depends on TextLine field type being functional. */ #[CoversClass(ContentService::class)] -#[CoversMethod(ContentService::class, 'createContent()')] -#[CoversMethod(ContentService::class, 'createContentDraft()')] -#[CoversMethod(ContentService::class, 'updateContent()')] +#[CoversMethod(ContentService::class, 'createContent')] +#[CoversMethod(ContentService::class, 'createContentDraft')] +#[CoversMethod(ContentService::class, 'updateContent')] #[Group('content')] class NonRedundantFieldSetTest extends BaseNonRedundantFieldSetTestCase { diff --git a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php index 9307db65f9..660103886c 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php @@ -18,14 +18,14 @@ * Test case for operations in the ObjectStateService using in memory storage. */ #[CoversClass(ObjectStateService::class)] -#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup()')] -#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup()')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup()')] -#[CoversMethod(ObjectStateService::class, 'createObjectState()')] -#[CoversMethod(ObjectStateService::class, 'updateObjectState()')] -#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState()')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectState()')] -#[CoversMethod(ObjectStateService::class, 'setContentState()')] +#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup')] +#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup')] +#[CoversMethod(ObjectStateService::class, 'createObjectState')] +#[CoversMethod(ObjectStateService::class, 'updateObjectState')] +#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectState')] +#[CoversMethod(ObjectStateService::class, 'setContentState')] #[Group('integration')] #[Group('authorization')] class ObjectStateServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/ObjectStateServiceTest.php b/tests/integration/Core/Repository/ObjectStateServiceTest.php index 5800a00aa9..2e124fec44 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceTest.php @@ -28,33 +28,26 @@ * Test case for operations in the ObjectStateService using in memory storage. */ #[CoversClass(ObjectStateService::class)] -#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupCreateStruct()')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupUpdateStruct()')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateCreateStruct()')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateUpdateStruct()')] -#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupCreateStruct')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupUpdateStruct')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateCreateStruct')] +#[CoversMethod(ObjectStateService::class, 'newObjectStateUpdateStruct')] +#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup')] #[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup()')] #[CoversMethod(ObjectStateService::class, 'loadGroupByIdentifier')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups()')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups($offset)')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups($offset, $limit)')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStates()')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStates')] #[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup()')] -#[CoversMethod(ObjectStateService::class, 'createObjectState()')] #[CoversMethod(ObjectStateService::class, 'createObjectState')] -#[CoversMethod(ObjectStateService::class, 'loadObjectState()')] +#[CoversMethod(ObjectStateService::class, 'loadObjectState')] #[CoversMethod(ObjectStateService::class, 'loadObjectStateByIdentifier')] #[CoversMethod(ObjectStateService::class, 'updateObjectState')] -#[CoversMethod(ObjectStateService::class, 'updateObjectState()')] #[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState')] -#[CoversMethod(ObjectStateService::class, 'getContentState()')] -#[CoversMethod(ObjectStateService::class, 'setContentState()')] +#[CoversMethod(ObjectStateService::class, 'getContentState')] #[CoversMethod(ObjectStateService::class, 'setContentState')] -#[CoversMethod(ObjectStateService::class, 'getContentCount()')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectState()')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup()')] +#[CoversMethod(ObjectStateService::class, 'getContentCount')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectState')] +#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup')] #[Group('object-state')] class ObjectStateServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/PermissionResolverTest.php b/tests/integration/Core/Repository/PermissionResolverTest.php index 5abf483e95..eca00a2a7f 100644 --- a/tests/integration/Core/Repository/PermissionResolverTest.php +++ b/tests/integration/Core/Repository/PermissionResolverTest.php @@ -32,12 +32,11 @@ * Test case for operations in the PermissionResolver. */ #[CoversClass(PermissionResolver::class)] -#[CoversMethod(PermissionResolver::class, 'getCurrentUserReference()')] -#[CoversMethod(PermissionResolver::class, 'setCurrentUserReference()')] -#[CoversMethod(PermissionResolver::class, 'hasAccess()')] -#[CoversMethod(PermissionResolver::class, 'canUser()')] +#[CoversMethod(PermissionResolver::class, 'getCurrentUserReference')] +#[CoversMethod(PermissionResolver::class, 'setCurrentUserReference')] +#[CoversMethod(PermissionResolver::class, 'hasAccess')] #[CoversMethod(PermissionResolver::class, 'canUser')] -#[CoversMethod(PermissionResolver::class, 'lookupLimitations()')] +#[CoversMethod(PermissionResolver::class, 'lookupLimitations')] #[Group('integration')] #[Group('permission')] class PermissionResolverTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/RepositoryTest.php b/tests/integration/Core/Repository/RepositoryTest.php index 903c90b31c..4ef25ffacf 100644 --- a/tests/integration/Core/Repository/RepositoryTest.php +++ b/tests/integration/Core/Repository/RepositoryTest.php @@ -32,7 +32,7 @@ * Test case for operations in the Repository using in memory storage. */ #[CoversClass(Repository::class)] -#[CoversMethod(Repository::class, 'getContentLanguageService()')] +#[CoversMethod(Repository::class, 'getContentLanguageService')] #[Group('integration')] class RepositoryTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php index fe219f8e61..d7c97006f1 100644 --- a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php @@ -21,22 +21,20 @@ * Test case for operations in the RoleService using in memory storage. */ #[CoversClass(RoleService::class)] -#[CoversMethod(RoleService::class, 'createRole()')] -#[CoversMethod(RoleService::class, 'loadRole()')] -#[CoversMethod(RoleService::class, 'loadRoleByIdentifier()')] -#[CoversMethod(RoleService::class, 'loadRoles()')] -#[CoversMethod(RoleService::class, 'deleteRole()')] -#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft()')] -#[CoversMethod(RoleService::class, 'removePolicy()')] -#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft()')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup()')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup($role, $userGroup, $roleLimitation)')] -#[CoversMethod(RoleService::class, 'removeRoleAssignment()')] -#[CoversMethod(RoleService::class, 'assignRoleToUser()')] -#[CoversMethod(RoleService::class, 'assignRoleToUser($role, $user, $roleLimitation)')] -#[CoversMethod(RoleService::class, 'getRoleAssignments()')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser()')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup()')] +#[CoversMethod(RoleService::class, 'createRole')] +#[CoversMethod(RoleService::class, 'loadRole')] +#[CoversMethod(RoleService::class, 'loadRoleByIdentifier')] +#[CoversMethod(RoleService::class, 'loadRoles')] +#[CoversMethod(RoleService::class, 'deleteRole')] +#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft')] +#[CoversMethod(RoleService::class, 'removePolicy')] +#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup')] +#[CoversMethod(RoleService::class, 'removeRoleAssignment')] +#[CoversMethod(RoleService::class, 'assignRoleToUser')] +#[CoversMethod(RoleService::class, 'getRoleAssignments')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup')] #[Group('integration')] #[Group('authorization')] class RoleServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/RoleServiceTest.php b/tests/integration/Core/Repository/RoleServiceTest.php index 1592acf6ca..265598aff8 100644 --- a/tests/integration/Core/Repository/RoleServiceTest.php +++ b/tests/integration/Core/Repository/RoleServiceTest.php @@ -54,40 +54,35 @@ *
      */ #[CoversClass(RoleService::class)] -#[CoversMethod(RoleService::class, 'newRoleCreateStruct()')] +#[CoversMethod(RoleService::class, 'newRoleCreateStruct')] #[CoversMethod(RoleService::class, 'newRoleCopyStruct')] -#[CoversMethod(RoleService::class, 'createRole()')] #[CoversMethod(RoleService::class, 'createRole')] -#[CoversMethod(RoleService::class, 'createRoleDraft()')] +#[CoversMethod(RoleService::class, 'createRoleDraft')] #[CoversMethod(RoleService::class, 'copyRole')] -#[CoversMethod(RoleService::class, 'loadRole()')] -#[CoversMethod(RoleService::class, 'loadRoleDraft()')] -#[CoversMethod(RoleService::class, 'loadRoleByIdentifier()')] -#[CoversMethod(RoleService::class, 'loadRoles()')] -#[CoversMethod(RoleService::class, 'newRoleUpdateStruct()')] -#[CoversMethod(RoleService::class, 'updateRoleDraft()')] -#[CoversMethod(RoleService::class, 'deleteRole()')] -#[CoversMethod(RoleService::class, 'deleteRoleDraft()')] -#[CoversMethod(RoleService::class, 'newPolicyCreateStruct()')] -#[CoversMethod(RoleService::class, 'addPolicyByRoleDraft()')] -#[CoversMethod(RoleService::class, 'newPolicyUpdateStruct()')] -#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft()')] -#[CoversMethod(RoleService::class, 'testUpdatePolicyByRoleDraft()')] -#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft()')] +#[CoversMethod(RoleService::class, 'loadRole')] +#[CoversMethod(RoleService::class, 'loadRoleDraft')] +#[CoversMethod(RoleService::class, 'loadRoleByIdentifier')] +#[CoversMethod(RoleService::class, 'loadRoles')] +#[CoversMethod(RoleService::class, 'newRoleUpdateStruct')] +#[CoversMethod(RoleService::class, 'updateRoleDraft')] +#[CoversMethod(RoleService::class, 'deleteRole')] +#[CoversMethod(RoleService::class, 'deleteRoleDraft')] +#[CoversMethod(RoleService::class, 'newPolicyCreateStruct')] +#[CoversMethod(RoleService::class, 'addPolicyByRoleDraft')] +#[CoversMethod(RoleService::class, 'newPolicyUpdateStruct')] +#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft')] +#[CoversMethod(RoleService::class, 'testUpdatePolicyByRoleDraft')] +#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft')] #[CoversMethod(RoleService::class, 'loadRoleAssignment')] -#[CoversMethod(RoleService::class, 'getRoleAssignments()')] #[CoversMethod(RoleService::class, 'getRoleAssignments')] -#[CoversMethod(RoleService::class, 'loadRoleAssignments()')] -#[CoversMethod(RoleService::class, 'countRoleAssignments()')] -#[CoversMethod(RoleService::class, 'assignRoleToUser()')] -#[CoversMethod(RoleService::class, 'assignRoleToUser($role, $user, $roleLimitation)')] -#[CoversMethod(RoleService::class, 'removeRoleAssignment()')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser()')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup()')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup($role, $userGroup, $roleLimitation)')] +#[CoversMethod(RoleService::class, 'loadRoleAssignments')] +#[CoversMethod(RoleService::class, 'countRoleAssignments')] +#[CoversMethod(RoleService::class, 'assignRoleToUser')] #[CoversMethod(RoleService::class, 'removeRoleAssignment')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup()')] -#[CoversMethod(RoleService::class, 'publishRoleDraft()')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser')] +#[CoversMethod(RoleService::class, 'assignRoleToUserGroup')] +#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup')] +#[CoversMethod(RoleService::class, 'publishRoleDraft')] #[Group('role')] class RoleServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php index 872af11d08..6ecb43a68d 100644 --- a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php @@ -22,10 +22,10 @@ * Test case for operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findContent()')] -#[CoversMethod(SearchService::class, 'findSingle()')] -#[CoversMethod(ContentService::class, 'findContent($query, $languageFilter, $filterOnUserPermissions)')] -#[CoversMethod(ContentService::class, 'findSingle($query, $languageFilter, $filterOnUserPermissions)')] +#[CoversMethod(SearchService::class, 'findContent')] +#[CoversMethod(SearchService::class, 'findSingle')] +#[CoversMethod(ContentService::class, 'findContent')] +#[CoversMethod(ContentService::class, 'findSingle')] #[Group('integration')] #[Group('authorization')] class SearchServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SearchServiceLocationTest.php b/tests/integration/Core/Repository/SearchServiceLocationTest.php index d3de03a4f5..6020e1aa5f 100644 --- a/tests/integration/Core/Repository/SearchServiceLocationTest.php +++ b/tests/integration/Core/Repository/SearchServiceLocationTest.php @@ -28,7 +28,6 @@ * Test case for Location operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findLocations()')] #[CoversMethod(SearchService::class, 'findLocations')] #[Group('integration')] #[Group('search')] diff --git a/tests/integration/Core/Repository/SearchServiceTest.php b/tests/integration/Core/Repository/SearchServiceTest.php index 619f56cf10..e9d552d225 100644 --- a/tests/integration/Core/Repository/SearchServiceTest.php +++ b/tests/integration/Core/Repository/SearchServiceTest.php @@ -35,10 +35,9 @@ * Test case for operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findContent()')] -#[CoversMethod(SearchService::class, 'findContentInfo()')] -#[CoversMethod(SearchService::class, 'findLocations()')] #[CoversMethod(SearchService::class, 'findContent')] +#[CoversMethod(SearchService::class, 'findContentInfo')] +#[CoversMethod(SearchService::class, 'findLocations')] #[Group('integration')] #[Group('search')] class SearchServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php index 8f5edafaad..c3a101b665 100644 --- a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php @@ -18,13 +18,13 @@ * Test case for operations in the SectionService using in memory storage. */ #[CoversClass(SectionService::class)] -#[CoversMethod(SectionService::class, 'createSection()')] -#[CoversMethod(SectionService::class, 'loadSection()')] -#[CoversMethod(SectionService::class, 'updateSection()')] -#[CoversMethod(SectionService::class, 'loadSections()')] -#[CoversMethod(SectionService::class, 'loadSectionByIdentifier()')] -#[CoversMethod(SectionService::class, 'assignSection()')] -#[CoversMethod(SectionService::class, 'deleteSection()')] +#[CoversMethod(SectionService::class, 'createSection')] +#[CoversMethod(SectionService::class, 'loadSection')] +#[CoversMethod(SectionService::class, 'updateSection')] +#[CoversMethod(SectionService::class, 'loadSections')] +#[CoversMethod(SectionService::class, 'loadSectionByIdentifier')] +#[CoversMethod(SectionService::class, 'assignSection')] +#[CoversMethod(SectionService::class, 'deleteSection')] #[Group('integration')] #[Group('authorization')] class SectionServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SectionServiceTest.php b/tests/integration/Core/Repository/SectionServiceTest.php index e43a3cccc7..f68d94567b 100644 --- a/tests/integration/Core/Repository/SectionServiceTest.php +++ b/tests/integration/Core/Repository/SectionServiceTest.php @@ -25,18 +25,18 @@ * Test case for operations in the SectionService using in memory storage. */ #[CoversClass(SectionService::class)] -#[CoversMethod(SectionService::class, 'newSectionCreateStruct()')] -#[CoversMethod(SectionService::class, 'createSection()')] -#[CoversMethod(SectionService::class, 'loadSection()')] -#[CoversMethod(SectionService::class, 'newSectionUpdateStruct()')] -#[CoversMethod(SectionService::class, 'updateSection()')] -#[CoversMethod(SectionService::class, 'loadSections()')] -#[CoversMethod(SectionService::class, 'loadSectionByIdentifier()')] -#[CoversMethod(SectionService::class, 'countAssignedContents()')] -#[CoversMethod(SectionService::class, 'isSectionUsed()')] -#[CoversMethod(SectionService::class, 'assignSection()')] -#[CoversMethod(SectionService::class, 'assignSectionToSubtree()')] -#[CoversMethod(SectionService::class, 'deleteSection()')] +#[CoversMethod(SectionService::class, 'newSectionCreateStruct')] +#[CoversMethod(SectionService::class, 'createSection')] +#[CoversMethod(SectionService::class, 'loadSection')] +#[CoversMethod(SectionService::class, 'newSectionUpdateStruct')] +#[CoversMethod(SectionService::class, 'updateSection')] +#[CoversMethod(SectionService::class, 'loadSections')] +#[CoversMethod(SectionService::class, 'loadSectionByIdentifier')] +#[CoversMethod(SectionService::class, 'countAssignedContents')] +#[CoversMethod(SectionService::class, 'isSectionUsed')] +#[CoversMethod(SectionService::class, 'assignSection')] +#[CoversMethod(SectionService::class, 'assignSectionToSubtree')] +#[CoversMethod(SectionService::class, 'deleteSection')] #[Group('integration')] #[Group('section')] class SectionServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SettingServiceTest.php b/tests/integration/Core/Repository/SettingServiceTest.php index 72a879895c..4efda29d53 100644 --- a/tests/integration/Core/Repository/SettingServiceTest.php +++ b/tests/integration/Core/Repository/SettingServiceTest.php @@ -21,10 +21,10 @@ * Test case for operations in the SettingService using in memory storage. */ #[CoversClass(SettingService::class)] -#[CoversMethod(SettingService::class, 'createSetting()')] -#[CoversMethod(SettingService::class, 'loadSetting()')] -#[CoversMethod(SettingService::class, 'updateSetting()')] -#[CoversMethod(SettingService::class, 'deleteSetting()')] +#[CoversMethod(SettingService::class, 'createSetting')] +#[CoversMethod(SettingService::class, 'loadSetting')] +#[CoversMethod(SettingService::class, 'updateSetting')] +#[CoversMethod(SettingService::class, 'deleteSetting')] #[Group('integration')] #[Group('setting')] final class SettingServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php index 7c66a28907..153adeb331 100644 --- a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php @@ -23,12 +23,11 @@ * Test case for operations in the TrashService using in memory storage. */ #[CoversClass(CoveredTrashService::class)] -#[CoversMethod(CoveredTrashService::class, 'loadTrashItem()')] +#[CoversMethod(CoveredTrashService::class, 'loadTrashItem')] #[CoversMethod(CoveredTrashService::class, 'trash')] -#[CoversMethod(CoveredTrashService::class, 'recover()')] -#[CoversMethod(CoveredTrashService::class, 'recover($trashItem, $newParentLocation)')] -#[CoversMethod(CoveredTrashService::class, 'emptyTrash()')] -#[CoversMethod(CoveredTrashService::class, 'deleteTrashItem()')] +#[CoversMethod(CoveredTrashService::class, 'recover')] +#[CoversMethod(CoveredTrashService::class, 'emptyTrash')] +#[CoversMethod(CoveredTrashService::class, 'deleteTrashItem')] #[Group('integration')] #[Group('authorization')] class TrashServiceAuthorizationTest extends BaseTrashServiceTestCase diff --git a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php index c823934f56..895f4a445b 100644 --- a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php @@ -12,9 +12,9 @@ use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; -#[CoversMethod(URLAliasService::class, 'createUrlAlias()')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias()')] -#[CoversMethod(URLAliasService::class, 'removeAliases()')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] +#[CoversMethod(URLAliasService::class, 'removeAliases')] class URLAliasServiceAuthorizationTest extends BaseTestCase { /** diff --git a/tests/integration/Core/Repository/URLAliasServiceTest.php b/tests/integration/Core/Repository/URLAliasServiceTest.php index 9bb5ad6113..e618ace70e 100644 --- a/tests/integration/Core/Repository/URLAliasServiceTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceTest.php @@ -29,25 +29,12 @@ * Test case for operations in the URLAliasService using in memory storage. */ #[CoversClass(URLAliasService::class)] -#[CoversMethod(URLAliasService::class, 'createUrlAlias()')] #[CoversMethod(URLAliasService::class, 'createUrlAlias')] -#[CoversMethod(URLAliasService::class, 'createUrlAlias($location, $path, $languageCode, $forwarding)')] -#[CoversMethod(URLAliasService::class, 'createUrlAlias($location, $path, $languageCode, $forwarding, $alwaysAvailable)')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias()')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias($resource, $path, $languageCode, $forward)')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable)')] -#[CoversMethod(URLAliasService::class, 'listLocationAliases()')] -#[CoversMethod(URLAliasService::class, 'listLocationAliases($location, $custom, $languageCode)')] -#[CoversMethod(URLAliasService::class, 'listLocationAliases($location, $custom)')] -#[CoversMethod(URLAliasService::class, 'listGlobalAliases()')] -#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode)')] -#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode, $offset)')] -#[CoversMethod(URLAliasService::class, 'listGlobalAliases($languageCode, $offset, $limit)')] -#[CoversMethod(URLAliasService::class, 'removeAliases()')] -#[CoversMethod(URLAliasService::class, 'lookUp()')] -#[CoversMethod(URLAliasService::class, 'lookUp($url, $languageCode)')] -#[CoversMethod(URLAliasService::class, 'lookUp')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] #[CoversMethod(URLAliasService::class, 'listLocationAliases')] +#[CoversMethod(URLAliasService::class, 'listGlobalAliases')] +#[CoversMethod(URLAliasService::class, 'removeAliases')] +#[CoversMethod(URLAliasService::class, 'lookUp')] #[CoversMethod(URLAliasService::class, 'deleteCorruptedUrlAliases')] #[Group('url-alias')] class URLAliasServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/URLServiceTest.php b/tests/integration/Core/Repository/URLServiceTest.php index 1c9a625666..f0f4f3c939 100644 --- a/tests/integration/Core/Repository/URLServiceTest.php +++ b/tests/integration/Core/Repository/URLServiceTest.php @@ -28,9 +28,8 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(URLService::class)] -#[CoversMethod(URLService::class, 'findUrls()')] #[CoversMethod(URLService::class, 'findUrls')] -#[CoversMethod(URLService::class, 'updateUrl()')] +#[CoversMethod(URLService::class, 'updateUrl')] #[CoversMethod(URLService::class, 'loadById')] #[CoversMethod(URLService::class, 'loadByUrl')] #[CoversMethod(URLService::class, 'createUpdateStruct')] diff --git a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php index 39b17c09fb..bacacb8253 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php @@ -19,7 +19,7 @@ */ #[CoversClass(URLWildcardService::class)] #[CoversMethod(URLWildcardService::class, 'create')] -#[CoversMethod(URLWildcardService::class, 'remove()')] +#[CoversMethod(URLWildcardService::class, 'remove')] #[Group('integration')] #[Group('authorization')] class URLWildcardServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/URLWildcardServiceTest.php b/tests/integration/Core/Repository/URLWildcardServiceTest.php index 119acf8df1..a3b23a6316 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceTest.php @@ -23,12 +23,12 @@ * Test case for operations in the URLWildcardService. */ #[CoversClass(URLWildcardService::class)] -#[CoversMethod(URLWildcardService::class, 'create()')] -#[CoversMethod(URLWildcardService::class, 'load()')] +#[CoversMethod(URLWildcardService::class, 'create')] +#[CoversMethod(URLWildcardService::class, 'load')] #[CoversMethod(URLWildcardService::class, 'update')] -#[CoversMethod(URLWildcardService::class, 'remove()')] -#[CoversMethod(URLWildcardService::class, 'loadAll()')] -#[CoversMethod(URLWildcardService::class, 'translate()')] +#[CoversMethod(URLWildcardService::class, 'remove')] +#[CoversMethod(URLWildcardService::class, 'loadAll')] +#[CoversMethod(URLWildcardService::class, 'translate')] #[Group('url-wildcard')] class URLWildcardServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/UserPreferenceServiceTest.php b/tests/integration/Core/Repository/UserPreferenceServiceTest.php index 692861d171..4f67801f3a 100644 --- a/tests/integration/Core/Repository/UserPreferenceServiceTest.php +++ b/tests/integration/Core/Repository/UserPreferenceServiceTest.php @@ -21,10 +21,10 @@ * Test case for the UserPreferenceService. */ #[CoversClass(UserPreferenceService::class)] -#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences()')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreference()')] -#[CoversMethod(UserPreferenceService::class, 'setUserPreference()')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount()')] +#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreference')] +#[CoversMethod(UserPreferenceService::class, 'setUserPreference')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount')] class UserPreferenceServiceTest extends BaseTestCase { public function testLoadUserPreferences() diff --git a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php index f5bdd2e9e7..6c60c0939b 100644 --- a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php @@ -18,21 +18,21 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(UserService::class)] -#[CoversMethod(UserService::class, 'loadUserGroup()')] -#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId()')] -#[CoversMethod(UserService::class, 'loadSubUserGroups()')] -#[CoversMethod(UserService::class, 'createUserGroup()')] -#[CoversMethod(UserService::class, 'deleteUserGroup()')] -#[CoversMethod(UserService::class, 'moveUserGroup()')] -#[CoversMethod(UserService::class, 'updateUserGroup()')] -#[CoversMethod(UserService::class, 'createUser()')] -#[CoversMethod(UserService::class, 'deleteUser()')] -#[CoversMethod(UserService::class, 'updateUser()')] +#[CoversMethod(UserService::class, 'loadUserGroup')] +#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId')] +#[CoversMethod(UserService::class, 'loadSubUserGroups')] +#[CoversMethod(UserService::class, 'createUserGroup')] +#[CoversMethod(UserService::class, 'deleteUserGroup')] +#[CoversMethod(UserService::class, 'moveUserGroup')] +#[CoversMethod(UserService::class, 'updateUserGroup')] +#[CoversMethod(UserService::class, 'createUser')] +#[CoversMethod(UserService::class, 'deleteUser')] +#[CoversMethod(UserService::class, 'updateUser')] #[CoversMethod(UserService::class, 'updateUserPassword')] -#[CoversMethod(UserService::class, 'assignUserToUserGroup()')] -#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup()')] -#[CoversMethod(UserService::class, 'loadUserGroupsOfUser()')] -#[CoversMethod(UserService::class, 'loadUsersOfUserGroup()')] +#[CoversMethod(UserService::class, 'assignUserToUserGroup')] +#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup')] +#[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] +#[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] #[Group('integration')] #[Group('authorization')] class UserServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 0482cf57fa..80a16361ab 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -48,49 +48,34 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(UserService::class)] -#[CoversMethod(UserService::class, 'loadUserGroup()')] -#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId()')] -#[CoversMethod(UserService::class, 'loadSubUserGroups()')] +#[CoversMethod(UserService::class, 'loadUserGroup')] +#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId')] #[CoversMethod(UserService::class, 'loadSubUserGroups')] -#[CoversMethod(UserService::class, 'newUserGroupCreateStruct()')] -#[CoversMethod(UserService::class, 'newUserGroupCreateStruct($mainLanguageCode, $contentType)')] -#[CoversMethod(UserService::class, 'createUserGroup()')] +#[CoversMethod(UserService::class, 'newUserGroupCreateStruct')] #[CoversMethod(UserService::class, 'createUserGroup')] -#[CoversMethod(UserService::class, 'deleteUserGroup()')] #[CoversMethod(UserService::class, 'deleteUserGroup')] -#[CoversMethod(UserService::class, 'moveUserGroup()')] #[CoversMethod(UserService::class, 'moveUserGroup')] #[CoversMethod(UserService::class, 'newUserGroupUpdateStruct')] -#[CoversMethod(UserService::class, 'updateUserGroup()')] -#[CoversMethod(UserService::class, 'newUserCreateStruct()')] #[CoversMethod(UserService::class, 'updateUserGroup')] -#[CoversMethod(UserService::class, 'newUserCreateStruct($login, $email, $password, $mainLanguageCode, $contentType)')] -#[CoversMethod(UserService::class, 'createUser()')] +#[CoversMethod(UserService::class, 'newUserCreateStruct')] #[CoversMethod(UserService::class, 'createUser')] -#[CoversMethod(UserService::class, 'loadUser()')] -#[CoversMethod(UserService::class, 'checkUserCredentials()')] -#[CoversMethod(UserService::class, 'loadUserByLogin()')] -#[CoversMethod(UserService::class, 'loadUsersByEmail()')] -#[CoversMethod(UserService::class, 'deleteUser()')] -#[CoversMethod(UserService::class, 'newUserUpdateStruct()')] -#[CoversMethod(UserService::class, 'updateUser()')] +#[CoversMethod(UserService::class, 'loadUser')] +#[CoversMethod(UserService::class, 'checkUserCredentials')] +#[CoversMethod(UserService::class, 'loadUserByLogin')] +#[CoversMethod(UserService::class, 'loadUsersByEmail')] +#[CoversMethod(UserService::class, 'deleteUser')] +#[CoversMethod(UserService::class, 'newUserUpdateStruct')] #[CoversMethod(UserService::class, 'updateUser')] #[CoversMethod(UserService::class, 'updateUserPassword')] #[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] #[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] -#[CoversMethod(UserService::class, 'assignUserToUserGroup()')] #[CoversMethod(UserService::class, 'assignUserToUserGroup')] -#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup()')] -#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup()')] +#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup')] #[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] -#[CoversMethod(UserService::class, 'loadUserGroup')] -#[CoversMethod(UserService::class, 'loadUser')] -#[CoversMethod(UserService::class, 'loadUserByLogin')] -#[CoversMethod(UserService::class, 'loadUsersByEmail')] #[CoversMethod(UserService::class, 'loadUserByToken')] -#[CoversMethod(UserService::class, 'updateUserToken()')] -#[CoversMethod(UserService::class, 'expireUserToken()')] -#[CoversMethod(UserService::class, 'validatePassword()')] +#[CoversMethod(UserService::class, 'updateUserToken')] +#[CoversMethod(UserService::class, 'expireUserToken')] +#[CoversMethod(UserService::class, 'validatePassword')] #[Group('integration')] #[Group('user')] class UserServiceTest extends BaseTestCase diff --git a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php index 3a1386f461..dbd2da6a90 100644 --- a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php +++ b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php @@ -21,11 +21,10 @@ use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; use PHPUnit\Framework\Attributes\CoversMethod; -#[CoversMethod(CoveredUserPreferenceService::class, 'setUserPreference()')] #[CoversMethod(CoveredUserPreferenceService::class, 'setUserPreference')] -#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreference()')] +#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreference')] #[CoversMethod(CoveredUserPreferenceService::class, 'loadUserPreferences')] -#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreferenceCount()')] +#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreferenceCount')] class UserPreferenceTest extends BaseServiceMockTest { public const CURRENT_USER_ID = 14; From f2828dea393c1dde2f0ba9c841d11fc03ce5cc90 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 14:50:49 +0200 Subject: [PATCH 05/20] IBX-12606: Pointed CoversClass and CoversMethod attributes at concrete implementations --- .../Core/Repository/BookmarkServiceTest.php | 2 +- ...slatableFieldsFromPublishedVersionTest.php | 2 +- ...pyTranslationsFromPublishedVersionTest.php | 2 +- .../CreateContentInNonContainerTest.php | 2 +- .../ContentService/DeleteContentTest.php | 2 +- .../ContentService/LoadVersionInfoTest.php | 2 +- .../MaxLanguagesContentServiceTest.php | 2 +- .../ContentService/UpdateContentTest.php | 2 +- .../ContentServiceAuthorizationTest.php | 5 +- .../Core/Repository/ContentServiceTest.php | 2 +- .../FindContentTypesTest.php | 2 +- .../ContentTypeServiceAuthorizationTest.php | 2 +- .../Repository/ContentTypeServiceTest.php | 2 +- .../FieldType/BaseIntegrationTestCase.php | 2 +- .../FieldType/CheckboxIntegrationTest.php | 2 +- .../FieldType/KeywordIntegrationTest.php | 2 +- .../Core/Repository/FieldTypeServiceTest.php | 2 +- .../BaseRepositoryFilteringTestCase.php | 4 +- .../LanguageServiceAuthorizationTest.php | 2 +- ...geServiceMaximumSupportedLanguagesTest.php | 2 +- .../Core/Repository/LanguageServiceTest.php | 2 +- .../LocationServiceAuthorizationTest.php | 2 +- .../Core/Repository/LocationServiceTest.php | 2 +- .../Repository/NonRedundantFieldSetTest.php | 2 +- .../Repository/NotificationServiceTest.php | 2 +- .../ObjectStateServiceAuthorizationTest.php | 2 +- .../Repository/ObjectStateServiceTest.php | 4 +- .../Repository/PermissionResolverTest.php | 2 +- .../Core/Repository/RepositoryTest.php | 2 +- .../RoleServiceAuthorizationTest.php | 3 +- .../Core/Repository/RoleServiceTest.php | 60 +++++++++---------- .../SearchService/DeleteTranslationTest.php | 2 +- .../SearchServiceAuthorizationTest.php | 5 +- .../Repository/SearchServiceFulltextTest.php | 2 +- .../Repository/SearchServiceLocationTest.php | 2 +- .../Core/Repository/SearchServiceTest.php | 2 +- ...ServiceTranslationLanguageFallbackTest.php | 2 +- .../SectionServiceAuthorizationTest.php | 2 +- .../Core/Repository/SectionServiceTest.php | 2 +- .../Core/Repository/SettingServiceTest.php | 11 ++-- .../TrashServiceAuthorizationTest.php | 3 +- .../Core/Repository/TrashServiceTest.php | 2 +- ...stomUrlAliasForMultilingualContentTest.php | 4 +- .../URLAliasService/UrlAliasLookupTest.php | 3 +- .../URLAliasServiceAuthorizationTest.php | 2 +- .../Core/Repository/URLAliasServiceTest.php | 2 +- .../URLServiceAuthorizationTest.php | 2 +- .../Core/Repository/URLServiceTest.php | 2 +- .../URLWildcardService/CriterionTest.php | 2 +- .../URLWildcardServiceAuthorizationTest.php | 2 +- .../Repository/URLWildcardServiceTest.php | 2 +- .../Repository/UserPreferenceServiceTest.php | 2 +- .../UserServiceAuthorizationTest.php | 4 +- .../Core/Repository/UserServiceTest.php | 3 +- .../Limitation/LanguageLimitationTest.php | 9 +-- ...aseSiteAccessAwarePathPrefixerTestCase.php | 3 +- .../MVC/Symfony/View/AbstractViewTestCase.php | 3 +- .../Legacy/Content/LocationHandlerTest.php | 3 +- ...seCriterionVisitorQueryBuilderTestCase.php | 12 +++- .../Repository/Service/Mock/BookmarkTest.php | 9 ++- .../Repository/Service/Mock/ContentTest.php | 38 ++++++------ .../Service/Mock/RepositoryTest.php | 2 +- .../lib/Repository/Service/Mock/RoleTest.php | 3 +- .../Repository/Service/Mock/SearchTest.php | 11 ++-- .../Repository/Service/Mock/UrlAliasTest.php | 7 +-- .../Service/Mock/UrlWildcardTest.php | 9 ++- .../Service/Mock/UserPreferenceTest.php | 9 ++- 67 files changed, 155 insertions(+), 156 deletions(-) diff --git a/tests/integration/Core/Repository/BookmarkServiceTest.php b/tests/integration/Core/Repository/BookmarkServiceTest.php index d6a99a2d0c..35442e2cf3 100644 --- a/tests/integration/Core/Repository/BookmarkServiceTest.php +++ b/tests/integration/Core/Repository/BookmarkServiceTest.php @@ -10,7 +10,6 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\ParameterType; -use Ibexa\Contracts\Core\Repository\BookmarkService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Location; @@ -18,6 +17,7 @@ use Ibexa\Contracts\Core\Repository\Values\Filter\Filter; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway\DoctrineDatabase; +use Ibexa\Core\Repository\BookmarkService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php b/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php index 8c983a873b..28f52b0c0c 100644 --- a/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php +++ b/tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php @@ -9,9 +9,9 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; use DateTime; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionCreateStruct; +use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php b/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php index 45f46a542d..82d5dbb6f5 100644 --- a/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php +++ b/tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php @@ -9,10 +9,10 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; use DateTime; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionCreateStruct; use Ibexa\Core\FieldType\TextLine; +use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php b/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php index 486f81607f..18190cfa30 100644 --- a/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php +++ b/tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php @@ -8,8 +8,8 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Validation\ValidationFailedException; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentService/DeleteContentTest.php b/tests/integration/Core/Repository/ContentService/DeleteContentTest.php index 0f94ba9945..93a2b9b58e 100644 --- a/tests/integration/Core/Repository/ContentService/DeleteContentTest.php +++ b/tests/integration/Core/Repository/ContentService/DeleteContentTest.php @@ -8,9 +8,9 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\TrashService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Assert; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php b/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php index 1f1110bb4c..642cf57124 100644 --- a/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php +++ b/tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\ContentService; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php b/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php index c10b69f7af..e20d2d51c0 100644 --- a/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\ContentService; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\Yaml\Yaml; diff --git a/tests/integration/Core/Repository/ContentService/UpdateContentTest.php b/tests/integration/Core/Repository/ContentService/UpdateContentTest.php index 745816fc4f..d5645f0a6f 100644 --- a/tests/integration/Core/Repository/ContentService/UpdateContentTest.php +++ b/tests/integration/Core/Repository/ContentService/UpdateContentTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php index 54c0220068..eff951a193 100644 --- a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php @@ -7,7 +7,6 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; @@ -16,6 +15,8 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use Ibexa\Core\Repository\ContentService; +use Ibexa\Core\Repository\Repository as CoveredRepository; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; @@ -28,7 +29,7 @@ #[CoversClass(ContentService::class)] #[CoversMethod(ContentService::class, 'createContent')] #[CoversMethod(ContentService::class, 'loadContentInfo')] -#[CoversMethod(Repository::class, 'sudo')] +#[CoversMethod(CoveredRepository::class, 'sudo')] #[CoversMethod(ContentService::class, 'loadContentInfoList')] #[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] #[CoversMethod(ContentService::class, 'loadVersionInfo')] diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index 49a2e98733..37596d1849 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -8,7 +8,6 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Exception; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\ContentFieldValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException as APIInvalidArgumentException; @@ -35,6 +34,7 @@ use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Core\Base\Exceptions\UnauthorizedException as CoreUnauthorizedException; use Ibexa\Core\FieldType\Relation\Value as RelationValue; +use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use InvalidArgumentException; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php b/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php index f8e35378e5..1a84b692a7 100644 --- a/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php +++ b/tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php @@ -8,7 +8,6 @@ namespace Ibexa\Tests\Integration\Core\Repository\ContentTypeService; -use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\ContentTypeQuery; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion\ContainsFieldDefinitionId; @@ -22,6 +21,7 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion\LogicalOr; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause\Identifier; use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause\Name; +use Ibexa\Core\Repository\ContentTypeService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php index 3d80c6ea93..add492664a 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php @@ -7,8 +7,8 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; +use Ibexa\Core\Repository\ContentTypeService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; diff --git a/tests/integration/Core/Repository/ContentTypeServiceTest.php b/tests/integration/Core/Repository/ContentTypeServiceTest.php index 51d11393ed..cd463702d9 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -9,7 +9,6 @@ use Exception; use Ibexa\Contracts\Core\FieldType\ValidationError; -use Ibexa\Contracts\Core\Repository\ContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeFieldDefinitionValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeValidationException; @@ -31,6 +30,7 @@ use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\Translation\Message; use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; +use Ibexa\Core\Repository\ContentTypeService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php index db3a50e84a..5dfa39b6be 100644 --- a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php @@ -8,13 +8,13 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; use Ibexa\Contracts\Core\Repository; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\ContentTypeFieldDefinitionValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\FieldType\FieldType; +use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php index 49706d34b1..1ad38e8757 100644 --- a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php @@ -9,7 +9,6 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; use Ibexa\Contracts\Core\Repository\Repository; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -17,6 +16,7 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Checkbox\Value as CheckboxValue; +use Ibexa\Core\Repository\SearchService; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php index 9e4d8efb44..1d11b6c782 100644 --- a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php @@ -7,13 +7,13 @@ namespace Ibexa\Tests\Integration\Core\Repository\FieldType; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Field; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Keyword\Value as KeywordValue; +use Ibexa\Core\Repository\SearchService; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/FieldTypeServiceTest.php b/tests/integration/Core/Repository/FieldTypeServiceTest.php index 5f852c0c2e..92abaa6777 100644 --- a/tests/integration/Core/Repository/FieldTypeServiceTest.php +++ b/tests/integration/Core/Repository/FieldTypeServiceTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\FieldType; -use Ibexa\Contracts\Core\Repository\FieldTypeService; +use Ibexa\Core\Repository\FieldTypeService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php index 57b8f84c93..c8ecf66e3f 100644 --- a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php +++ b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php @@ -9,8 +9,6 @@ namespace Ibexa\Tests\Integration\Core\Repository\Filtering; use Ibexa\Contracts\Core\Repository\Collections\TotalCountAwareInterface; -use Ibexa\Contracts\Core\Repository\ContentService; -use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -20,6 +18,8 @@ use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringCriterion; use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringSortClause; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; +use Ibexa\Core\Repository\ContentService; +use Ibexa\Core\Repository\LocationService; use Ibexa\Tests\Core\Repository\Filtering\TestContentProvider; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use IteratorAggregate; diff --git a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php index 582b4387d3..8eb884c4af 100644 --- a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\LanguageService; +use Ibexa\Core\Repository\LanguageService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php index 5105ebf651..fca9650413 100644 --- a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php +++ b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php @@ -7,8 +7,8 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\LanguageService; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy as LegacySetupFactory; +use Ibexa\Core\Repository\LanguageService; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/LanguageServiceTest.php b/tests/integration/Core/Repository/LanguageServiceTest.php index c73b1c881a..4d94d137fd 100644 --- a/tests/integration/Core/Repository/LanguageServiceTest.php +++ b/tests/integration/Core/Repository/LanguageServiceTest.php @@ -10,9 +10,9 @@ use Exception; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\LanguageService; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\LanguageCreateStruct; +use Ibexa\Core\Repository\LanguageService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php index 610e8e91ac..6f5571a073 100644 --- a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php @@ -8,11 +8,11 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\OwnerLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use Ibexa\Core\Repository\LocationService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; diff --git a/tests/integration/Core/Repository/LocationServiceTest.php b/tests/integration/Core/Repository/LocationServiceTest.php index 8c36ead521..9273aff0a8 100644 --- a/tests/integration/Core/Repository/LocationServiceTest.php +++ b/tests/integration/Core/Repository/LocationServiceTest.php @@ -12,7 +12,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\URLAliasService as URLAliasServiceInterface; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct; @@ -27,6 +26,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Core\Persistence\Legacy\Content\Location\Gateway; +use Ibexa\Core\Repository\LocationService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php index 1eb21fc896..a51eb87311 100644 --- a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php +++ b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php @@ -7,9 +7,9 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; +use Ibexa\Core\Repository\ContentService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/NotificationServiceTest.php b/tests/integration/Core/Repository/NotificationServiceTest.php index c5dde70fd0..fe480b5ec3 100644 --- a/tests/integration/Core/Repository/NotificationServiceTest.php +++ b/tests/integration/Core/Repository/NotificationServiceTest.php @@ -10,10 +10,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\NotificationService; use Ibexa\Contracts\Core\Repository\Values\Notification\CreateStruct; use Ibexa\Contracts\Core\Repository\Values\Notification\Query\Criterion\Type; use Ibexa\Contracts\Core\Repository\Values\Notification\Query\NotificationQuery; +use Ibexa\Core\Repository\NotificationService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php index 660103886c..98f4458264 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\ObjectStateService; +use Ibexa\Core\Repository\ObjectStateService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; diff --git a/tests/integration/Core/Repository/ObjectStateServiceTest.php b/tests/integration/Core/Repository/ObjectStateServiceTest.php index 2e124fec44..38be100be2 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceTest.php @@ -9,7 +9,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\ObjectStateService; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectState; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateCreateStruct; @@ -17,6 +16,7 @@ use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupCreateStruct; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateUpdateStruct; +use Ibexa\Core\Repository\ObjectStateService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; @@ -34,7 +34,7 @@ #[CoversMethod(ObjectStateService::class, 'newObjectStateUpdateStruct')] #[CoversMethod(ObjectStateService::class, 'createObjectStateGroup')] #[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'loadGroupByIdentifier')] +#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroupByIdentifier')] #[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups')] #[CoversMethod(ObjectStateService::class, 'loadObjectStates')] #[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] diff --git a/tests/integration/Core/Repository/PermissionResolverTest.php b/tests/integration/Core/Repository/PermissionResolverTest.php index eca00a2a7f..eec352f9bd 100644 --- a/tests/integration/Core/Repository/PermissionResolverTest.php +++ b/tests/integration/Core/Repository/PermissionResolverTest.php @@ -13,13 +13,13 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\PermissionResolver; use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Contracts\Core\Repository\Values\User\LookupLimitationResult; use Ibexa\Contracts\Core\Repository\Values\User\LookupPolicyLimitations; use Ibexa\Contracts\Core\Repository\Values\ValueObject; +use Ibexa\Core\Repository\Permission\PermissionResolver; use Ibexa\Core\Repository\Values\User\UserReference; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/RepositoryTest.php b/tests/integration/Core/Repository/RepositoryTest.php index 4ef25ffacf..9472530ad5 100644 --- a/tests/integration/Core/Repository/RepositoryTest.php +++ b/tests/integration/Core/Repository/RepositoryTest.php @@ -16,7 +16,6 @@ use Ibexa\Contracts\Core\Repository\NotificationService; use Ibexa\Contracts\Core\Repository\ObjectStateService; use Ibexa\Contracts\Core\Repository\PermissionResolver; -use Ibexa\Contracts\Core\Repository\Repository; use Ibexa\Contracts\Core\Repository\RoleService; use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\SectionService; @@ -24,6 +23,7 @@ use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\UserService; +use Ibexa\Core\Repository\Repository; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php index d7c97006f1..924c39bf26 100644 --- a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php @@ -8,10 +8,10 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\RoleService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Contracts\Core\Repository\Values\User\PolicyDraft; use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; +use Ibexa\Core\Repository\RoleService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; @@ -27,7 +27,6 @@ #[CoversMethod(RoleService::class, 'loadRoles')] #[CoversMethod(RoleService::class, 'deleteRole')] #[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'removePolicy')] #[CoversMethod(RoleService::class, 'removePolicyByRoleDraft')] #[CoversMethod(RoleService::class, 'assignRoleToUserGroup')] #[CoversMethod(RoleService::class, 'removeRoleAssignment')] diff --git a/tests/integration/Core/Repository/RoleServiceTest.php b/tests/integration/Core/Repository/RoleServiceTest.php index 265598aff8..9bad87f8ba 100644 --- a/tests/integration/Core/Repository/RoleServiceTest.php +++ b/tests/integration/Core/Repository/RoleServiceTest.php @@ -30,6 +30,7 @@ use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Contracts\Core\Repository\Values\User\UserGroupRoleAssignment; use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; +use Ibexa\Core\Repository\RoleService as CoveredRoleService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; @@ -53,36 +54,35 @@ * *
        */ -#[CoversClass(RoleService::class)] -#[CoversMethod(RoleService::class, 'newRoleCreateStruct')] -#[CoversMethod(RoleService::class, 'newRoleCopyStruct')] -#[CoversMethod(RoleService::class, 'createRole')] -#[CoversMethod(RoleService::class, 'createRoleDraft')] -#[CoversMethod(RoleService::class, 'copyRole')] -#[CoversMethod(RoleService::class, 'loadRole')] -#[CoversMethod(RoleService::class, 'loadRoleDraft')] -#[CoversMethod(RoleService::class, 'loadRoleByIdentifier')] -#[CoversMethod(RoleService::class, 'loadRoles')] -#[CoversMethod(RoleService::class, 'newRoleUpdateStruct')] -#[CoversMethod(RoleService::class, 'updateRoleDraft')] -#[CoversMethod(RoleService::class, 'deleteRole')] -#[CoversMethod(RoleService::class, 'deleteRoleDraft')] -#[CoversMethod(RoleService::class, 'newPolicyCreateStruct')] -#[CoversMethod(RoleService::class, 'addPolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'newPolicyUpdateStruct')] -#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'testUpdatePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'loadRoleAssignment')] -#[CoversMethod(RoleService::class, 'getRoleAssignments')] -#[CoversMethod(RoleService::class, 'loadRoleAssignments')] -#[CoversMethod(RoleService::class, 'countRoleAssignments')] -#[CoversMethod(RoleService::class, 'assignRoleToUser')] -#[CoversMethod(RoleService::class, 'removeRoleAssignment')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup')] -#[CoversMethod(RoleService::class, 'publishRoleDraft')] +#[CoversClass(CoveredRoleService::class)] +#[CoversMethod(CoveredRoleService::class, 'newRoleCreateStruct')] +#[CoversMethod(CoveredRoleService::class, 'newRoleCopyStruct')] +#[CoversMethod(CoveredRoleService::class, 'createRole')] +#[CoversMethod(CoveredRoleService::class, 'createRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'copyRole')] +#[CoversMethod(CoveredRoleService::class, 'loadRole')] +#[CoversMethod(CoveredRoleService::class, 'loadRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'loadRoleByIdentifier')] +#[CoversMethod(CoveredRoleService::class, 'loadRoles')] +#[CoversMethod(CoveredRoleService::class, 'newRoleUpdateStruct')] +#[CoversMethod(CoveredRoleService::class, 'updateRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'deleteRole')] +#[CoversMethod(CoveredRoleService::class, 'deleteRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'newPolicyCreateStruct')] +#[CoversMethod(CoveredRoleService::class, 'addPolicyByRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'newPolicyUpdateStruct')] +#[CoversMethod(CoveredRoleService::class, 'updatePolicyByRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'removePolicyByRoleDraft')] +#[CoversMethod(CoveredRoleService::class, 'loadRoleAssignment')] +#[CoversMethod(CoveredRoleService::class, 'getRoleAssignments')] +#[CoversMethod(CoveredRoleService::class, 'loadRoleAssignments')] +#[CoversMethod(CoveredRoleService::class, 'countRoleAssignments')] +#[CoversMethod(CoveredRoleService::class, 'assignRoleToUser')] +#[CoversMethod(CoveredRoleService::class, 'removeRoleAssignment')] +#[CoversMethod(CoveredRoleService::class, 'getRoleAssignmentsForUser')] +#[CoversMethod(CoveredRoleService::class, 'assignRoleToUserGroup')] +#[CoversMethod(CoveredRoleService::class, 'getRoleAssignmentsForUserGroup')] +#[CoversMethod(CoveredRoleService::class, 'publishRoleDraft')] #[Group('role')] class RoleServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php b/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php index eb37b9dcb3..db80a745e9 100644 --- a/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php +++ b/tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php @@ -9,13 +9,13 @@ namespace Ibexa\Tests\Integration\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; +use Ibexa\Core\Repository\SearchService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php index 6ecb43a68d..9c5f0fdf49 100644 --- a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php @@ -7,11 +7,10 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; +use Ibexa\Core\Repository\SearchService; use Ibexa\Core\Repository\Values\Content\Content; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; @@ -24,8 +23,6 @@ #[CoversClass(SearchService::class)] #[CoversMethod(SearchService::class, 'findContent')] #[CoversMethod(SearchService::class, 'findSingle')] -#[CoversMethod(ContentService::class, 'findContent')] -#[CoversMethod(ContentService::class, 'findSingle')] #[Group('integration')] #[Group('authorization')] class SearchServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SearchServiceFulltextTest.php b/tests/integration/Core/Repository/SearchServiceFulltextTest.php index f7d213ef11..c6188dae45 100644 --- a/tests/integration/Core/Repository/SearchServiceFulltextTest.php +++ b/tests/integration/Core/Repository/SearchServiceFulltextTest.php @@ -7,7 +7,6 @@ namespace Ibexa\Tests\Integration\Core\Repository; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; @@ -15,6 +14,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; +use Ibexa\Core\Repository\SearchService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/SearchServiceLocationTest.php b/tests/integration/Core/Repository/SearchServiceLocationTest.php index 6020e1aa5f..722902f76d 100644 --- a/tests/integration/Core/Repository/SearchServiceLocationTest.php +++ b/tests/integration/Core/Repository/SearchServiceLocationTest.php @@ -9,7 +9,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; @@ -17,6 +16,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchHit; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; +use Ibexa\Core\Repository\SearchService; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/SearchServiceTest.php b/tests/integration/Core/Repository/SearchServiceTest.php index e9d552d225..132ac232ce 100644 --- a/tests/integration/Core/Repository/SearchServiceTest.php +++ b/tests/integration/Core/Repository/SearchServiceTest.php @@ -10,7 +10,6 @@ use function count; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; @@ -22,6 +21,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchHit; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchResult; use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy; +use Ibexa\Core\Repository\SearchService; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php index 741521199a..fb647b41f4 100644 --- a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php +++ b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php @@ -8,12 +8,12 @@ namespace Ibexa\Tests\Integration\Core\Repository; use DateTime; -use Ibexa\Contracts\Core\Repository\SearchService; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; use Ibexa\Contracts\Core\Repository\Values\Content\Query; use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause; use Ibexa\Contracts\Core\Repository\Values\Content\Search\SearchHit; +use Ibexa\Core\Repository\SearchService; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php index c3a101b665..ebf4d0fe3c 100644 --- a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php @@ -8,8 +8,8 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\SectionService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation; +use Ibexa\Core\Repository\SectionService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/SectionServiceTest.php b/tests/integration/Core/Repository/SectionServiceTest.php index f68d94567b..6248b3ce4b 100644 --- a/tests/integration/Core/Repository/SectionServiceTest.php +++ b/tests/integration/Core/Repository/SectionServiceTest.php @@ -11,11 +11,11 @@ use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\SectionService; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Contracts\Core\Repository\Values\Content\SectionCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\SectionUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; +use Ibexa\Core\Repository\SectionService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/SettingServiceTest.php b/tests/integration/Core/Repository/SettingServiceTest.php index 4efda29d53..d24d47ce1a 100644 --- a/tests/integration/Core/Repository/SettingServiceTest.php +++ b/tests/integration/Core/Repository/SettingServiceTest.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\SettingService; use Ibexa\Contracts\Core\Repository\Values\Setting\Setting; +use Ibexa\Core\Repository\SettingService as CoveredSettingService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; @@ -20,11 +21,11 @@ /** * Test case for operations in the SettingService using in memory storage. */ -#[CoversClass(SettingService::class)] -#[CoversMethod(SettingService::class, 'createSetting')] -#[CoversMethod(SettingService::class, 'loadSetting')] -#[CoversMethod(SettingService::class, 'updateSetting')] -#[CoversMethod(SettingService::class, 'deleteSetting')] +#[CoversClass(CoveredSettingService::class)] +#[CoversMethod(CoveredSettingService::class, 'createSetting')] +#[CoversMethod(CoveredSettingService::class, 'loadSetting')] +#[CoversMethod(CoveredSettingService::class, 'updateSetting')] +#[CoversMethod(CoveredSettingService::class, 'deleteSetting')] #[Group('integration')] #[Group('setting')] final class SettingServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php index 153adeb331..e98e26fc26 100644 --- a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php @@ -8,11 +8,10 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\TrashService as CoveredTrashService; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; -use Ibexa\Core\Repository\TrashService; +use Ibexa\Core\Repository\TrashService as CoveredTrashService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/TrashServiceTest.php b/tests/integration/Core/Repository/TrashServiceTest.php index 281f878a19..a0d0c0b778 100644 --- a/tests/integration/Core/Repository/TrashServiceTest.php +++ b/tests/integration/Core/Repository/TrashServiceTest.php @@ -11,7 +11,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; use Ibexa\Contracts\Core\Repository\Repository; -use Ibexa\Contracts\Core\Repository\TrashService; use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; @@ -23,6 +22,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\Trash\SearchResult; use Ibexa\Contracts\Core\Repository\Values\Content\TrashItem as APITrashItem; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; +use Ibexa\Core\Repository\TrashService; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\TrashItem; use PHPUnit\Framework\Attributes\CoversClass; diff --git a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php index f338d63194..536f98e748 100644 --- a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php +++ b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php @@ -8,9 +8,9 @@ namespace Ibexa\Tests\Integration\Core\Repository\URLAliasService; -use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\URLAliasService; +use Ibexa\Core\Repository\ContentService; +use Ibexa\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php b/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php index cc9d06db5b..b207fc3add 100644 --- a/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php +++ b/tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php @@ -9,10 +9,11 @@ namespace Ibexa\Tests\Integration\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\URLAliasService; +use Ibexa\Core\Repository\URLAliasService as CoveredURLAliasService; use Ibexa\Tests\Integration\Core\RepositoryTestCase; use PHPUnit\Framework\Attributes\CoversClass; -#[CoversClass(URLAliasService::class)] +#[CoversClass(CoveredURLAliasService::class)] final class UrlAliasLookupTest extends RepositoryTestCase { /** diff --git a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php index 895f4a445b..30897527f0 100644 --- a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\URLAliasService; +use Ibexa\Core\Repository\URLAliasService; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; diff --git a/tests/integration/Core/Repository/URLAliasServiceTest.php b/tests/integration/Core/Repository/URLAliasServiceTest.php index e618ace70e..d051fff1b1 100644 --- a/tests/integration/Core/Repository/URLAliasServiceTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceTest.php @@ -12,12 +12,12 @@ use Exception; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\URLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\Gateway; use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; +use Ibexa\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\Repository\Common\SlugConverter as TestSlugConverter; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php index d6d8c9732c..7ef86b4ad2 100644 --- a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php @@ -8,9 +8,9 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\URLService; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; +use Ibexa\Core\Repository\URLService; use PHPUnit\Framework\Attributes\CoversMethod; #[CoversMethod(URLService::class, 'findUrls')] diff --git a/tests/integration/Core/Repository/URLServiceTest.php b/tests/integration/Core/Repository/URLServiceTest.php index f0f4f3c939..412042cdf0 100644 --- a/tests/integration/Core/Repository/URLServiceTest.php +++ b/tests/integration/Core/Repository/URLServiceTest.php @@ -10,7 +10,6 @@ use DateTime; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\URLService; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\URL\Query\SortClause; use Ibexa\Contracts\Core\Repository\Values\URL\URL; @@ -18,6 +17,7 @@ use Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\URL\UsageSearchResult; use Ibexa\Core\Base\Exceptions\InvalidArgumentValue; +use Ibexa\Core\Repository\URLService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php b/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php index 63a51f20b3..019023ea5e 100644 --- a/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php +++ b/tests/integration/Core/Repository/URLWildcardService/CriterionTest.php @@ -9,11 +9,11 @@ namespace Ibexa\Tests\Integration\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidCriterionArgumentException; -use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\SearchResult; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard\URLWildcardQuery; use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion as CriterionURL; +use Ibexa\Core\Repository\URLWildcardService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; diff --git a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php index bacacb8253..14fedc4353 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\URLWildcardService; +use Ibexa\Core\Repository\URLWildcardService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; diff --git a/tests/integration/Core/Repository/URLWildcardServiceTest.php b/tests/integration/Core/Repository/URLWildcardServiceTest.php index a3b23a6316..7f20647eca 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceTest.php @@ -10,10 +10,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\ContentValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\URLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardUpdateStruct; +use Ibexa\Core\Repository\URLWildcardService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/UserPreferenceServiceTest.php b/tests/integration/Core/Repository/UserPreferenceServiceTest.php index 4f67801f3a..1e05eca10e 100644 --- a/tests/integration/Core/Repository/UserPreferenceServiceTest.php +++ b/tests/integration/Core/Repository/UserPreferenceServiceTest.php @@ -9,10 +9,10 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\UserPreferenceService; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreference; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceList; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceSetStruct; +use Ibexa\Core\Repository\UserPreferenceService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; diff --git a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php index 6c60c0939b..0eb6741b33 100644 --- a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Integration\Core\Repository; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\UserService; +use Ibexa\Core\Repository\UserService; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; @@ -30,7 +30,7 @@ #[CoversMethod(UserService::class, 'updateUser')] #[CoversMethod(UserService::class, 'updateUserPassword')] #[CoversMethod(UserService::class, 'assignUserToUserGroup')] -#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup')] +#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] #[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] #[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] #[Group('integration')] diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 80a16361ab..8d6712c950 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -16,7 +16,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\ContentFieldValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\UserService; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Language; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; @@ -33,6 +32,7 @@ use Ibexa\Core\FieldType\User\Type; use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\Persistence\Legacy\User\Gateway; +use Ibexa\Core\Repository\UserService; use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\UserGroup; @@ -70,7 +70,6 @@ #[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] #[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] #[CoversMethod(UserService::class, 'assignUserToUserGroup')] -#[CoversMethod(UserService::class, 'unAssignUssrFromUserGroup')] #[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] #[CoversMethod(UserService::class, 'loadUserByToken')] #[CoversMethod(UserService::class, 'updateUserToken')] diff --git a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php index 74a334bf16..359843da4b 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php @@ -11,12 +11,13 @@ use Ibexa\Contracts\Core\Limitation\Target\Builder\VersionBuilder; use Ibexa\Contracts\Core\Repository\ContentService; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\PermissionResolver; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct; use Ibexa\Contracts\Core\Repository\Values\Content\LocationUpdateStruct; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\LanguageLimitation; use Ibexa\Contracts\Core\Repository\Values\User\User; +use Ibexa\Core\Repository\ContentService as CoveredContentService; +use Ibexa\Core\Repository\Permission\PermissionResolver; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; @@ -28,9 +29,9 @@ */ #[CoversClass(LanguageLimitation::class)] #[CoversMethod(PermissionResolver::class, 'canUser')] -#[CoversMethod(ContentService::class, 'createContentDraft')] -#[CoversMethod(ContentService::class, 'updateContent')] -#[CoversMethod(ContentService::class, 'publishVersion')] +#[CoversMethod(CoveredContentService::class, 'createContentDraft')] +#[CoversMethod(CoveredContentService::class, 'updateContent')] +#[CoversMethod(CoveredContentService::class, 'publishVersion')] #[Group('integration')] #[Group('authorization')] #[Group('language-limited-content-mgm')] diff --git a/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php b/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php index 042ca2808a..bb58204151 100644 --- a/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php +++ b/tests/lib/IO/Flysystem/PathPrefixer/BaseSiteAccessAwarePathPrefixerTestCase.php @@ -8,12 +8,13 @@ namespace Ibexa\Tests\Core\IO\Flysystem\PathPrefixer; +use Ibexa\Core\IO\Flysystem\PathPrefixer\BaseSiteAccessAwarePathPrefixer; use Ibexa\Core\IO\Flysystem\PathPrefixer\PathPrefixerInterface; use Ibexa\Tests\Core\Search\TestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversClass(PathPrefixerInterface::class)] +#[CoversClass(BaseSiteAccessAwarePathPrefixer::class)] abstract class BaseSiteAccessAwarePathPrefixerTestCase extends TestCase { abstract protected function getPrefixer(): PathPrefixerInterface; diff --git a/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php b/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php index 62bb2070c7..9f744eaa0f 100644 --- a/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php +++ b/tests/lib/MVC/Symfony/View/AbstractViewTestCase.php @@ -9,6 +9,7 @@ namespace Ibexa\Tests\Core\MVC\Symfony\View; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; +use Ibexa\Core\MVC\Symfony\View\BaseView; use Ibexa\Core\MVC\Symfony\View\View; use InvalidArgumentException; use PHPUnit\Framework\Attributes\CoversClass; @@ -16,7 +17,7 @@ use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\TestCase; -#[CoversClass(View::class)] +#[CoversClass(BaseView::class)] abstract class AbstractViewTestCase extends TestCase { abstract protected function createViewUnderTest($template = null, array $parameters = [], $viewType = 'full'): View; diff --git a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php index 15507fcae8..7025618ffd 100644 --- a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php @@ -11,7 +11,6 @@ use Ibexa\Contracts\Core\Persistence\Content\ContentInfo; use Ibexa\Contracts\Core\Persistence\Content\Location; use Ibexa\Contracts\Core\Persistence\Content\Location\CreateStruct; -use Ibexa\Contracts\Core\Persistence\Content\Location\Handler as CoveredHandler; use Ibexa\Contracts\Core\Persistence\Content\Location\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\ObjectState; use Ibexa\Contracts\Core\Persistence\Content\ObjectState\Group as ObjectStateGroup; @@ -29,7 +28,7 @@ use PHPUnit\Framework\Attributes\Depends; #[CoversClass(Handler::class)] -#[CoversMethod(CoveredHandler::class, 'countLocationsByContent')] +#[CoversMethod(Handler::class, 'countLocationsByContent')] class LocationHandlerTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php index 5b2b4b1ce7..b73c33cd35 100644 --- a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php +++ b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php @@ -11,16 +11,22 @@ use Doctrine\DBAL\Connection; use Doctrine\DBAL\Query\Expression\ExpressionBuilder; use Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder; -use Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder as CoveredCriterionQueryBuilder; use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringCriterion; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalAndQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalNotQueryBuilder; +use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalOrQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor; use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -#[CoversMethod(CoveredCriterionQueryBuilder::class, 'buildQueryConstraint')] -#[CoversMethod(CoveredCriterionQueryBuilder::class, 'accepts')] +#[CoversMethod(LogicalAndQueryBuilder::class, 'buildQueryConstraint')] +#[CoversMethod(LogicalAndQueryBuilder::class, 'accepts')] +#[CoversMethod(LogicalOrQueryBuilder::class, 'buildQueryConstraint')] +#[CoversMethod(LogicalOrQueryBuilder::class, 'accepts')] +#[CoversMethod(LogicalNotQueryBuilder::class, 'buildQueryConstraint')] +#[CoversMethod(LogicalNotQueryBuilder::class, 'accepts')] #[CoversMethod(CriterionVisitor::class, 'visitCriteria')] abstract class BaseCriterionVisitorQueryBuilderTestCase extends TestCase { diff --git a/tests/lib/Repository/Service/Mock/BookmarkTest.php b/tests/lib/Repository/Service/Mock/BookmarkTest.php index ed0e197d37..a2f4c9e2c3 100644 --- a/tests/lib/Repository/Service/Mock/BookmarkTest.php +++ b/tests/lib/Repository/Service/Mock/BookmarkTest.php @@ -11,7 +11,6 @@ use Exception; use Ibexa\Contracts\Core\Persistence\Bookmark\Bookmark; use Ibexa\Contracts\Core\Persistence\Bookmark\CreateStruct; -use Ibexa\Contracts\Core\Repository\BookmarkService as CoveredBookmarkService; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\LocationService; use Ibexa\Contracts\Core\Repository\PermissionResolver; @@ -24,10 +23,10 @@ use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\MockObject\MockObject; -#[CoversMethod(CoveredBookmarkService::class, 'createBookmark')] -#[CoversMethod(CoveredBookmarkService::class, 'deleteBookmark')] -#[CoversMethod(CoveredBookmarkService::class, 'loadBookmarks')] -#[CoversMethod(CoveredBookmarkService::class, 'isBookmarked')] +#[CoversMethod(BookmarkService::class, 'createBookmark')] +#[CoversMethod(BookmarkService::class, 'deleteBookmark')] +#[CoversMethod(BookmarkService::class, 'loadBookmarks')] +#[CoversMethod(BookmarkService::class, 'isBookmarked')] class BookmarkTest extends BaseServiceMockTest { public const BOOKMARK_ID = 2; diff --git a/tests/lib/Repository/Service/Mock/ContentTest.php b/tests/lib/Repository/Service/Mock/ContentTest.php index 33be678e96..f088afd96b 100644 --- a/tests/lib/Repository/Service/Mock/ContentTest.php +++ b/tests/lib/Repository/Service/Mock/ContentTest.php @@ -22,7 +22,6 @@ use Ibexa\Contracts\Core\Persistence\Content\ObjectState\Group as SPIObjectStateGroup; use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct as SPIContentUpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo as SPIVersionInfo; -use Ibexa\Contracts\Core\Repository\ContentService as CoveredContentService; use Ibexa\Contracts\Core\Repository\ContentTypeService as APIContentTypeService; use Ibexa\Contracts\Core\Repository\Exceptions\BadStateException; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; @@ -50,6 +49,7 @@ use Ibexa\Core\Repository\Collector\ContentCollector; use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Helper\RelationProcessor; +use Ibexa\Core\Repository\Mapper\ContentMapper; use Ibexa\Core\Repository\Values\Content\Content; use Ibexa\Core\Repository\Values\Content\ContentCreateStruct; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; @@ -69,24 +69,24 @@ /** * Mock test case for Content service. */ -#[CoversMethod(CoveredContentService::class, '__construct')] -#[CoversMethod(CoveredContentService::class, 'loadVersionInfoById')] -#[CoversMethod(CoveredContentService::class, 'loadVersionInfo')] -#[CoversMethod(CoveredContentService::class, 'loadContentByContentInfo')] -#[CoversMethod(CoveredContentService::class, 'loadContentByVersionInfo')] -#[CoversMethod(CoveredContentService::class, 'deleteContent')] -#[CoversMethod(CoveredContentService::class, 'deleteVersion')] -#[CoversMethod(CoveredContentService::class, 'createContent')] -#[CoversMethod(CoveredContentService::class, 'getLanguageCodesForCreate')] -#[CoversMethod(CoveredContentService::class, 'mapFieldsForCreate')] -#[CoversMethod(CoveredContentService::class, 'cloneField')] -#[CoversMethod(CoveredContentService::class, 'getDefaultObjectStates')] -#[CoversMethod(CoveredContentService::class, 'buildSPILocationCreateStructs')] -#[CoversMethod(CoveredContentService::class, 'updateContent')] -#[CoversMethod(CoveredContentService::class, 'getLanguageCodesForUpdate')] -#[CoversMethod(CoveredContentService::class, 'mapFieldsForUpdate')] -#[CoversMethod(CoveredContentService::class, 'copyContent')] -#[CoversMethod(CoveredContentService::class, 'internalPublishVersion')] +#[CoversMethod(ContentService::class, '__construct')] +#[CoversMethod(ContentService::class, 'loadVersionInfoById')] +#[CoversMethod(ContentService::class, 'loadVersionInfo')] +#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] +#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] +#[CoversMethod(ContentService::class, 'deleteContent')] +#[CoversMethod(ContentService::class, 'deleteVersion')] +#[CoversMethod(ContentService::class, 'createContent')] +#[CoversMethod(ContentMapper::class, 'getLanguageCodesForCreate')] +#[CoversMethod(ContentMapper::class, 'mapFieldsForCreate')] +#[CoversMethod(ContentMapper::class, 'cloneField')] +#[CoversMethod(ContentService::class, 'getDefaultObjectStates')] +#[CoversMethod(ContentService::class, 'buildSPILocationCreateStructs')] +#[CoversMethod(ContentService::class, 'updateContent')] +#[CoversMethod(ContentMapper::class, 'getLanguageCodesForUpdate')] +#[CoversMethod(ContentMapper::class, 'mapFieldsForUpdate')] +#[CoversMethod(ContentService::class, 'copyContent')] +#[CoversMethod(ContentService::class, 'internalPublishVersion')] class ContentTest extends BaseServiceMockTest { private const string EMPTY_FIELD_VALUE = 'empty'; diff --git a/tests/lib/Repository/Service/Mock/RepositoryTest.php b/tests/lib/Repository/Service/Mock/RepositoryTest.php index 2f78ce2844..75c0fd8424 100644 --- a/tests/lib/Repository/Service/Mock/RepositoryTest.php +++ b/tests/lib/Repository/Service/Mock/RepositoryTest.php @@ -7,7 +7,7 @@ namespace Ibexa\Tests\Core\Repository\Service\Mock; -use Ibexa\Contracts\Core\Repository\Repository; +use Ibexa\Core\Repository\Repository; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; use PHPUnit\Framework\Attributes\CoversMethod; diff --git a/tests/lib/Repository/Service/Mock/RoleTest.php b/tests/lib/Repository/Service/Mock/RoleTest.php index 1f8f506544..9124ca9a44 100644 --- a/tests/lib/Repository/Service/Mock/RoleTest.php +++ b/tests/lib/Repository/Service/Mock/RoleTest.php @@ -15,7 +15,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\LimitationValidationException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\Repository; -use Ibexa\Contracts\Core\Repository\RoleService as CoveredRoleService; use Ibexa\Contracts\Core\Repository\UserService; use Ibexa\Contracts\Core\Repository\Values\User\Limitation\RoleLimitation; use Ibexa\Contracts\Core\Repository\Values\User\PolicyCreateStruct; @@ -34,7 +33,7 @@ use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; -#[CoversClass(CoveredRoleService::class)] +#[CoversClass(RoleService::class)] #[CoversMethod(LimitationService::class, 'validateLimitations')] #[CoversMethod(LimitationService::class, 'validateLimitation')] class RoleTest extends BaseServiceMockTest diff --git a/tests/lib/Repository/Service/Mock/SearchTest.php b/tests/lib/Repository/Service/Mock/SearchTest.php index 9c079382f0..8cb34237fc 100644 --- a/tests/lib/Repository/Service/Mock/SearchTest.php +++ b/tests/lib/Repository/Service/Mock/SearchTest.php @@ -12,7 +12,6 @@ use Ibexa\Contracts\Core\Persistence\Content\Location as SPILocation; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\SearchService as CoveredSearchService; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\Location; use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery; @@ -33,11 +32,11 @@ /** * Mock test case for Search service. */ -#[CoversMethod(CoveredSearchService::class, '__construct')] -#[CoversMethod(CoveredSearchService::class, 'addPermissionsCriterion')] -#[CoversMethod(CoveredSearchService::class, 'findContent')] -#[CoversMethod(CoveredSearchService::class, 'findSingle')] -#[CoversMethod(CoveredSearchService::class, 'findLocations')] +#[CoversMethod(SearchService::class, '__construct')] +#[CoversMethod(SearchService::class, 'addPermissionsCriterion')] +#[CoversMethod(SearchService::class, 'findContent')] +#[CoversMethod(SearchService::class, 'findSingle')] +#[CoversMethod(SearchService::class, 'findLocations')] class SearchTest extends BaseServiceMockTest { protected $repositoryMock; diff --git a/tests/lib/Repository/Service/Mock/UrlAliasTest.php b/tests/lib/Repository/Service/Mock/UrlAliasTest.php index a3e14e5f9a..a42c3faa88 100644 --- a/tests/lib/Repository/Service/Mock/UrlAliasTest.php +++ b/tests/lib/Repository/Service/Mock/UrlAliasTest.php @@ -15,7 +15,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Contracts\Core\Repository\LanguageResolver; use Ibexa\Contracts\Core\Repository\NameSchema\NameSchemaServiceInterface; -use Ibexa\Contracts\Core\Repository\URLAliasService as CoveredURLAliasService; use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Core\Base\Exceptions\ForbiddenException; use Ibexa\Core\Base\Exceptions\NotFoundException; @@ -31,9 +30,9 @@ /** * Mock test case for UrlAlias Service. */ -#[CoversMethod(CoveredURLAliasService::class, 'createUrlAlias')] -#[CoversMethod(CoveredURLAliasService::class, 'createGlobalUrlAlias')] -#[CoversMethod(CoveredURLAliasService::class, 'removeAliases')] +#[CoversMethod(URLAliasService::class, 'createUrlAlias')] +#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] +#[CoversMethod(URLAliasService::class, 'removeAliases')] class UrlAliasTest extends BaseServiceMockTest { private const EXAMPLE_ID = 'eznode:42'; diff --git a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php index cc21d80814..5503269d78 100644 --- a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php +++ b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php @@ -14,7 +14,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; -use Ibexa\Contracts\Core\Repository\URLWildcardService as CoveredURLWildcardService; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard; use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult; use Ibexa\Core\Base\Exceptions\NotFoundException as APINotFoundException; @@ -26,10 +25,10 @@ /** * Mock Test case for UrlWildcard Service. */ -#[CoversMethod(CoveredURLWildcardService::class, 'create')] -#[CoversMethod(CoveredURLWildcardService::class, 'remove')] -#[CoversMethod(CoveredURLWildcardService::class, 'loadAll')] -#[CoversMethod(CoveredURLWildcardService::class, 'translate')] +#[CoversMethod(URLWildcardService::class, 'create')] +#[CoversMethod(URLWildcardService::class, 'remove')] +#[CoversMethod(URLWildcardService::class, 'loadAll')] +#[CoversMethod(URLWildcardService::class, 'translate')] class UrlWildcardTest extends BaseServiceMockTest { private const EXAMPLE_URL_WILDCARD_ID = 1; diff --git a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php index dbd2da6a90..ef73337f3b 100644 --- a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php +++ b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php @@ -13,7 +13,6 @@ use Ibexa\Contracts\Core\Persistence\UserPreference\UserPreferenceSetStruct; use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Contracts\Core\Repository\PermissionResolver; -use Ibexa\Contracts\Core\Repository\UserPreferenceService as CoveredUserPreferenceService; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreference as APIUserPreference; use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceSetStruct as APIUserPreferenceSetStruct; use Ibexa\Core\Repository\UserPreferenceService; @@ -21,10 +20,10 @@ use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; use PHPUnit\Framework\Attributes\CoversMethod; -#[CoversMethod(CoveredUserPreferenceService::class, 'setUserPreference')] -#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreference')] -#[CoversMethod(CoveredUserPreferenceService::class, 'loadUserPreferences')] -#[CoversMethod(CoveredUserPreferenceService::class, 'getUserPreferenceCount')] +#[CoversMethod(UserPreferenceService::class, 'setUserPreference')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreference')] +#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences')] +#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount')] class UserPreferenceTest extends BaseServiceMockTest { public const CURRENT_USER_ID = 14; From 00bcef6943f0545663b8f4c7eed91699e87eed94 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:10 +0200 Subject: [PATCH 06/20] IBX-12606: Typed the SA_NODE_NAME constant in ContextualizerTest --- .../Configuration/SiteAccessAware/ContextualizerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php index 5109af9601..d191f0f81e 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php @@ -17,7 +17,7 @@ class ContextualizerTest extends TestCase { - private const SA_NODE_NAME = 'heyho'; + private const string SA_NODE_NAME = 'heyho'; /** @var \PHPUnit\Framework\MockObject\MockObject */ private $container; From 3bafc39e19c4db3c59cb5d6252da1bab16fffd15 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:10 +0200 Subject: [PATCH 07/20] IBX-12606: Replaced docblock-typed test double properties with native intersection types --- .../Core/EventListener/ConsoleCommandListenerTest.php | 4 ++-- .../Core/EventListener/IndexRequestListenerTest.php | 4 ++-- ...jectExplicitFrontControllerRequestsListenerTest.php | 4 ++-- .../Core/EventListener/RequestEventListenerTest.php | 10 ++++------ .../Core/EventListener/ViewControllerListenerTest.php | 4 ++-- .../Filter/Loader/ReduceNoiseFilterLoaderTest.php | 4 ++-- .../BinaryBaseStorage/BinaryBaseStorageTest.php | 4 ++-- .../Controller/Content/PreviewControllerTest.php | 4 ++-- .../EventListener/SiteAccessRestoreListenerTest.php | 8 ++++---- .../Symfony/FieldType/User/ParameterProviderTest.php | 4 ++-- .../lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php | 4 ++-- tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php | 4 ++-- tests/lib/MVC/Symfony/View/ViewManagerTest.php | 4 ++-- .../FieldValue/Converter/ImageConverterTest.php | 7 +++---- tests/lib/Repository/Mapper/ContentMapperTest.php | 4 ++-- 15 files changed, 35 insertions(+), 38 deletions(-) diff --git a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php index a8d15271dd..fa4670a2bc 100644 --- a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php +++ b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php @@ -11,6 +11,7 @@ use Ibexa\Core\MVC\Exception\InvalidSiteAccessException; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Tests\Bundle\Core\EventListener\Stubs\TestOutput; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\ConsoleEvents; @@ -40,8 +41,7 @@ class ConsoleCommandListenerTest extends TestCase /** @var \Symfony\Component\Console\Output\Output */ private $testOutput; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\Console\Command\Command */ - private \PHPUnit\Framework\MockObject\Stub $command; + private Command&Stub $command; protected function setUp(): void { diff --git a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php index 045d2c084a..fcc03c4763 100644 --- a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php +++ b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\EventListener\IndexRequestListener; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -30,8 +31,7 @@ class IndexRequestListenerTest extends TestCase /** @var \Symfony\Component\HttpKernel\Event\RequestEvent */ private $event; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ - private \PHPUnit\Framework\MockObject\Stub $httpKernel; + private HttpKernelInterface&Stub $httpKernel; protected function setUp(): void { diff --git a/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php b/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php index c4b255a0a0..b6bd3aa2c4 100644 --- a/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php +++ b/tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php @@ -11,6 +11,7 @@ use Ibexa\Bundle\Core\EventListener\RejectExplicitFrontControllerRequestsListener; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\DoesNotPerformAssertions; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Event\RequestEvent; @@ -23,8 +24,7 @@ class RejectExplicitFrontControllerRequestsListenerTest extends TestCase /** @var \Ibexa\Bundle\Core\EventListener\RejectExplicitFrontControllerRequestsListener */ private $eventListener; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ - private \PHPUnit\Framework\MockObject\Stub $httpKernel; + private HttpKernelInterface&Stub $httpKernel; protected function setUp(): void { diff --git a/tests/bundle/Core/EventListener/RequestEventListenerTest.php b/tests/bundle/Core/EventListener/RequestEventListenerTest.php index 11de005176..7de15c6a23 100644 --- a/tests/bundle/Core/EventListener/RequestEventListenerTest.php +++ b/tests/bundle/Core/EventListener/RequestEventListenerTest.php @@ -10,6 +10,7 @@ use Ibexa\Bundle\Core\EventListener\RequestEventListener; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; use Ibexa\Core\MVC\Symfony\SiteAccess; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Bridge\PhpUnit\ClockMock; @@ -23,14 +24,11 @@ class RequestEventListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */ - private \PHPUnit\Framework\MockObject\Stub $configResolver; + private ConfigResolverInterface&Stub $configResolver; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\Routing\RouterInterface */ - private \PHPUnit\Framework\MockObject\Stub $router; + private RouterInterface&Stub $router; - /** @var \PHPUnit\Framework\MockObject\Stub&\Psr\Log\LoggerInterface */ - private \PHPUnit\Framework\MockObject\Stub $logger; + private LoggerInterface&Stub $logger; /** @var \Ibexa\Bundle\Core\EventListener\RequestEventListener */ private $requestEventListener; diff --git a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php index 48b61f2c82..dfd1f3886c 100644 --- a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php +++ b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php @@ -15,6 +15,7 @@ use Ibexa\Core\MVC\Symfony\View\ContentView; use Ibexa\Core\MVC\Symfony\View\Event\FilterViewBuilderParametersEvent; use Ibexa\Core\MVC\Symfony\View\ViewEvents; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -30,8 +31,7 @@ class ViewControllerListenerTest extends TestCase /** @var \Symfony\Component\HttpKernel\Controller\ControllerResolver|\PHPUnit\Framework\MockObject\MockObject */ private $controllerResolver; - /** @var \PHPUnit\Framework\MockObject\Stub&\Psr\Log\LoggerInterface */ - private \PHPUnit\Framework\MockObject\Stub $logger; + private LoggerInterface&Stub $logger; /** @var \Ibexa\Bundle\Core\EventListener\ViewControllerListener */ private $controllerListener; diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php index 8ee5086b1a..f4154bc585 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php @@ -11,12 +11,12 @@ use Ibexa\Bundle\Core\Imagine\Filter\Loader\ReduceNoiseFilterLoader; use Imagine\Exception\NotSupportedException; use Imagine\Image\ImageInterface; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; class ReduceNoiseFilterLoaderTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Bundle\Core\Imagine\Filter\FilterInterface */ - private \PHPUnit\Framework\MockObject\Stub $filter; + private FilterInterface&Stub $filter; /** @var \Ibexa\Bundle\Core\Imagine\Filter\Loader\ReduceNoiseFilterLoader */ private $loader; diff --git a/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php b/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php index bc6d04d4a1..e43d9b6423 100644 --- a/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php +++ b/tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php @@ -25,6 +25,7 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub; class BinaryBaseStorageTest extends BaseCoreFieldTypeIntegrationTestCase { @@ -39,8 +40,7 @@ class BinaryBaseStorageTest extends BaseCoreFieldTypeIntegrationTestCase /** @var \Ibexa\Core\FieldType\BinaryBase\BinaryBaseStorage|\PHPUnit\Framework\MockObject\MockObject */ protected $storage; - /** @var \Ibexa\Core\FieldType\Validator\FileExtensionBlackListValidator&\PHPUnit\Framework\MockObject\Stub */ - protected \PHPUnit\Framework\MockObject\Stub $fileExtensionBlackListValidatorMock; + protected FileExtensionBlackListValidator&Stub $fileExtensionBlackListValidatorMock; protected function setUp(): void { diff --git a/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php b/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php index 178fc6e069..358a260323 100644 --- a/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/Controller/Content/PreviewControllerTest.php @@ -21,6 +21,7 @@ use Ibexa\Core\MVC\Symfony\View\CustomLocationControllerChecker; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Request; @@ -50,8 +51,7 @@ final class PreviewControllerTest extends TestCase /** @var \Ibexa\Core\Helper\PreviewLocationProvider&\PHPUnit\Framework\MockObject\MockObject */ protected PreviewLocationProvider $locationProvider; - /** @var \Ibexa\Core\MVC\Symfony\View\CustomLocationControllerChecker&\PHPUnit\Framework\MockObject\Stub */ - protected \PHPUnit\Framework\MockObject\Stub $controllerChecker; + protected CustomLocationControllerChecker&Stub $controllerChecker; /** @var \Psr\Log\LoggerInterface&\PHPUnit\Framework\MockObject\MockObject */ private LoggerInterface $logger; diff --git a/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php b/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php index 4e43bf17ac..cb36739c25 100644 --- a/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php +++ b/tests/lib/MVC/Symfony/EventListener/SiteAccessRestoreListenerTest.php @@ -14,6 +14,8 @@ use Ibexa\Core\MVC\Symfony\SiteAccess; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; @@ -25,11 +27,9 @@ #[CoversClass(SiteAccessRestoreListener::class)] final class SiteAccessRestoreListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\HttpKernel\HttpKernelInterface */ - private \PHPUnit\Framework\MockObject\Stub $kernel; + private HttpKernelInterface&Stub $kernel; - /** @var \PHPUnit\Framework\MockObject\MockObject&\Symfony\Component\EventDispatcher\EventDispatcherInterface */ - private EventDispatcherInterface $eventDispatcher; + private EventDispatcherInterface&MockObject $eventDispatcher; private RequestStack $requestStack; diff --git a/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php index 258229adf6..400e4d6784 100644 --- a/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/User/ParameterProviderTest.php @@ -16,6 +16,7 @@ use Ibexa\Contracts\Core\Repository\Values\User\User; use Ibexa\Core\FieldType\User\Value; use Ibexa\Core\MVC\Symfony\FieldType\User\ParameterProvider; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; class ParameterProviderTest extends TestCase @@ -25,8 +26,7 @@ class ParameterProviderTest extends TestCase /** @var \Ibexa\Contracts\Core\Repository\UserService|\PHPUnit\Framework\MockObject\MockObject */ private $userService; - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Contracts\Core\Repository\Values\User\User */ - private \PHPUnit\Framework\MockObject\Stub $user; + private User&Stub $user; /** @var \Ibexa\Core\MVC\Symfony\FieldType\User\ParameterProvider */ private $parameterProvider; diff --git a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php index 5197aa3f4c..06b9508899 100644 --- a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php @@ -22,6 +22,7 @@ use Ibexa\Core\Repository\Repository; use Ibexa\Core\Repository\Values\Content\Location; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\Routing\RouterInterface; @@ -46,8 +47,7 @@ class UrlAliasGeneratorTest extends TestCase /** @var \Ibexa\Core\MVC\Symfony\Routing\Generator\UrlAliasGenerator */ private $urlAliasGenerator; - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessRouterInterface */ - private \PHPUnit\Framework\MockObject\Stub $siteAccessRouter; + private SiteAccessRouterInterface&Stub $siteAccessRouter; /** @var \PHPUnit\Framework\MockObject\MockObject */ private $configResolver; diff --git a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php index ba8e99da44..b7d56bfe1b 100644 --- a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php +++ b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php @@ -14,6 +14,7 @@ use Ibexa\Core\MVC\Symfony\Routing\UrlAliasRouter; use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\Templating\GlobalHelper; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Request; @@ -25,8 +26,7 @@ class GlobalHelperTest extends TestCase /** @var \Ibexa\Core\MVC\Symfony\Templating\GlobalHelper */ protected $helper; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\DependencyInjection\ContainerInterface */ - protected \PHPUnit\Framework\MockObject\Stub $container; + protected ContainerInterface&Stub $container; /** @var \PHPUnit\Framework\MockObject\MockObject */ protected $locationService; diff --git a/tests/lib/MVC/Symfony/View/ViewManagerTest.php b/tests/lib/MVC/Symfony/View/ViewManagerTest.php index bed57a692f..b5c62eed30 100644 --- a/tests/lib/MVC/Symfony/View/ViewManagerTest.php +++ b/tests/lib/MVC/Symfony/View/ViewManagerTest.php @@ -19,6 +19,7 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\Content\VersionInfo; use PHPUnit\Framework\Attributes\Group; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Twig\Environment; @@ -32,8 +33,7 @@ class ViewManagerTest extends TestCase /** @var \PHPUnit\Framework\MockObject\MockObject|\Twig\Environment */ private $templateEngineMock; - /** @var \PHPUnit\Framework\MockObject\Stub&\Symfony\Component\EventDispatcher\EventDispatcherInterface */ - private \PHPUnit\Framework\MockObject\Stub $eventDispatcherMock; + private EventDispatcherInterface&Stub $eventDispatcherMock; /** @var \PHPUnit\Framework\MockObject\MockObject|\Ibexa\Contracts\Core\Repository\Repository */ private $repositoryMock; diff --git a/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php b/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php index 51cc4e021b..2a32815f82 100644 --- a/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php +++ b/tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php @@ -15,6 +15,7 @@ use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ImageConverter; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldDefinition; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; final class ImageConverterTest extends TestCase @@ -29,11 +30,9 @@ final class ImageConverterTest extends TestCase /** @var \Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter\ImageConverter */ private $imageConverter; - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\IO\UrlRedecoratorInterface */ - private \PHPUnit\Framework\MockObject\Stub $urlRedecorator; + private UrlRedecoratorInterface&Stub $urlRedecorator; - /** @var \PHPUnit\Framework\MockObject\Stub&\Ibexa\Core\IO\IOServiceInterface */ - private \PHPUnit\Framework\MockObject\Stub $ioService; + private IOServiceInterface&Stub $ioService; protected function setUp(): void { diff --git a/tests/lib/Repository/Mapper/ContentMapperTest.php b/tests/lib/Repository/Mapper/ContentMapperTest.php index 77c80695ff..c7dcc1ae07 100644 --- a/tests/lib/Repository/Mapper/ContentMapperTest.php +++ b/tests/lib/Repository/Mapper/ContentMapperTest.php @@ -22,13 +22,13 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; #[CoversMethod(ContentService::class, 'updateContent')] final class ContentMapperTest extends TestCase { - /** @var \Ibexa\Core\Persistence\Legacy\Content\Language\Handler&\PHPUnit\Framework\MockObject\Stub */ - private \PHPUnit\Framework\MockObject\Stub $contentLanguageHandler; + private Handler&Stub $contentLanguageHandler; /** @var \Ibexa\Core\FieldType\FieldTypeRegistry&\PHPUnit\Framework\MockObject\MockObject */ private FieldTypeRegistry $fieldTypeRegistry; From 068e27e8f49b70efde5b0baa192a68c19fdd3d6a Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:11 +0200 Subject: [PATCH 08/20] IBX-12606: Imported PHPUnit test double classes used in intersection property types --- .../EventListener/ExceptionListenerTest.php | 4 ++-- .../Core/Imagine/IORepositoryResolverTest.php | 3 ++- .../Image/ImageStorage/ImageStorageTest.php | 7 +++--- .../SiteAccessMatchListenerTest.php | 10 ++++---- .../MVC/Symfony/Security/UserWrappedTest.php | 3 ++- .../Legacy/Content/ContentHandlerTest.php | 11 +++------ .../ContentService/RelationListFacadeTest.php | 3 ++- .../Repository/Service/Mock/ContentTest.php | 11 +++------ .../lib/Repository/Service/Mock/UserTest.php | 23 +++++++------------ 9 files changed, 30 insertions(+), 45 deletions(-) diff --git a/tests/bundle/Core/EventListener/ExceptionListenerTest.php b/tests/bundle/Core/EventListener/ExceptionListenerTest.php index c1f74ca525..b5489972d2 100644 --- a/tests/bundle/Core/EventListener/ExceptionListenerTest.php +++ b/tests/bundle/Core/EventListener/ExceptionListenerTest.php @@ -25,6 +25,7 @@ use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Base\Exceptions\UnauthorizedException; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use RuntimeException; use Symfony\Component\HttpFoundation\Request; @@ -41,8 +42,7 @@ class ExceptionListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject&\Symfony\Contracts\Translation\TranslatorInterface */ - private TranslatorInterface $translator; + private TranslatorInterface&MockObject $translator; private ExceptionListener $listener; diff --git a/tests/bundle/Core/Imagine/IORepositoryResolverTest.php b/tests/bundle/Core/Imagine/IORepositoryResolverTest.php index 4775ee7ffd..8b172139f6 100644 --- a/tests/bundle/Core/Imagine/IORepositoryResolverTest.php +++ b/tests/bundle/Core/Imagine/IORepositoryResolverTest.php @@ -23,6 +23,7 @@ use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\RequestContext; @@ -38,7 +39,7 @@ final class IORepositoryResolverTest extends TestCase private IORepositoryResolver $imageResolver; - protected VariationPurger&\PHPUnit\Framework\MockObject\Stub $variationPurger; + protected VariationPurger&Stub $variationPurger; protected VariationPathGenerator & MockObject $variationPathGenerator; diff --git a/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php b/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php index 5cef732d02..cf312fff04 100644 --- a/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php +++ b/tests/integration/Core/Image/ImageStorage/ImageStorageTest.php @@ -26,6 +26,7 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub; final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase { @@ -33,9 +34,9 @@ final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase private UrlRedecoratorInterface & MockObject $redecorator; - private PathGenerator&\PHPUnit\Framework\MockObject\Stub $pathGenerator; + private PathGenerator&Stub $pathGenerator; - private AliasCleanerInterface&\PHPUnit\Framework\MockObject\Stub $aliasCleaner; + private AliasCleanerInterface&Stub $aliasCleaner; private FilePathNormalizerInterface & MockObject $filePathNormalizer; @@ -43,7 +44,7 @@ final class ImageStorageTest extends BaseCoreFieldTypeIntegrationTestCase private ImageStorage $storage; - private FileExtensionBlackListValidator&\PHPUnit\Framework\MockObject\Stub $fileExtensionBlackListValidator; + private FileExtensionBlackListValidator&Stub $fileExtensionBlackListValidator; protected function setUp(): void { diff --git a/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php b/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php index cbc606407e..8b07fade12 100644 --- a/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php +++ b/tests/lib/MVC/Symfony/EventListener/SiteAccessMatchListenerTest.php @@ -27,6 +27,7 @@ use Ibexa\Core\MVC\Symfony\SiteAccess\Router; use Ibexa\Core\MVC\Symfony\SiteAccessGroup; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; @@ -44,14 +45,11 @@ #[CoversClass(SiteAccessMatchListener::class)] final class SiteAccessMatchListenerTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject&\Ibexa\Core\MVC\Symfony\SiteAccess\Router */ - private Router $saRouter; + private Router&MockObject $saRouter; - /** @var \PHPUnit\Framework\MockObject\MockObject&\Symfony\Component\EventDispatcher\EventDispatcherInterface */ - private EventDispatcherInterface $eventDispatcher; + private EventDispatcherInterface&MockObject $eventDispatcher; - /** @var \PHPUnit\Framework\MockObject\MockObject&\Ibexa\Bundle\Core\SiteAccess\SiteAccessMatcherRegistryInterface */ - private SiteAccessMatcherRegistryInterface $registry; + private SiteAccessMatcherRegistryInterface&MockObject $registry; private SiteAccessMatchListener $listener; diff --git a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php index e1d8cd3f70..52cbe7b861 100644 --- a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php +++ b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php @@ -11,13 +11,14 @@ use Ibexa\Contracts\Core\Repository\Values\User\User as APIUser; use Ibexa\Core\MVC\Symfony\Security\UserInterface; use Ibexa\Core\MVC\Symfony\Security\UserWrapped; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\User\EquatableInterface; use Symfony\Component\Security\Core\User\UserInterface as SymfonyUserInterface; final class UserWrappedTest extends TestCase { - private APIUser&\PHPUnit\Framework\MockObject\Stub $apiUser; + private APIUser&Stub $apiUser; protected function setUp(): void { diff --git a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php index f66972820b..86fcf54784 100644 --- a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php @@ -35,6 +35,7 @@ use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\MockObject\MockObject; use ReflectionException; #[CoversClass(Handler::class)] @@ -113,10 +114,7 @@ class ContentHandlerTest extends TestCase */ protected $contentTypeHandlerMock; - /** - * @var \PHPUnit\Framework\MockObject\MockObject&\Ibexa\Core\Persistence\Legacy\Content\Language\Handler - */ - private LanguageHandler $languageHandlerMock; + private LanguageHandler&MockObject $languageHandlerMock; /** * @todo Current method way to complex to test, refactor! @@ -1603,10 +1601,7 @@ protected function getContentTypeHandlerMock() return $this->contentTypeHandlerMock; } - /** - * @return \PHPUnit\Framework\MockObject\MockObject&\Ibexa\Core\Persistence\Legacy\Content\Language\Handler - */ - protected function getLanguageHandlerMock(): LanguageHandler + protected function getLanguageHandlerMock(): LanguageHandler&MockObject { if (!isset($this->languageHandlerMock)) { $this->languageHandlerMock = $this->createMock(LanguageHandler::class); diff --git a/tests/lib/Repository/ContentService/RelationListFacadeTest.php b/tests/lib/Repository/ContentService/RelationListFacadeTest.php index a36819b09d..d6fba30090 100644 --- a/tests/lib/Repository/ContentService/RelationListFacadeTest.php +++ b/tests/lib/Repository/ContentService/RelationListFacadeTest.php @@ -15,6 +15,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\ContentService\RelationListFacade; use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; final class RelationListFacadeTest extends TestCase @@ -23,7 +24,7 @@ final class RelationListFacadeTest extends TestCase private RelationListFacade $relationListFacade; - private VersionInfo&\PHPUnit\Framework\MockObject\Stub $versionInfo; + private VersionInfo&Stub $versionInfo; protected function setUp(): void { diff --git a/tests/lib/Repository/Service/Mock/ContentTest.php b/tests/lib/Repository/Service/Mock/ContentTest.php index f088afd96b..95462b6b23 100644 --- a/tests/lib/Repository/Service/Mock/ContentTest.php +++ b/tests/lib/Repository/Service/Mock/ContentTest.php @@ -64,6 +64,7 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; +use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Validator\Validator\ValidatorInterface; /** @@ -2461,10 +2462,7 @@ public function testCreateContentThrowsContentFieldValidationException($mainLang } } - /** - * @param \Ibexa\Contracts\Core\FieldType\FieldType&\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock - */ - private function acceptFieldTypeValueMock(\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock): void + private function acceptFieldTypeValueMock(FieldType&MockObject $fieldTypeMock): void { $fieldTypeMock->expects(self::any()) ->method('acceptValue') @@ -2493,10 +2491,7 @@ private function getFieldTypeFieldTypeRegistryMock(\PHPUnit\Framework\MockObject ->will(self::returnValue($fieldTypeMock)); } - /** - * @param \Ibexa\Contracts\Core\FieldType\FieldType&\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock - */ - private function isEmptyValueFieldTypeMock(\PHPUnit\Framework\MockObject\MockObject $fieldTypeMock): void + private function isEmptyValueFieldTypeMock(FieldType&MockObject $fieldTypeMock): void { $emptyValue = new ValueStub(self::EMPTY_FIELD_VALUE); $fieldTypeMock->expects(self::any()) diff --git a/tests/lib/Repository/Service/Mock/UserTest.php b/tests/lib/Repository/Service/Mock/UserTest.php index cee00d5854..549557e13d 100644 --- a/tests/lib/Repository/Service/Mock/UserTest.php +++ b/tests/lib/Repository/Service/Mock/UserTest.php @@ -23,6 +23,7 @@ use Ibexa\Core\Repository\UserService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\MockObject\MockObject; #[CoversClass(UserService::class)] class UserTest extends BaseServiceMockTest @@ -59,7 +60,7 @@ public function testDeleteUserWithRollback(): void $repository = $this->getRepositoryMock(); $userService = $this->getPartlyMockedUserService(['loadUser']); $contentService = $this->createMock(APIContentService::class); - /* @var \Ibexa\Contracts\Core\Persistence\User\Handler&\PHPUnit\Framework\MockObject\MockObject $userHandler */ + /* @var PersistenceUserHandler&MockObject $userHandler */ $userHandler = $this->getPersistenceMock()->userHandler(); $user = $this->createMock(APIUser::class); @@ -105,21 +106,13 @@ protected function getPartlyMockedUserService(?array $methods = null): APIUserSe ->getMock(); } - /** - * @param \Ibexa\Contracts\Core\Repository\Repository&\PHPUnit\Framework\MockObject\MockObject $repository - * @param \Ibexa\Contracts\Core\Repository\UserService&\PHPUnit\Framework\MockObject\MockObject $userService - * @param \Ibexa\Contracts\Core\Repository\ContentService&\PHPUnit\Framework\MockObject\MockObject $contentService - * @param \Ibexa\Contracts\Core\Repository\Values\User\User&\PHPUnit\Framework\MockObject\MockObject $user - * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo&\PHPUnit\Framework\MockObject\MockObject $contentInfo - * @param \Ibexa\Contracts\Core\Persistence\User\Handler&\PHPUnit\Framework\MockObject\MockObject $userHandler - */ private function mockDeleteUserFlow( - Repository $repository, - APIUserService $userService, - APIContentService $contentService, - User $user, - APIContentInfo $contentInfo, - PersistenceUserHandler $userHandler + Repository&MockObject $repository, + APIUserService&MockObject $userService, + APIContentService&MockObject $contentService, + User&MockObject $user, + APIContentInfo&MockObject $contentInfo, + PersistenceUserHandler&MockObject $userHandler ): void { $loadedUser = $this->createMock(APIUser::class); $versionInfo = $this->createMock(APIVersionInfo::class); From b8bf2b2462b5e739956436ee956c46cfafd28588 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:11 +0200 Subject: [PATCH 09/20] IBX-12606: Typed testIndexDelete() parameters in BackgroundIndexingTerminateListenerTest --- phpstan-baseline.neon | 6 ------ .../BackgroundIndexingTerminateListenerTest.php | 7 +------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index ed8bc2793d..210569fbd7 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -20082,12 +20082,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:testIndexDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:testIndexing\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php index 15afb86304..74cc42b516 100644 --- a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php +++ b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php @@ -160,13 +160,8 @@ public static function indexDeleteProvider() ]; } - /** - * @param \Ibexa\Contracts\Core\Persistence\Content\ContentInfo|\Ibexa\Contracts\Core\Persistence\Content\Location $value - * @param \Ibexa\Contracts\Core\Persistence\Content\ContentInfo|\Throwable $infoReturn - * @param \Ibexa\Contracts\Core\Persistence\Content|\Throwable|null $contentReturn - */ #[DataProvider('indexDeleteProvider')] - public function testIndexDelete($value, $infoReturn, $contentReturn = null) + public function testIndexDelete(ContentInfo|Location $value, ContentInfo|\Throwable $infoReturn, Content|\Throwable|null $contentReturn = null): void { $contentHandlerMock = $this->createMock(Content\Handler::class); $this->persistenceMock From 5c064640647621c2524d70e0cc63d721a6c94c8f Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:11 +0200 Subject: [PATCH 10/20] IBX-12606: Moved and typed the data provider sentinel constants --- .../FieldType/BaseIntegrationTestCase.php | 14 +++++++------- .../SiteAccessAware/AbstractServiceTestCase.php | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php index 5dfa39b6be..e2a2cc8740 100644 --- a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php @@ -58,6 +58,13 @@ abstract class BaseIntegrationTestCase extends BaseTestCase */ public const VERSION_ARCHIVE_LIMIT = 5; + /** + * Sentinel value a {@see self::providerForTestIsEmptyValue()} override returns when the + * field type has no "empty" representation, since PHPUnit 11 treats an empty data provider + * as a hard error rather than a skip. + */ + protected const string NO_EMPTY_VALUE_DATA = '__no_empty_value_data__'; + /** * Identifier of the custom field. * @@ -390,13 +397,6 @@ protected function getOverride($key, array $overrideValues, $default) return isset($overrideValues[$key]) ? $overrideValues[$key] : $default; } - /** - * Sentinel value a {@see self::providerForTestIsEmptyValue()} override returns when the - * field type has no "empty" representation, since PHPUnit 11 treats an empty data provider - * as a hard error rather than a skip. - */ - protected const NO_EMPTY_VALUE_DATA = '__no_empty_value_data__'; - #[DataProvider('providerForTestIsEmptyValue')] public function testIsEmptyValue($value) { diff --git a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php index a8f58219a1..9cf465f272 100644 --- a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php +++ b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php @@ -38,7 +38,7 @@ abstract class AbstractServiceTestCase extends TestCase * provider as a hard error, so a single sentinel row is yielded instead and the two consuming * test methods skip immediately when they see it. */ - protected const NO_DATA_METHOD = '__no_data__'; + protected const string NO_DATA_METHOD = '__no_data__'; /** @var \object|\PHPUnit\Framework\MockObject\MockObject */ protected $innerApiServiceMock; From c8dec077b35ff043f95b087c421c1ce71df1e3d6 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:28:11 +0200 Subject: [PATCH 11/20] IBX-12606: Removed constructor override from EZP22840RoleLimitations regression test --- phpstan-baseline.neon | 6 ------ .../Core/Repository/Regression/EZP22840RoleLimitations.php | 5 ----- 2 files changed, 11 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 210569fbd7..2565b57205 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -31986,12 +31986,6 @@ parameters: count: 1 path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:__construct\(\) overrides @final method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:__construct\(\)\.$#' - identifier: method.parentMethodFinalByPhpDoc - count: 1 - path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:testSectionRoleAssignLimitation\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php index 1e6a7cef6c..34f21aab63 100644 --- a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php +++ b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php @@ -17,11 +17,6 @@ */ class EZP22840RoleLimitations extends BaseTestCase { - public function __construct() - { - parent::__construct(static::class); - } - /** * Test Subtree Role Assignment Limitation against state/assign. */ From ff62442be1d9566bf1cffed36cfbe8166bb6ca46 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:31:48 +0200 Subject: [PATCH 12/20] IBX-12606: Used mocks instead of stubs for URL handlers with expectations in URLCheckerTest --- phpstan-baseline.neon | 6 ------ tests/bundle/Core/URLChecker/URLCheckerTest.php | 6 +++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 2565b57205..3d613a3b97 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -21474,12 +21474,6 @@ parameters: count: 1 path: tests/bundle/Core/SiteAccess/SiteAccessMatcherRegistryTest.php - - - message: '#^Call to an undefined method Ibexa\\Bundle\\Core\\URLChecker\\URLHandlerInterface&PHPUnit\\Framework\\MockObject\\Stub\:\:expects\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/tests/bundle/Core/URLChecker/URLCheckerTest.php b/tests/bundle/Core/URLChecker/URLCheckerTest.php index afee9c7f86..e0d6be90ec 100644 --- a/tests/bundle/Core/URLChecker/URLCheckerTest.php +++ b/tests/bundle/Core/URLChecker/URLCheckerTest.php @@ -55,8 +55,8 @@ public function testCheck() ->willReturn($this->createSearchResults($groups)); $handlers = [ - 'http' => self::createStub(URLHandlerInterface::class), - 'https' => self::createStub(URLHandlerInterface::class), + 'http' => $this->createMock(URLHandlerInterface::class), + 'https' => $this->createMock(URLHandlerInterface::class), ]; foreach ($handlers as $scheme => $handler) { @@ -91,7 +91,7 @@ public function testCheckUnsupported() ->with('Unsupported URL schema: https'); $handlers = [ - 'http' => self::createStub(URLHandlerInterface::class), + 'http' => $this->createMock(URLHandlerInterface::class), ]; foreach ($handlers as $scheme => $handler) { From f669fe8d0e35e782328addb0250c505f25e8e4dc Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:37:26 +0200 Subject: [PATCH 13/20] IBX-12606: Replaced CoversMethod attributes with CoversClass --- .../Compiler/InstallerTagPassTest.php | 2 -- .../IbexaInstallerExtensionTest.php | 2 -- .../Doctrine/FilteringQueryBuilderTest.php | 4 +-- .../Core/Repository/BookmarkServiceTest.php | 5 --- .../ContentServiceAuthorizationTest.php | 27 +------------- .../Core/Repository/ContentServiceTest.php | 35 ++----------------- .../ContentTypeServiceAuthorizationTest.php | 15 -------- .../Repository/ContentTypeServiceTest.php | 33 ----------------- .../FieldType/BaseIntegrationTestCase.php | 6 ++-- .../FieldType/CheckboxIntegrationTest.php | 4 +-- .../FieldType/KeywordIntegrationTest.php | 4 +-- .../FieldType/RelationIntegrationTest.php | 4 +-- .../Core/Repository/FieldTypeServiceTest.php | 4 --- .../BaseRepositoryFilteringTestCase.php | 6 ++-- .../LanguageServiceAuthorizationTest.php | 6 ---- ...geServiceMaximumSupportedLanguagesTest.php | 4 +-- .../Core/Repository/LanguageServiceTest.php | 13 ------- .../LocationServiceAuthorizationTest.php | 13 ------- .../Core/Repository/LocationServiceTest.php | 18 ---------- .../Repository/NonRedundantFieldSetTest.php | 4 --- .../ObjectStateServiceAuthorizationTest.php | 9 ----- .../Repository/ObjectStateServiceTest.php | 21 ----------- .../Repository/PermissionResolverTest.php | 6 ---- .../Core/Repository/RepositoryTest.php | 2 -- .../RoleServiceAuthorizationTest.php | 14 -------- .../Core/Repository/RoleServiceTest.php | 29 --------------- .../SearchServiceAuthorizationTest.php | 3 -- .../Repository/SearchServiceLocationTest.php | 2 -- .../Core/Repository/SearchServiceTest.php | 4 --- .../SectionServiceAuthorizationTest.php | 8 ----- .../Core/Repository/SectionServiceTest.php | 13 ------- .../Core/Repository/SettingServiceTest.php | 5 --- .../TrashServiceAuthorizationTest.php | 6 ---- ...stomUrlAliasForMultilingualContentTest.php | 6 ++-- .../URLAliasServiceAuthorizationTest.php | 6 ++-- .../Core/Repository/URLAliasServiceTest.php | 8 ----- .../URLServiceAuthorizationTest.php | 6 ++-- .../Core/Repository/URLServiceTest.php | 6 ---- .../URLWildcardServiceAuthorizationTest.php | 3 -- .../Repository/URLWildcardServiceTest.php | 7 ---- .../Repository/UserPreferenceServiceTest.php | 5 --- .../UserServiceAuthorizationTest.php | 16 --------- .../Core/Repository/UserServiceTest.php | 28 --------------- .../Limitation/LanguageLimitationTest.php | 7 ++-- tests/lib/FieldType/AuthorTest.php | 4 +-- tests/lib/FieldType/FieldTypeMockTest.php | 4 +-- tests/lib/FieldType/FileSizeValidatorTest.php | 4 +-- tests/lib/FieldType/ImageAssetTest.php | 4 +-- .../Url/Gateway/DoctrineStorageTest.php | 6 ---- tests/lib/FieldType/UserTest.php | 5 ++- .../MVC/Symfony/Controller/ControllerTest.php | 4 +-- .../View/ParameterProviderRegistryTest.php | 4 +-- .../Matcher/ContentBased/DepthTest.php | 9 +++-- .../Matcher/ContentBased/Id/ContentTest.php | 7 ++-- .../ContentBased/Id/ContentTypeGroupTest.php | 7 ++-- .../ContentBased/Id/ContentTypeTest.php | 7 ++-- .../Matcher/ContentBased/Id/LocationTest.php | 7 ++-- .../ContentBased/Id/ParentContentTypeTest.php | 9 +++-- .../ContentBased/Id/ParentLocationTest.php | 9 +++-- .../Matcher/ContentBased/Id/RemoteTest.php | 7 ++-- .../Matcher/ContentBased/Id/SectionTest.php | 6 ++-- .../Identifier/ContentTypeTest.php | 6 ++-- .../Identifier/ParentContentTypeTest.php | 8 ++--- .../ContentBased/Identifier/SectionTest.php | 8 ++--- .../ContentBased/MultipleValuedTest.php | 8 ++--- .../Matcher/ContentBased/UrlAliasTest.php | 10 +++--- .../Legacy/Content/ContentHandlerTest.php | 2 -- .../Legacy/Content/LocationHandlerTest.php | 2 -- .../Section/Gateway/DoctrineDatabaseTest.php | 4 +-- .../ContentUpdater/Action/AddFieldTest.php | 4 +-- .../Content/UrlAlias/UrlAliasHandlerTest.php | 2 -- ...seCriterionVisitorQueryBuilderTestCase.php | 13 +++---- .../Query/LimitedCountQueryBuilderTest.php | 2 -- tests/lib/Persistence/Legacy/HandlerTest.php | 4 +-- .../Gateway/DoctrineDatabaseTest.php | 4 +-- .../Legacy/Setting/SettingHandlerTest.php | 4 +-- .../Role/Gateway/DoctrineDatabaseTest.php | 2 -- .../Repository/Mapper/ContentMapperTest.php | 4 +-- .../Repository/Service/Mock/BookmarkTest.php | 7 ++-- .../Repository/Service/Mock/ContentTest.php | 22 ++---------- .../Service/Mock/RepositoryTest.php | 6 ++-- .../lib/Repository/Service/Mock/RoleTest.php | 4 +-- .../Repository/Service/Mock/SearchTest.php | 8 ++--- .../Repository/Service/Mock/UrlAliasTest.php | 6 ++-- .../Service/Mock/UrlWildcardTest.php | 7 ++-- .../Service/Mock/UserPreferenceTest.php | 7 ++-- .../Values/Content/LocationTest.php | 3 -- .../Repository/Values/Content/SectionTest.php | 7 ++-- .../Values/Content/TrashItemTest.php | 2 -- .../ObjectState/ObjectStateGroupTest.php | 4 --- .../Values/ObjectState/ObjectStateTest.php | 9 ++--- .../lib/Repository/Values/User/PolicyTest.php | 8 ++--- tests/lib/Repository/Values/User/RoleTest.php | 4 --- 93 files changed, 128 insertions(+), 595 deletions(-) diff --git a/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php b/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php index 51a4d7efab..f71876a474 100644 --- a/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php +++ b/tests/bundle/RepositoryInstaller/DependencyInjection/Compiler/InstallerTagPassTest.php @@ -12,13 +12,11 @@ use Ibexa\Bundle\RepositoryInstaller\DependencyInjection\Compiler\InstallerTagPass; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; #[CoversClass(InstallerTagPass::class)] -#[CoversMethod(InstallerTagPass::class, 'process')] class InstallerTagPassTest extends AbstractCompilerPassTestCase { public function testProcessInjectsInstallersIntoCommand(): void diff --git a/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php b/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php index cd45cbe586..2e71110e8f 100644 --- a/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php +++ b/tests/bundle/RepositoryInstaller/DependencyInjection/IbexaInstallerExtensionTest.php @@ -15,10 +15,8 @@ use Ibexa\Bundle\RepositoryInstaller\Installer\DbBasedInstaller; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; #[CoversClass(IbexaRepositoryInstallerExtension::class)] -#[CoversMethod(IbexaRepositoryInstallerExtension::class, 'load')] class IbexaInstallerExtensionTest extends AbstractExtensionTestCase { public function testLoadLoadsTaggedCoreInstaller(): void diff --git a/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php b/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php index de43891731..f0317d8944 100644 --- a/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php +++ b/tests/integration/Core/Persistence/Filter/Doctrine/FilteringQueryBuilderTest.php @@ -14,10 +14,10 @@ use Doctrine\DBAL\SQL\Builder\DefaultSelectSQLBuilder; use Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder; use Ibexa\Core\Base\Exceptions\DatabaseException; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -#[CoversMethod(FilteringQueryBuilder::class, 'joinOnce')] +#[CoversClass(FilteringQueryBuilder::class)] class FilteringQueryBuilderTest extends TestCase { /** @var \Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder */ diff --git a/tests/integration/Core/Repository/BookmarkServiceTest.php b/tests/integration/Core/Repository/BookmarkServiceTest.php index 35442e2cf3..15ebc005d8 100644 --- a/tests/integration/Core/Repository/BookmarkServiceTest.php +++ b/tests/integration/Core/Repository/BookmarkServiceTest.php @@ -19,17 +19,12 @@ use Ibexa\Core\Persistence\Legacy\Bookmark\Gateway\DoctrineDatabase; use Ibexa\Core\Repository\BookmarkService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; /** * Test case for the BookmarkService. */ #[CoversClass(BookmarkService::class)] -#[CoversMethod(BookmarkService::class, 'isBookmarked')] -#[CoversMethod(BookmarkService::class, 'createBookmark')] -#[CoversMethod(BookmarkService::class, 'deleteBookmark')] -#[CoversMethod(BookmarkService::class, 'loadBookmarks')] class BookmarkServiceTest extends BaseTestCase { public const LOCATION_ID_BOOKMARKED = 5; diff --git a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php index eff951a193..0cf94ffdfb 100644 --- a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php @@ -18,7 +18,6 @@ use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Repository as CoveredRepository; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -27,31 +26,7 @@ * Test case for operations in the ContentServiceAuthorization using in memory storage. */ #[CoversClass(ContentService::class)] -#[CoversMethod(ContentService::class, 'createContent')] -#[CoversMethod(ContentService::class, 'loadContentInfo')] -#[CoversMethod(CoveredRepository::class, 'sudo')] -#[CoversMethod(ContentService::class, 'loadContentInfoList')] -#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] -#[CoversMethod(ContentService::class, 'loadVersionInfo')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] -#[CoversMethod(ContentService::class, 'loadContent')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId')] -#[CoversMethod(ContentService::class, 'updateContentMetadata')] -#[CoversMethod(ContentService::class, 'deleteContent')] -#[CoversMethod(ContentService::class, 'createContentDraft')] -#[CoversMethod(ContentService::class, 'countContentDrafts')] -#[CoversMethod(ContentService::class, 'loadContentDraftList')] -#[CoversMethod(ContentService::class, 'updateContent')] -#[CoversMethod(ContentService::class, 'publishVersion')] -#[CoversMethod(ContentService::class, 'deleteVersion')] -#[CoversMethod(ContentService::class, 'loadVersions')] -#[CoversMethod(ContentService::class, 'copyContent')] -#[CoversMethod(ContentService::class, 'loadRelationList')] -#[CoversMethod(ContentService::class, 'loadReverseRelations')] -#[CoversMethod(ContentService::class, 'addRelation')] -#[CoversMethod(ContentService::class, 'deleteRelation')] +#[CoversClass(CoveredRepository::class)] #[Group('integration')] #[Group('authorization')] class ContentServiceAuthorizationTest extends BaseContentServiceTestCase diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index 37596d1849..67dcf8a63d 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -37,7 +37,7 @@ use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use InvalidArgumentException; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -51,38 +51,7 @@ * * @see \Ibexa\Contracts\Core\Repository\ContentService */ -#[CoversMethod(ContentService::class, 'newContentCreateStruct')] -#[CoversMethod(ContentService::class, 'createContent')] -#[CoversMethod(ContentService::class, 'loadContentInfo')] -#[CoversMethod(ContentService::class, 'loadContentInfoList')] -#[CoversMethod(ContentService::class, 'loadContentInfoByRemoteId')] -#[CoversMethod(ContentService::class, 'loadVersionInfo')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] -#[CoversMethod(ContentService::class, 'loadContent')] -#[CoversMethod(ContentService::class, 'loadContentByRemoteId')] -#[CoversMethod(ContentService::class, 'publishVersion')] -#[CoversMethod(ContentService::class, 'createContentDraft')] -#[CoversMethod(ContentService::class, 'newContentUpdateStruct')] -#[CoversMethod(ContentService::class, 'updateContent')] -#[CoversMethod(ContentService::class, 'newContentMetadataUpdateStruct')] -#[CoversMethod(ContentService::class, 'updateContentMetadata')] -#[CoversMethod(ContentService::class, 'deleteContent')] -#[CoversMethod(ContentService::class, 'loadContentDraftList')] -#[CoversMethod(ContentService::class, 'deleteVersion')] -#[CoversMethod(ContentService::class, 'loadVersions')] -#[CoversMethod(ContentService::class, 'copyContent')] -#[CoversMethod(ContentService::class, 'addRelation')] -#[CoversMethod(ContentService::class, 'loadRelationList')] -#[CoversMethod(ContentService::class, 'countReverseRelations')] -#[CoversMethod(ContentService::class, 'loadReverseRelations')] -#[CoversMethod(ContentService::class, 'loadReverseRelationList')] -#[CoversMethod(ContentService::class, 'deleteRelation')] -#[CoversMethod(ContentService::class, 'deleteTranslation')] -#[CoversMethod(ContentService::class, 'deleteTranslationFromDraft')] -#[CoversMethod(ContentService::class, 'hideContent')] -#[CoversMethod(ContentService::class, 'revealContent')] +#[CoversClass(ContentService::class)] #[Group('content')] class ContentServiceTest extends BaseContentServiceTestCase { diff --git a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php index add492664a..a761e1d57a 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php @@ -10,7 +10,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\ContentTypeService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -18,20 +17,6 @@ * Test case for operations in the ContentTypeServiceAuthorization using in memory storage. */ #[CoversClass(ContentTypeService::class)] -#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'createContentType')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'addFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'deleteContentType')] -#[CoversMethod(ContentTypeService::class, 'copyContentType')] -#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup')] #[Group('integration')] #[Group('authorization')] class ContentTypeServiceAuthorizationTest extends BaseContentTypeServiceTestCase diff --git a/tests/integration/Core/Repository/ContentTypeServiceTest.php b/tests/integration/Core/Repository/ContentTypeServiceTest.php index cd463702d9..a1c3794675 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -32,7 +32,6 @@ use Ibexa\Core\FieldType\TextLine\Value as TextLineValue; use Ibexa\Core\Repository\ContentTypeService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -41,39 +40,7 @@ * Test case for operations in the ContentTypeService using in memory storage. */ #[CoversClass(ContentTypeService::class)] -#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupCreateStruct')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroupByIdentifier')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeGroups')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeGroupUpdateStruct')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'deleteContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeCreateStruct')] -#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionCreateStruct')] -#[CoversMethod(ContentTypeService::class, 'createContentType')] -#[CoversMethod(ContentTypeService::class, 'newContentTypeUpdateStruct')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'updateContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'addFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'removeFieldDefinition')] -#[CoversMethod(ContentTypeService::class, 'newFieldDefinitionUpdateStruct')] -#[CoversMethod(ContentTypeService::class, 'updateFieldDefinition')] #[CoversClass(FieldDefinitionUpdateStruct::class)] -#[CoversMethod(ContentTypeService::class, 'publishContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'loadContentType')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeByIdentifier')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeByRemoteId')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypeList')] -#[CoversMethod(ContentTypeService::class, 'loadContentTypes')] -#[CoversMethod(ContentTypeService::class, 'createContentTypeDraft')] -#[CoversMethod(ContentTypeService::class, 'deleteContentType')] -#[CoversMethod(ContentTypeService::class, 'copyContentType')] -#[CoversMethod(ContentTypeService::class, 'assignContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'unassignContentTypeGroup')] -#[CoversMethod(ContentTypeService::class, 'isContentTypeUsed')] -#[CoversMethod(ContentTypeService::class, 'removeContentTypeTranslation')] -#[CoversMethod(ContentTypeService::class, 'deleteUserDrafts')] #[Group('integration')] #[Group('content-type')] class ContentTypeServiceTest extends BaseContentTypeServiceTestCase diff --git a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php index e2a2cc8740..84cf65d1b7 100644 --- a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php @@ -16,7 +16,7 @@ use Ibexa\Core\FieldType\FieldType; use Ibexa\Core\Repository\ContentService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -46,8 +46,8 @@ * * @todo Finalize dependencies to other tests (including groups!) */ -#[CoversMethod(FieldType::class, 'isEmptyValue')] -#[CoversMethod(ContentService::class, 'deleteTranslation')] +#[CoversClass(FieldType::class)] +#[CoversClass(ContentService::class)] #[Group('integration')] #[Group('field-type')] abstract class BaseIntegrationTestCase extends BaseTestCase diff --git a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php index 1ad38e8757..45eadb5d25 100644 --- a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php @@ -17,14 +17,14 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Checkbox\Value as CheckboxValue; use Ibexa\Core\Repository\SearchService; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. */ -#[CoversMethod(SearchService::class, 'findContent')] +#[CoversClass(SearchService::class)] #[Group('integration')] #[Group('field-type')] class CheckboxIntegrationTest extends SearchBaseIntegrationTestCase diff --git a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php index 1d11b6c782..504ccaccca 100644 --- a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php @@ -14,14 +14,14 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Keyword\Value as KeywordValue; use Ibexa\Core\Repository\SearchService; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. */ -#[CoversMethod(SearchService::class, 'findContent')] +#[CoversClass(SearchService::class)] #[Group('integration')] #[Group('field-type')] class KeywordIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index 562140de9b..43327fb517 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -15,13 +15,13 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Relation\Value as RelationValue; use Ibexa\Core\Repository\Values\Content\Relation; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. */ -#[CoversMethod(BaseIntegrationTestCase::class, 'getValidatorSchema')] +#[CoversClass(BaseIntegrationTestCase::class)] #[Group('integration')] #[Group('field-type')] class RelationIntegrationTest extends SearchBaseIntegrationTestCase diff --git a/tests/integration/Core/Repository/FieldTypeServiceTest.php b/tests/integration/Core/Repository/FieldTypeServiceTest.php index 92abaa6777..a9607bd09a 100644 --- a/tests/integration/Core/Repository/FieldTypeServiceTest.php +++ b/tests/integration/Core/Repository/FieldTypeServiceTest.php @@ -10,16 +10,12 @@ use Ibexa\Contracts\Core\Repository\FieldType; use Ibexa\Core\Repository\FieldTypeService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the FieldTypeService using in memory storage. */ #[CoversClass(FieldTypeService::class)] -#[CoversMethod(FieldTypeService::class, 'getFieldTypes')] -#[CoversMethod(FieldTypeService::class, 'getFieldType')] -#[CoversMethod(FieldTypeService::class, 'hasFieldType')] #[Group('field-type')] class FieldTypeServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php index c8ecf66e3f..05c5ec008d 100644 --- a/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php +++ b/tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php @@ -23,14 +23,14 @@ use Ibexa\Tests\Core\Repository\Filtering\TestContentProvider; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use IteratorAggregate; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; /** * @internal for internal use by Ibexa Kernel test cases */ -#[CoversMethod(ContentService::class, 'find')] -#[CoversMethod(LocationService::class, 'find')] +#[CoversClass(ContentService::class)] +#[CoversClass(LocationService::class)] abstract class BaseRepositoryFilteringTestCase extends BaseTestCase { private const PAGINATION_EXPECTED_TOTAL_COUNT = 5; diff --git a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php index 8eb884c4af..23e2c255e1 100644 --- a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php @@ -10,18 +10,12 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\LanguageService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the LanguageService using in memory storage. */ #[CoversClass(LanguageService::class)] -#[CoversMethod(LanguageService::class, 'createLanguage')] -#[CoversMethod(LanguageService::class, 'updateLanguageName')] -#[CoversMethod(LanguageService::class, 'enableLanguage')] -#[CoversMethod(LanguageService::class, 'disableLanguage')] -#[CoversMethod(LanguageService::class, 'deleteLanguage')] #[Group('integration')] #[Group('authorization')] class LanguageServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php index fca9650413..ffab7f9bbf 100644 --- a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php +++ b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php @@ -9,7 +9,7 @@ use Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy as LegacySetupFactory; use Ibexa\Core\Repository\LanguageService; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -18,7 +18,7 @@ * * @see \Ibexa\Contracts\Core\Repository\LanguageService */ -#[CoversMethod(LanguageService::class, 'createLanguage')] +#[CoversClass(LanguageService::class)] #[Group('integration')] #[Group('language')] class LanguageServiceMaximumSupportedLanguagesTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LanguageServiceTest.php b/tests/integration/Core/Repository/LanguageServiceTest.php index 4d94d137fd..06d0abca79 100644 --- a/tests/integration/Core/Repository/LanguageServiceTest.php +++ b/tests/integration/Core/Repository/LanguageServiceTest.php @@ -14,7 +14,6 @@ use Ibexa\Contracts\Core\Repository\Values\Content\LanguageCreateStruct; use Ibexa\Core\Repository\LanguageService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -22,18 +21,6 @@ * Test case for operations in the LanguageService using in memory storage. */ #[CoversClass(LanguageService::class)] -#[CoversMethod(LanguageService::class, 'newLanguageCreateStruct')] -#[CoversMethod(LanguageService::class, 'createLanguage')] -#[CoversMethod(LanguageService::class, 'loadLanguageById')] -#[CoversMethod(LanguageService::class, 'loadLanguageListById')] -#[CoversMethod(LanguageService::class, 'updateLanguageName')] -#[CoversMethod(LanguageService::class, 'enableLanguage')] -#[CoversMethod(LanguageService::class, 'disableLanguage')] -#[CoversMethod(LanguageService::class, 'loadLanguage')] -#[CoversMethod(LanguageService::class, 'loadLanguageListByCode')] -#[CoversMethod(LanguageService::class, 'loadLanguages')] -#[CoversMethod(LanguageService::class, 'deleteLanguage')] -#[CoversMethod(LanguageService::class, 'getDefaultLanguageCode')] #[Group('integration')] #[Group('language')] class LanguageServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php index 6f5571a073..82380e08ec 100644 --- a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php @@ -14,7 +14,6 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation; use Ibexa\Core\Repository\LocationService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -22,18 +21,6 @@ * Test case for operations in the LocationService using in memory storage. */ #[CoversClass(LocationService::class)] -#[CoversMethod(LocationService::class, 'createLocation')] -#[CoversMethod(LocationService::class, 'loadLocation')] -#[CoversMethod(LocationService::class, 'loadLocationList')] -#[CoversMethod(LocationService::class, 'loadLocationByRemoteId')] -#[CoversMethod(LocationService::class, 'loadLocations')] -#[CoversMethod(LocationService::class, 'updateLocation')] -#[CoversMethod(LocationService::class, 'swapLocation')] -#[CoversMethod(LocationService::class, 'hideLocation')] -#[CoversMethod(LocationService::class, 'unhideLocation')] -#[CoversMethod(LocationService::class, 'deleteLocation')] -#[CoversMethod(LocationService::class, 'copySubtree')] -#[CoversMethod(LocationService::class, 'moveSubtree')] #[Group('integration')] #[Group('authorization')] class LocationServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/LocationServiceTest.php b/tests/integration/Core/Repository/LocationServiceTest.php index 9273aff0a8..3423afc92a 100644 --- a/tests/integration/Core/Repository/LocationServiceTest.php +++ b/tests/integration/Core/Repository/LocationServiceTest.php @@ -29,7 +29,6 @@ use Ibexa\Core\Repository\LocationService; use Ibexa\Core\Repository\Values\Content\ContentUpdateStruct; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -39,23 +38,6 @@ * Test case for operations in the LocationService using in memory storage. */ #[CoversClass(LocationService::class)] -#[CoversMethod(LocationService::class, 'newLocationCreateStruct')] -#[CoversMethod(LocationService::class, 'createLocation')] -#[CoversMethod(LocationService::class, 'loadLocation')] -#[CoversMethod(LocationService::class, 'loadLocationList')] -#[CoversMethod(LocationService::class, 'loadLocationByRemoteId')] -#[CoversMethod(LocationService::class, 'loadLocations')] -#[CoversMethod(LocationService::class, 'loadLocationChildren')] -#[CoversMethod(LocationService::class, 'loadParentLocationsForDraftContent')] -#[CoversMethod(LocationService::class, 'getLocationChildCount')] -#[CoversMethod(LocationService::class, 'newLocationUpdateStruct')] -#[CoversMethod(LocationService::class, 'updateLocation')] -#[CoversMethod(LocationService::class, 'swapLocation')] -#[CoversMethod(LocationService::class, 'hideLocation')] -#[CoversMethod(LocationService::class, 'unhideLocation')] -#[CoversMethod(LocationService::class, 'deleteLocation')] -#[CoversMethod(LocationService::class, 'copySubtree')] -#[CoversMethod(LocationService::class, 'moveSubtree')] #[Group('location')] class LocationServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php index a51eb87311..a5490c9db3 100644 --- a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php +++ b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php @@ -11,7 +11,6 @@ use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\ContentService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -23,9 +22,6 @@ * These tests depends on TextLine field type being functional. */ #[CoversClass(ContentService::class)] -#[CoversMethod(ContentService::class, 'createContent')] -#[CoversMethod(ContentService::class, 'createContentDraft')] -#[CoversMethod(ContentService::class, 'updateContent')] #[Group('content')] class NonRedundantFieldSetTest extends BaseNonRedundantFieldSetTestCase { diff --git a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php index 98f4458264..370afd8940 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php @@ -10,7 +10,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\ObjectStateService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -18,14 +17,6 @@ * Test case for operations in the ObjectStateService using in memory storage. */ #[CoversClass(ObjectStateService::class)] -#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'createObjectState')] -#[CoversMethod(ObjectStateService::class, 'updateObjectState')] -#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectState')] -#[CoversMethod(ObjectStateService::class, 'setContentState')] #[Group('integration')] #[Group('authorization')] class ObjectStateServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/ObjectStateServiceTest.php b/tests/integration/Core/Repository/ObjectStateServiceTest.php index 38be100be2..cab6ff3a8c 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceTest.php @@ -18,7 +18,6 @@ use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateUpdateStruct; use Ibexa\Core\Repository\ObjectStateService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -28,26 +27,6 @@ * Test case for operations in the ObjectStateService using in memory storage. */ #[CoversClass(ObjectStateService::class)] -#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupCreateStruct')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateGroupUpdateStruct')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateCreateStruct')] -#[CoversMethod(ObjectStateService::class, 'newObjectStateUpdateStruct')] -#[CoversMethod(ObjectStateService::class, 'createObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroupByIdentifier')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateGroups')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStates')] -#[CoversMethod(ObjectStateService::class, 'updateObjectStateGroup')] -#[CoversMethod(ObjectStateService::class, 'createObjectState')] -#[CoversMethod(ObjectStateService::class, 'loadObjectState')] -#[CoversMethod(ObjectStateService::class, 'loadObjectStateByIdentifier')] -#[CoversMethod(ObjectStateService::class, 'updateObjectState')] -#[CoversMethod(ObjectStateService::class, 'setPriorityOfObjectState')] -#[CoversMethod(ObjectStateService::class, 'getContentState')] -#[CoversMethod(ObjectStateService::class, 'setContentState')] -#[CoversMethod(ObjectStateService::class, 'getContentCount')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectState')] -#[CoversMethod(ObjectStateService::class, 'deleteObjectStateGroup')] #[Group('object-state')] class ObjectStateServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/PermissionResolverTest.php b/tests/integration/Core/Repository/PermissionResolverTest.php index eec352f9bd..d6cb630827 100644 --- a/tests/integration/Core/Repository/PermissionResolverTest.php +++ b/tests/integration/Core/Repository/PermissionResolverTest.php @@ -22,7 +22,6 @@ use Ibexa\Core\Repository\Permission\PermissionResolver; use Ibexa\Core\Repository\Values\User\UserReference; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -32,11 +31,6 @@ * Test case for operations in the PermissionResolver. */ #[CoversClass(PermissionResolver::class)] -#[CoversMethod(PermissionResolver::class, 'getCurrentUserReference')] -#[CoversMethod(PermissionResolver::class, 'setCurrentUserReference')] -#[CoversMethod(PermissionResolver::class, 'hasAccess')] -#[CoversMethod(PermissionResolver::class, 'canUser')] -#[CoversMethod(PermissionResolver::class, 'lookupLimitations')] #[Group('integration')] #[Group('permission')] class PermissionResolverTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/RepositoryTest.php b/tests/integration/Core/Repository/RepositoryTest.php index 9472530ad5..0085183e86 100644 --- a/tests/integration/Core/Repository/RepositoryTest.php +++ b/tests/integration/Core/Repository/RepositoryTest.php @@ -25,14 +25,12 @@ use Ibexa\Contracts\Core\Repository\UserService; use Ibexa\Core\Repository\Repository; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the Repository using in memory storage. */ #[CoversClass(Repository::class)] -#[CoversMethod(Repository::class, 'getContentLanguageService')] #[Group('integration')] class RepositoryTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php index 924c39bf26..e09518b68d 100644 --- a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php @@ -13,7 +13,6 @@ use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; use Ibexa\Core\Repository\RoleService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -21,19 +20,6 @@ * Test case for operations in the RoleService using in memory storage. */ #[CoversClass(RoleService::class)] -#[CoversMethod(RoleService::class, 'createRole')] -#[CoversMethod(RoleService::class, 'loadRole')] -#[CoversMethod(RoleService::class, 'loadRoleByIdentifier')] -#[CoversMethod(RoleService::class, 'loadRoles')] -#[CoversMethod(RoleService::class, 'deleteRole')] -#[CoversMethod(RoleService::class, 'updatePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'removePolicyByRoleDraft')] -#[CoversMethod(RoleService::class, 'assignRoleToUserGroup')] -#[CoversMethod(RoleService::class, 'removeRoleAssignment')] -#[CoversMethod(RoleService::class, 'assignRoleToUser')] -#[CoversMethod(RoleService::class, 'getRoleAssignments')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUser')] -#[CoversMethod(RoleService::class, 'getRoleAssignmentsForUserGroup')] #[Group('integration')] #[Group('authorization')] class RoleServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/RoleServiceTest.php b/tests/integration/Core/Repository/RoleServiceTest.php index 9bad87f8ba..81f7e9fa0f 100644 --- a/tests/integration/Core/Repository/RoleServiceTest.php +++ b/tests/integration/Core/Repository/RoleServiceTest.php @@ -32,7 +32,6 @@ use Ibexa\Contracts\Core\Repository\Values\User\UserRoleAssignment; use Ibexa\Core\Repository\RoleService as CoveredRoleService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -55,34 +54,6 @@ *
          */ #[CoversClass(CoveredRoleService::class)] -#[CoversMethod(CoveredRoleService::class, 'newRoleCreateStruct')] -#[CoversMethod(CoveredRoleService::class, 'newRoleCopyStruct')] -#[CoversMethod(CoveredRoleService::class, 'createRole')] -#[CoversMethod(CoveredRoleService::class, 'createRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'copyRole')] -#[CoversMethod(CoveredRoleService::class, 'loadRole')] -#[CoversMethod(CoveredRoleService::class, 'loadRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'loadRoleByIdentifier')] -#[CoversMethod(CoveredRoleService::class, 'loadRoles')] -#[CoversMethod(CoveredRoleService::class, 'newRoleUpdateStruct')] -#[CoversMethod(CoveredRoleService::class, 'updateRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'deleteRole')] -#[CoversMethod(CoveredRoleService::class, 'deleteRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'newPolicyCreateStruct')] -#[CoversMethod(CoveredRoleService::class, 'addPolicyByRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'newPolicyUpdateStruct')] -#[CoversMethod(CoveredRoleService::class, 'updatePolicyByRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'removePolicyByRoleDraft')] -#[CoversMethod(CoveredRoleService::class, 'loadRoleAssignment')] -#[CoversMethod(CoveredRoleService::class, 'getRoleAssignments')] -#[CoversMethod(CoveredRoleService::class, 'loadRoleAssignments')] -#[CoversMethod(CoveredRoleService::class, 'countRoleAssignments')] -#[CoversMethod(CoveredRoleService::class, 'assignRoleToUser')] -#[CoversMethod(CoveredRoleService::class, 'removeRoleAssignment')] -#[CoversMethod(CoveredRoleService::class, 'getRoleAssignmentsForUser')] -#[CoversMethod(CoveredRoleService::class, 'assignRoleToUserGroup')] -#[CoversMethod(CoveredRoleService::class, 'getRoleAssignmentsForUserGroup')] -#[CoversMethod(CoveredRoleService::class, 'publishRoleDraft')] #[Group('role')] class RoleServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php index 9c5f0fdf49..db7b6fee8b 100644 --- a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php @@ -13,7 +13,6 @@ use Ibexa\Core\Repository\SearchService; use Ibexa\Core\Repository\Values\Content\Content; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -21,8 +20,6 @@ * Test case for operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findContent')] -#[CoversMethod(SearchService::class, 'findSingle')] #[Group('integration')] #[Group('authorization')] class SearchServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SearchServiceLocationTest.php b/tests/integration/Core/Repository/SearchServiceLocationTest.php index 722902f76d..809260dbd3 100644 --- a/tests/integration/Core/Repository/SearchServiceLocationTest.php +++ b/tests/integration/Core/Repository/SearchServiceLocationTest.php @@ -20,7 +20,6 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -28,7 +27,6 @@ * Test case for Location operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findLocations')] #[Group('integration')] #[Group('search')] class SearchServiceLocationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SearchServiceTest.php b/tests/integration/Core/Repository/SearchServiceTest.php index 132ac232ce..1b76fa2384 100644 --- a/tests/integration/Core/Repository/SearchServiceTest.php +++ b/tests/integration/Core/Repository/SearchServiceTest.php @@ -24,7 +24,6 @@ use Ibexa\Core\Repository\SearchService; use Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory as LegacySolrSetupFactory; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -35,9 +34,6 @@ * Test case for operations in the SearchService. */ #[CoversClass(SearchService::class)] -#[CoversMethod(SearchService::class, 'findContent')] -#[CoversMethod(SearchService::class, 'findContentInfo')] -#[CoversMethod(SearchService::class, 'findLocations')] #[Group('integration')] #[Group('search')] class SearchServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php index ebf4d0fe3c..cc16c7ed45 100644 --- a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php @@ -11,20 +11,12 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation; use Ibexa\Core\Repository\SectionService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Group; /** * Test case for operations in the SectionService using in memory storage. */ #[CoversClass(SectionService::class)] -#[CoversMethod(SectionService::class, 'createSection')] -#[CoversMethod(SectionService::class, 'loadSection')] -#[CoversMethod(SectionService::class, 'updateSection')] -#[CoversMethod(SectionService::class, 'loadSections')] -#[CoversMethod(SectionService::class, 'loadSectionByIdentifier')] -#[CoversMethod(SectionService::class, 'assignSection')] -#[CoversMethod(SectionService::class, 'deleteSection')] #[Group('integration')] #[Group('authorization')] class SectionServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SectionServiceTest.php b/tests/integration/Core/Repository/SectionServiceTest.php index 6248b3ce4b..a1fb30cf6e 100644 --- a/tests/integration/Core/Repository/SectionServiceTest.php +++ b/tests/integration/Core/Repository/SectionServiceTest.php @@ -17,7 +17,6 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation; use Ibexa\Core\Repository\SectionService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -25,18 +24,6 @@ * Test case for operations in the SectionService using in memory storage. */ #[CoversClass(SectionService::class)] -#[CoversMethod(SectionService::class, 'newSectionCreateStruct')] -#[CoversMethod(SectionService::class, 'createSection')] -#[CoversMethod(SectionService::class, 'loadSection')] -#[CoversMethod(SectionService::class, 'newSectionUpdateStruct')] -#[CoversMethod(SectionService::class, 'updateSection')] -#[CoversMethod(SectionService::class, 'loadSections')] -#[CoversMethod(SectionService::class, 'loadSectionByIdentifier')] -#[CoversMethod(SectionService::class, 'countAssignedContents')] -#[CoversMethod(SectionService::class, 'isSectionUsed')] -#[CoversMethod(SectionService::class, 'assignSection')] -#[CoversMethod(SectionService::class, 'assignSectionToSubtree')] -#[CoversMethod(SectionService::class, 'deleteSection')] #[Group('integration')] #[Group('section')] class SectionServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/SettingServiceTest.php b/tests/integration/Core/Repository/SettingServiceTest.php index d24d47ce1a..f00c7ac482 100644 --- a/tests/integration/Core/Repository/SettingServiceTest.php +++ b/tests/integration/Core/Repository/SettingServiceTest.php @@ -14,7 +14,6 @@ use Ibexa\Contracts\Core\Repository\Values\Setting\Setting; use Ibexa\Core\Repository\SettingService as CoveredSettingService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; @@ -22,10 +21,6 @@ * Test case for operations in the SettingService using in memory storage. */ #[CoversClass(CoveredSettingService::class)] -#[CoversMethod(CoveredSettingService::class, 'createSetting')] -#[CoversMethod(CoveredSettingService::class, 'loadSetting')] -#[CoversMethod(CoveredSettingService::class, 'updateSetting')] -#[CoversMethod(CoveredSettingService::class, 'deleteSetting')] #[Group('integration')] #[Group('setting')] final class SettingServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php index e98e26fc26..55b7a22bb8 100644 --- a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php @@ -13,7 +13,6 @@ use Ibexa\Contracts\Core\Repository\Values\User\Limitation\ObjectStateLimitation; use Ibexa\Core\Repository\TrashService as CoveredTrashService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -22,11 +21,6 @@ * Test case for operations in the TrashService using in memory storage. */ #[CoversClass(CoveredTrashService::class)] -#[CoversMethod(CoveredTrashService::class, 'loadTrashItem')] -#[CoversMethod(CoveredTrashService::class, 'trash')] -#[CoversMethod(CoveredTrashService::class, 'recover')] -#[CoversMethod(CoveredTrashService::class, 'emptyTrash')] -#[CoversMethod(CoveredTrashService::class, 'deleteTrashItem')] #[Group('integration')] #[Group('authorization')] class TrashServiceAuthorizationTest extends BaseTrashServiceTestCase diff --git a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php index 536f98e748..ed99165d8b 100644 --- a/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php +++ b/tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php @@ -12,10 +12,10 @@ use Ibexa\Core\Repository\ContentService; use Ibexa\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversMethod(ContentService::class, 'publishVersion')] -#[CoversMethod(URLAliasService::class, 'createUrlAlias')] +#[CoversClass(ContentService::class)] +#[CoversClass(URLAliasService::class)] final class CustomUrlAliasForMultilingualContentTest extends BaseTestCase { /** diff --git a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php index 30897527f0..aef8922233 100644 --- a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php @@ -9,12 +9,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\URLAliasService; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DependsExternal; -#[CoversMethod(URLAliasService::class, 'createUrlAlias')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] -#[CoversMethod(URLAliasService::class, 'removeAliases')] +#[CoversClass(URLAliasService::class)] class URLAliasServiceAuthorizationTest extends BaseTestCase { /** diff --git a/tests/integration/Core/Repository/URLAliasServiceTest.php b/tests/integration/Core/Repository/URLAliasServiceTest.php index d051fff1b1..76a9b53bd0 100644 --- a/tests/integration/Core/Repository/URLAliasServiceTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceTest.php @@ -20,7 +20,6 @@ use Ibexa\Core\Repository\URLAliasService; use Ibexa\Tests\Integration\Core\Repository\Common\SlugConverter as TestSlugConverter; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; use RuntimeException; @@ -29,13 +28,6 @@ * Test case for operations in the URLAliasService using in memory storage. */ #[CoversClass(URLAliasService::class)] -#[CoversMethod(URLAliasService::class, 'createUrlAlias')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] -#[CoversMethod(URLAliasService::class, 'listLocationAliases')] -#[CoversMethod(URLAliasService::class, 'listGlobalAliases')] -#[CoversMethod(URLAliasService::class, 'removeAliases')] -#[CoversMethod(URLAliasService::class, 'lookUp')] -#[CoversMethod(URLAliasService::class, 'deleteCorruptedUrlAliases')] #[Group('url-alias')] class URLAliasServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php index 7ef86b4ad2..2324735446 100644 --- a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php @@ -11,11 +11,9 @@ use Ibexa\Contracts\Core\Repository\Values\URL\Query\Criterion; use Ibexa\Contracts\Core\Repository\Values\URL\URLQuery; use Ibexa\Core\Repository\URLService; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversMethod(URLService::class, 'findUrls')] -#[CoversMethod(URLService::class, 'updateUrl')] -#[CoversMethod(URLService::class, 'loadById')] +#[CoversClass(URLService::class)] class URLServiceAuthorizationTest extends BaseURLServiceTestCase { /** diff --git a/tests/integration/Core/Repository/URLServiceTest.php b/tests/integration/Core/Repository/URLServiceTest.php index 412042cdf0..3e8d3487d8 100644 --- a/tests/integration/Core/Repository/URLServiceTest.php +++ b/tests/integration/Core/Repository/URLServiceTest.php @@ -19,7 +19,6 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentValue; use Ibexa\Core\Repository\URLService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -28,11 +27,6 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(URLService::class)] -#[CoversMethod(URLService::class, 'findUrls')] -#[CoversMethod(URLService::class, 'updateUrl')] -#[CoversMethod(URLService::class, 'loadById')] -#[CoversMethod(URLService::class, 'loadByUrl')] -#[CoversMethod(URLService::class, 'createUpdateStruct')] #[Group('integration')] #[Group('url')] class URLServiceTest extends BaseURLServiceTestCase diff --git a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php index 14fedc4353..d01cf027d1 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php @@ -10,7 +10,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\URLWildcardService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -18,8 +17,6 @@ * Test case for operations in the URLWildcardService. */ #[CoversClass(URLWildcardService::class)] -#[CoversMethod(URLWildcardService::class, 'create')] -#[CoversMethod(URLWildcardService::class, 'remove')] #[Group('integration')] #[Group('authorization')] class URLWildcardServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/URLWildcardServiceTest.php b/tests/integration/Core/Repository/URLWildcardServiceTest.php index 7f20647eca..55dfcd7009 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceTest.php @@ -15,7 +15,6 @@ use Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardUpdateStruct; use Ibexa\Core\Repository\URLWildcardService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; @@ -23,12 +22,6 @@ * Test case for operations in the URLWildcardService. */ #[CoversClass(URLWildcardService::class)] -#[CoversMethod(URLWildcardService::class, 'create')] -#[CoversMethod(URLWildcardService::class, 'load')] -#[CoversMethod(URLWildcardService::class, 'update')] -#[CoversMethod(URLWildcardService::class, 'remove')] -#[CoversMethod(URLWildcardService::class, 'loadAll')] -#[CoversMethod(URLWildcardService::class, 'translate')] #[Group('url-wildcard')] class URLWildcardServiceTest extends BaseTestCase { diff --git a/tests/integration/Core/Repository/UserPreferenceServiceTest.php b/tests/integration/Core/Repository/UserPreferenceServiceTest.php index 1e05eca10e..7f8d831003 100644 --- a/tests/integration/Core/Repository/UserPreferenceServiceTest.php +++ b/tests/integration/Core/Repository/UserPreferenceServiceTest.php @@ -14,17 +14,12 @@ use Ibexa\Contracts\Core\Repository\Values\UserPreference\UserPreferenceSetStruct; use Ibexa\Core\Repository\UserPreferenceService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; /** * Test case for the UserPreferenceService. */ #[CoversClass(UserPreferenceService::class)] -#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreference')] -#[CoversMethod(UserPreferenceService::class, 'setUserPreference')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount')] class UserPreferenceServiceTest extends BaseTestCase { public function testLoadUserPreferences() diff --git a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php index 0eb6741b33..601f75ae0a 100644 --- a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php @@ -10,7 +10,6 @@ use Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException; use Ibexa\Core\Repository\UserService; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\Attributes\Group; @@ -18,21 +17,6 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(UserService::class)] -#[CoversMethod(UserService::class, 'loadUserGroup')] -#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId')] -#[CoversMethod(UserService::class, 'loadSubUserGroups')] -#[CoversMethod(UserService::class, 'createUserGroup')] -#[CoversMethod(UserService::class, 'deleteUserGroup')] -#[CoversMethod(UserService::class, 'moveUserGroup')] -#[CoversMethod(UserService::class, 'updateUserGroup')] -#[CoversMethod(UserService::class, 'createUser')] -#[CoversMethod(UserService::class, 'deleteUser')] -#[CoversMethod(UserService::class, 'updateUser')] -#[CoversMethod(UserService::class, 'updateUserPassword')] -#[CoversMethod(UserService::class, 'assignUserToUserGroup')] -#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] -#[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] -#[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] #[Group('integration')] #[Group('authorization')] class UserServiceAuthorizationTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 8d6712c950..29f9cf2ab9 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -37,7 +37,6 @@ use Ibexa\Core\Repository\Values\Content\VersionInfo; use Ibexa\Core\Repository\Values\User\UserGroup; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -48,33 +47,6 @@ * Test case for operations in the UserService using in memory storage. */ #[CoversClass(UserService::class)] -#[CoversMethod(UserService::class, 'loadUserGroup')] -#[CoversMethod(UserService::class, 'loadUserGroupByRemoteId')] -#[CoversMethod(UserService::class, 'loadSubUserGroups')] -#[CoversMethod(UserService::class, 'newUserGroupCreateStruct')] -#[CoversMethod(UserService::class, 'createUserGroup')] -#[CoversMethod(UserService::class, 'deleteUserGroup')] -#[CoversMethod(UserService::class, 'moveUserGroup')] -#[CoversMethod(UserService::class, 'newUserGroupUpdateStruct')] -#[CoversMethod(UserService::class, 'updateUserGroup')] -#[CoversMethod(UserService::class, 'newUserCreateStruct')] -#[CoversMethod(UserService::class, 'createUser')] -#[CoversMethod(UserService::class, 'loadUser')] -#[CoversMethod(UserService::class, 'checkUserCredentials')] -#[CoversMethod(UserService::class, 'loadUserByLogin')] -#[CoversMethod(UserService::class, 'loadUsersByEmail')] -#[CoversMethod(UserService::class, 'deleteUser')] -#[CoversMethod(UserService::class, 'newUserUpdateStruct')] -#[CoversMethod(UserService::class, 'updateUser')] -#[CoversMethod(UserService::class, 'updateUserPassword')] -#[CoversMethod(UserService::class, 'loadUserGroupsOfUser')] -#[CoversMethod(UserService::class, 'loadUsersOfUserGroup')] -#[CoversMethod(UserService::class, 'assignUserToUserGroup')] -#[CoversMethod(UserService::class, 'unAssignUserFromUserGroup')] -#[CoversMethod(UserService::class, 'loadUserByToken')] -#[CoversMethod(UserService::class, 'updateUserToken')] -#[CoversMethod(UserService::class, 'expireUserToken')] -#[CoversMethod(UserService::class, 'validatePassword')] #[Group('integration')] #[Group('user')] class UserServiceTest extends BaseTestCase diff --git a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php index 359843da4b..8a25e09294 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php @@ -20,7 +20,6 @@ use Ibexa\Core\Repository\Permission\PermissionResolver; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; @@ -28,10 +27,8 @@ * Test cases for ContentService APIs calls made by user with LanguageLimitation on chosen policies. */ #[CoversClass(LanguageLimitation::class)] -#[CoversMethod(PermissionResolver::class, 'canUser')] -#[CoversMethod(CoveredContentService::class, 'createContentDraft')] -#[CoversMethod(CoveredContentService::class, 'updateContent')] -#[CoversMethod(CoveredContentService::class, 'publishVersion')] +#[CoversClass(PermissionResolver::class)] +#[CoversClass(CoveredContentService::class)] #[Group('integration')] #[Group('authorization')] #[Group('language-limited-content-mgm')] diff --git a/tests/lib/FieldType/AuthorTest.php b/tests/lib/FieldType/AuthorTest.php index 649a1d15b1..c1b38ff86c 100644 --- a/tests/lib/FieldType/AuthorTest.php +++ b/tests/lib/FieldType/AuthorTest.php @@ -13,10 +13,10 @@ use Ibexa\Core\FieldType\Author\Type as AuthorType; use Ibexa\Core\FieldType\Author\Value as AuthorValue; use Ibexa\Core\FieldType\Value; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; -#[CoversMethod(AuthorCollection::class, 'removeAuthorsById')] +#[CoversClass(AuthorCollection::class)] #[Group('fieldType')] #[Group('ibexa_author')] class AuthorTest extends FieldTypeTestCase diff --git a/tests/lib/FieldType/FieldTypeMockTest.php b/tests/lib/FieldType/FieldTypeMockTest.php index 725a2ab320..ec462fcbe0 100644 --- a/tests/lib/FieldType/FieldTypeMockTest.php +++ b/tests/lib/FieldType/FieldTypeMockTest.php @@ -9,11 +9,11 @@ use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\FieldType; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -#[CoversMethod(FieldType::class, 'applyDefaultSettings')] +#[CoversClass(FieldType::class)] class FieldTypeMockTest extends TestCase { public function testApplyDefaultSettingsThrowsInvalidArgumentException(): void diff --git a/tests/lib/FieldType/FileSizeValidatorTest.php b/tests/lib/FieldType/FileSizeValidatorTest.php index b275b0c166..e9474c263a 100644 --- a/tests/lib/FieldType/FileSizeValidatorTest.php +++ b/tests/lib/FieldType/FileSizeValidatorTest.php @@ -12,14 +12,12 @@ use Ibexa\Core\FieldType\Validator; use Ibexa\Core\FieldType\Validator\FileSizeValidator; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; #[CoversClass(FileSizeValidator::class)] -#[CoversMethod(FileSizeValidator::class, 'validate')] -#[CoversMethod(Validator::class, 'getMessage')] +#[CoversClass(Validator::class)] #[Group('fieldType')] #[Group('validator')] class FileSizeValidatorTest extends TestCase diff --git a/tests/lib/FieldType/ImageAssetTest.php b/tests/lib/FieldType/ImageAssetTest.php index 7bc27c4bf1..10714580aa 100644 --- a/tests/lib/FieldType/ImageAssetTest.php +++ b/tests/lib/FieldType/ImageAssetTest.php @@ -22,12 +22,12 @@ use Ibexa\Core\FieldType\ImageAsset; use Ibexa\Core\FieldType\Relation\Type; use Ibexa\Core\FieldType\ValidationError; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; -#[CoversMethod(Type::class, 'getRelations')] +#[CoversClass(Type::class)] #[Group('fieldType')] #[Group('ibexa_image_asset')] class ImageAssetTest extends FieldTypeTestCase diff --git a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php index 93d8df4cfe..af88d3af1e 100644 --- a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php +++ b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php @@ -13,14 +13,8 @@ use Ibexa\Core\Persistence\Legacy\URL\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; #[CoversClass(DoctrineStorage::class)] -#[CoversMethod(DoctrineStorage::class, 'getIdUrlMap')] -#[CoversMethod(DoctrineStorage::class, 'getUrlIdMap')] -#[CoversMethod(DoctrineStorage::class, 'insertUrl')] -#[CoversMethod(DoctrineStorage::class, 'linkUrl')] -#[CoversMethod(DoctrineStorage::class, 'unlinkUrl')] class DoctrineStorageTest extends TestCase { private DoctrineStorage $storageGateway; diff --git a/tests/lib/FieldType/UserTest.php b/tests/lib/FieldType/UserTest.php index 25b8eb8dca..9d490ddcb0 100644 --- a/tests/lib/FieldType/UserTest.php +++ b/tests/lib/FieldType/UserTest.php @@ -24,13 +24,12 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinition as CoreFieldDefinition; use Ibexa\Core\Repository\Values\User\User as RepositoryUser; use Ibexa\Tests\Core\FieldType\DataProvider\UserValidatorConfigurationSchemaProvider; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\Builder\InvocationMocker; -#[CoversMethod(Type::class, 'validate')] -#[CoversMethod(Type::class, 'toPersistenceValue')] +#[CoversClass(Type::class)] #[Group('fieldType')] #[Group('ibexa_url')] class UserTest extends FieldTypeTestCase diff --git a/tests/lib/MVC/Symfony/Controller/ControllerTest.php b/tests/lib/MVC/Symfony/Controller/ControllerTest.php index 9cc589960f..7c2adb0edf 100644 --- a/tests/lib/MVC/Symfony/Controller/ControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/ControllerTest.php @@ -8,7 +8,7 @@ namespace Ibexa\Tests\Core\MVC\Symfony\Controller; use Ibexa\Core\MVC\Symfony\Controller\Controller; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; @@ -17,7 +17,7 @@ /** * @mvc */ -#[CoversMethod(Controller::class, 'render')] +#[CoversClass(Controller::class)] class ControllerTest extends TestCase { /** @var \Ibexa\Core\MVC\Symfony\Controller\Controller */ diff --git a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php index dc3fc046a7..01639cac74 100644 --- a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php +++ b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php @@ -9,10 +9,10 @@ use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderInterface; use Ibexa\Core\MVC\Symfony\FieldType\View\ParameterProviderRegistry; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -#[CoversMethod(ParameterProviderRegistry::class, 'setParameterProvider')] +#[CoversClass(ParameterProviderRegistry::class)] class ParameterProviderRegistryTest extends TestCase { public function testSetHasParameterProvider() diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php index 7497410806..4f838969eb 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php @@ -13,13 +13,12 @@ use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth as DepthMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(DepthMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(DepthMatcher::class, 'matchContentInfo')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversClass(DepthMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class DepthTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Depth */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php index 1d08075124..e6c8f4e4c1 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php @@ -11,12 +11,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content as ContentIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ContentIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(ContentIdMatcher::class, 'matchContentInfo')] +#[CoversClass(ContentIdMatcher::class)] +#[CoversClass(MultipleValued::class)] class ContentTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Content */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php index 05274ce67b..fbc8422c40 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php @@ -14,12 +14,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup as ContentTypeGroupIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ContentTypeGroupIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(ContentTypeGroupIdMatcher::class, 'matchContentInfo')] +#[CoversClass(ContentTypeGroupIdMatcher::class)] +#[CoversClass(MultipleValued::class)] class ContentTypeGroupTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentTypeGroup */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php index 8f205e8f65..155a2136e9 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php @@ -12,12 +12,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType as ContentTypeIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ContentTypeIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(ContentTypeIdMatcher::class, 'matchContentInfo')] +#[CoversClass(ContentTypeIdMatcher::class)] +#[CoversClass(MultipleValued::class)] class ContentTypeTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ContentType */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php index 947be35b9d..18d82a4713 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php @@ -10,12 +10,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location as LocationIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(LocationIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(LocationIdMatcher::class, 'matchContentInfo')] +#[CoversClass(LocationIdMatcher::class)] +#[CoversClass(MultipleValued::class)] class LocationTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Location */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php index fdd9167f81..48d298258a 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php @@ -13,13 +13,12 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentContentType as ParentContentTypeMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ParentContentTypeMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] -#[CoversMethod(ParentContentTypeMatcher::class, 'matchContentInfo')] +#[CoversClass(ParentContentTypeMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class ParentContentTypeTest extends BaseTestCase { private const EXAMPLE_LOCATION_ID = 54; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php index 1a75225e38..ff18d5a56f 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php @@ -14,13 +14,12 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation as ParentLocationIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ParentLocationIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(ParentLocationIdMatcher::class, 'matchContentInfo')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversClass(ParentLocationIdMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class ParentLocationTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\ParentLocation */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php index 09d1e0628c..3dcad086ab 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php @@ -10,12 +10,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote as RemoteIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(RemoteIdMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(RemoteIdMatcher::class, 'matchContentInfo')] +#[CoversClass(RemoteIdMatcher::class)] +#[CoversClass(MultipleValued::class)] class RemoteTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Remote */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php index 06cb910c1c..0a41603275 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php @@ -11,11 +11,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Section as SectionIdMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(SectionIdMatcher::class, 'matchContentInfo')] +#[CoversClass(MultipleValued::class)] +#[CoversClass(SectionIdMatcher::class)] class SectionTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Id\Section */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php index f8c73a1fca..1e4d59ebe5 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php @@ -13,11 +13,11 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType as ContentTypeIdentifierMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ContentTypeIdentifierMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] +#[CoversClass(ContentTypeIdentifierMatcher::class)] +#[CoversClass(MultipleValued::class)] class ContentTypeTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ContentType */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php index 9d65ea3b9f..60e3ecae30 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php @@ -15,12 +15,12 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\ParentContentType as ParentContentTypeMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(ParentContentTypeMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversClass(ParentContentTypeMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class ParentContentTypeTest extends BaseTestCase { private const EXAMPLE_LOCATION_ID = 54; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php index 75ce2c4529..ba86e52b69 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php @@ -15,12 +15,12 @@ use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section as SectionIdentifierMatcher; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Tests\Core\MVC\Symfony\Matcher\ContentBased\BaseTestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(SectionIdentifierMatcher::class, 'matchLocation')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] +#[CoversClass(SectionIdentifierMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class SectionTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\Identifier\Section */ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php index 5f711dce65..143dea06a8 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php @@ -9,13 +9,11 @@ use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(MultipleValued::class, 'getValues')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] -#[CoversMethod(MultipleValued::class, 'getRepository')] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class MultipleValuedTest extends BaseTestCase { #[DataProvider('matchingConfigProvider')] diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php index 2536205766..eff5b02d27 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php @@ -14,14 +14,12 @@ use Ibexa\Core\MVC\RepositoryAware; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\MultipleValued; use Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias as UrlAliasMatcher; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; -#[CoversMethod(UrlAliasMatcher::class, 'setMatchingConfig')] -#[CoversMethod(MultipleValued::class, 'setMatchingConfig')] -#[CoversMethod(UrlAliasMatcher::class, 'matchLocation')] -#[CoversMethod(RepositoryAware::class, 'setRepository')] -#[CoversMethod(UrlAliasMatcher::class, 'matchContentInfo')] +#[CoversClass(UrlAliasMatcher::class)] +#[CoversClass(MultipleValued::class)] +#[CoversClass(RepositoryAware::class)] class UrlAliasTest extends BaseTestCase { /** @var \Ibexa\Core\MVC\Symfony\Matcher\ContentBased\UrlAlias */ diff --git a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php index 86fcf54784..bf96f47b96 100644 --- a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php @@ -34,12 +34,10 @@ use Ibexa\Core\Persistence\Legacy\Content\UrlAlias\SlugConverter; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\MockObject\MockObject; use ReflectionException; #[CoversClass(Handler::class)] -#[CoversMethod(Handler::class, 'loadVersionInfoList')] class ContentHandlerTest extends TestCase { private const RELATION_ID = 1; diff --git a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php index 7025618ffd..465cf08aee 100644 --- a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php @@ -24,11 +24,9 @@ use Ibexa\Core\Persistence\Legacy\Content\TreeHandler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\Depends; #[CoversClass(Handler::class)] -#[CoversMethod(Handler::class, 'countLocationsByContent')] class LocationHandlerTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php index 6ebd997440..fb1c9a6214 100644 --- a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php @@ -10,10 +10,10 @@ use Ibexa\Core\Persistence\Legacy\Content\Section\Gateway; use Ibexa\Core\Persistence\Legacy\Content\Section\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Depends; -#[CoversMethod(DoctrineDatabase::class, 'insertSection')] +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php index 07ebf4a5ab..a29ec122ca 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php @@ -16,14 +16,14 @@ use Ibexa\Core\Persistence\Legacy\Content\StorageHandler; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater; use Ibexa\Core\Persistence\Legacy\Content\Type\ContentUpdater\Action\AddField; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use ReflectionObject; /** * Test case for content type Updater. */ -#[CoversMethod(ContentUpdater::class, '__construct')] +#[CoversClass(ContentUpdater::class)] class AddFieldTest extends TestCase { /** diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php index 8328848c17..c5b48ef1ca 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php @@ -31,13 +31,11 @@ use Ibexa\Core\Search\Legacy\Content; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\Group; #[CoversClass(Handler::class)] -#[CoversMethod(Handler::class, 'publishUrlAliasForLocation')] #[Group('urlalias-handler')] class UrlAliasHandlerTest extends TestCase { diff --git a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php index b73c33cd35..2b3fdb7096 100644 --- a/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php +++ b/tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php @@ -17,17 +17,14 @@ use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalNotQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\LogicalOrQueryBuilder; use Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; -#[CoversMethod(LogicalAndQueryBuilder::class, 'buildQueryConstraint')] -#[CoversMethod(LogicalAndQueryBuilder::class, 'accepts')] -#[CoversMethod(LogicalOrQueryBuilder::class, 'buildQueryConstraint')] -#[CoversMethod(LogicalOrQueryBuilder::class, 'accepts')] -#[CoversMethod(LogicalNotQueryBuilder::class, 'buildQueryConstraint')] -#[CoversMethod(LogicalNotQueryBuilder::class, 'accepts')] -#[CoversMethod(CriterionVisitor::class, 'visitCriteria')] +#[CoversClass(LogicalAndQueryBuilder::class)] +#[CoversClass(LogicalOrQueryBuilder::class)] +#[CoversClass(LogicalNotQueryBuilder::class)] +#[CoversClass(CriterionVisitor::class)] abstract class BaseCriterionVisitorQueryBuilderTestCase extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Filter\CriterionVisitor */ diff --git a/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php b/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php index 30a7809969..6c2d3d78b2 100644 --- a/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php +++ b/tests/lib/Persistence/Legacy/Filter/Query/LimitedCountQueryBuilderTest.php @@ -12,10 +12,8 @@ use Ibexa\Core\Persistence\Legacy\Filter\Query\LimitedCountQueryBuilder; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; #[CoversClass(LimitedCountQueryBuilder::class)] -#[CoversMethod(LimitedCountQueryBuilder::class, 'wrap')] final class LimitedCountQueryBuilderTest extends TestCase { private LimitedCountQueryBuilder $limitedCountQueryBuilder; diff --git a/tests/lib/Persistence/Legacy/HandlerTest.php b/tests/lib/Persistence/Legacy/HandlerTest.php index 1242bf274c..87d4b908ed 100644 --- a/tests/lib/Persistence/Legacy/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/HandlerTest.php @@ -26,9 +26,9 @@ use Ibexa\Core\Persistence\Legacy\TransactionHandler; use Ibexa\Core\Persistence\Legacy\User\Handler as UserHandler; use Ibexa\Tests\Integration\Core\LegacyTestContainerBuilder; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversMethod(Handler::class, 'contentHandler')] +#[CoversClass(Handler::class)] class HandlerTest extends TestCase { public function testContentHandler(): void diff --git a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php index 044b1721bb..c992ab0ac3 100644 --- a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php @@ -18,9 +18,9 @@ use Ibexa\Core\Persistence\Legacy\Notification\Gateway\CriterionHandler\TypeCriterionHandler; use Ibexa\Core\Persistence\Legacy\Notification\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversMethod(DoctrineDatabase::class, 'insert')] +#[CoversClass(DoctrineDatabase::class)] class DoctrineDatabaseTest extends TestCase { public const EXISTING_NOTIFICATION_ID = 1; diff --git a/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php b/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php index b15d8f65e2..a800d89437 100644 --- a/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php @@ -12,10 +12,10 @@ use Ibexa\Core\Persistence\Legacy\Setting\Gateway; use Ibexa\Core\Persistence\Legacy\Setting\Handler; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; -#[CoversMethod(Handler::class, 'create')] +#[CoversClass(Handler::class)] final class SettingHandlerTest extends TestCase { /** @var \Ibexa\Core\Persistence\Legacy\Setting\Handler */ diff --git a/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php index 54703d6dc0..96ce017ed2 100644 --- a/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php @@ -14,10 +14,8 @@ use Ibexa\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase; use Ibexa\Tests\Core\Persistence\Legacy\TestCase; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; #[CoversClass(DoctrineDatabase::class)] -#[CoversMethod(DoctrineDatabase::class, 'loadRoleAssignmentsByRoleIdWithOffsetAndLimit')] class DoctrineDatabaseTest extends TestCase { /** diff --git a/tests/lib/Repository/Mapper/ContentMapperTest.php b/tests/lib/Repository/Mapper/ContentMapperTest.php index c7dcc1ae07..6d2903ae01 100644 --- a/tests/lib/Repository/Mapper/ContentMapperTest.php +++ b/tests/lib/Repository/Mapper/ContentMapperTest.php @@ -21,11 +21,11 @@ use Ibexa\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\Stub; use PHPUnit\Framework\TestCase; -#[CoversMethod(ContentService::class, 'updateContent')] +#[CoversClass(ContentService::class)] final class ContentMapperTest extends TestCase { private Handler&Stub $contentLanguageHandler; diff --git a/tests/lib/Repository/Service/Mock/BookmarkTest.php b/tests/lib/Repository/Service/Mock/BookmarkTest.php index a2f4c9e2c3..853e235a87 100644 --- a/tests/lib/Repository/Service/Mock/BookmarkTest.php +++ b/tests/lib/Repository/Service/Mock/BookmarkTest.php @@ -20,13 +20,10 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\MockObject\MockObject; -#[CoversMethod(BookmarkService::class, 'createBookmark')] -#[CoversMethod(BookmarkService::class, 'deleteBookmark')] -#[CoversMethod(BookmarkService::class, 'loadBookmarks')] -#[CoversMethod(BookmarkService::class, 'isBookmarked')] +#[CoversClass(BookmarkService::class)] class BookmarkTest extends BaseServiceMockTest { public const BOOKMARK_ID = 2; diff --git a/tests/lib/Repository/Service/Mock/ContentTest.php b/tests/lib/Repository/Service/Mock/ContentTest.php index 95462b6b23..cdb5d9c85f 100644 --- a/tests/lib/Repository/Service/Mock/ContentTest.php +++ b/tests/lib/Repository/Service/Mock/ContentTest.php @@ -60,7 +60,7 @@ use Ibexa\Core\Repository\Values\ContentType\FieldDefinitionCollection; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; use PHPUnit\Framework\Attributes\DependsExternal; @@ -70,24 +70,8 @@ /** * Mock test case for Content service. */ -#[CoversMethod(ContentService::class, '__construct')] -#[CoversMethod(ContentService::class, 'loadVersionInfoById')] -#[CoversMethod(ContentService::class, 'loadVersionInfo')] -#[CoversMethod(ContentService::class, 'loadContentByContentInfo')] -#[CoversMethod(ContentService::class, 'loadContentByVersionInfo')] -#[CoversMethod(ContentService::class, 'deleteContent')] -#[CoversMethod(ContentService::class, 'deleteVersion')] -#[CoversMethod(ContentService::class, 'createContent')] -#[CoversMethod(ContentMapper::class, 'getLanguageCodesForCreate')] -#[CoversMethod(ContentMapper::class, 'mapFieldsForCreate')] -#[CoversMethod(ContentMapper::class, 'cloneField')] -#[CoversMethod(ContentService::class, 'getDefaultObjectStates')] -#[CoversMethod(ContentService::class, 'buildSPILocationCreateStructs')] -#[CoversMethod(ContentService::class, 'updateContent')] -#[CoversMethod(ContentMapper::class, 'getLanguageCodesForUpdate')] -#[CoversMethod(ContentMapper::class, 'mapFieldsForUpdate')] -#[CoversMethod(ContentService::class, 'copyContent')] -#[CoversMethod(ContentService::class, 'internalPublishVersion')] +#[CoversClass(ContentService::class)] +#[CoversClass(ContentMapper::class)] class ContentTest extends BaseServiceMockTest { private const string EMPTY_FIELD_VALUE = 'empty'; diff --git a/tests/lib/Repository/Service/Mock/RepositoryTest.php b/tests/lib/Repository/Service/Mock/RepositoryTest.php index 75c0fd8424..c559732276 100644 --- a/tests/lib/Repository/Service/Mock/RepositoryTest.php +++ b/tests/lib/Repository/Service/Mock/RepositoryTest.php @@ -9,14 +9,12 @@ use Ibexa\Core\Repository\Repository; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; /** * Mock test case for Repository. */ -#[CoversMethod(Repository::class, 'beginTransaction')] -#[CoversMethod(Repository::class, 'commit')] -#[CoversMethod(Repository::class, 'rollback')] +#[CoversClass(Repository::class)] class RepositoryTest extends BaseServiceMockTest { /** diff --git a/tests/lib/Repository/Service/Mock/RoleTest.php b/tests/lib/Repository/Service/Mock/RoleTest.php index 9124ca9a44..f4b2d81d36 100644 --- a/tests/lib/Repository/Service/Mock/RoleTest.php +++ b/tests/lib/Repository/Service/Mock/RoleTest.php @@ -31,11 +31,9 @@ use Ibexa\Core\Repository\RoleService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; #[CoversClass(RoleService::class)] -#[CoversMethod(LimitationService::class, 'validateLimitations')] -#[CoversMethod(LimitationService::class, 'validateLimitation')] +#[CoversClass(LimitationService::class)] class RoleTest extends BaseServiceMockTest { /** diff --git a/tests/lib/Repository/Service/Mock/SearchTest.php b/tests/lib/Repository/Service/Mock/SearchTest.php index 8cb34237fc..4a4760d0a1 100644 --- a/tests/lib/Repository/Service/Mock/SearchTest.php +++ b/tests/lib/Repository/Service/Mock/SearchTest.php @@ -26,17 +26,13 @@ use Ibexa\Core\Search\Common\BackgroundIndexer; use Ibexa\Core\Search\Common\BackgroundIndexer\NullIndexer; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; /** * Mock test case for Search service. */ -#[CoversMethod(SearchService::class, '__construct')] -#[CoversMethod(SearchService::class, 'addPermissionsCriterion')] -#[CoversMethod(SearchService::class, 'findContent')] -#[CoversMethod(SearchService::class, 'findSingle')] -#[CoversMethod(SearchService::class, 'findLocations')] +#[CoversClass(SearchService::class)] class SearchTest extends BaseServiceMockTest { protected $repositoryMock; diff --git a/tests/lib/Repository/Service/Mock/UrlAliasTest.php b/tests/lib/Repository/Service/Mock/UrlAliasTest.php index a42c3faa88..9fa33b3525 100644 --- a/tests/lib/Repository/Service/Mock/UrlAliasTest.php +++ b/tests/lib/Repository/Service/Mock/UrlAliasTest.php @@ -22,7 +22,7 @@ use Ibexa\Core\Repository\URLAliasService; use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\MockObject\MockObject; @@ -30,9 +30,7 @@ /** * Mock test case for UrlAlias Service. */ -#[CoversMethod(URLAliasService::class, 'createUrlAlias')] -#[CoversMethod(URLAliasService::class, 'createGlobalUrlAlias')] -#[CoversMethod(URLAliasService::class, 'removeAliases')] +#[CoversClass(URLAliasService::class)] class UrlAliasTest extends BaseServiceMockTest { private const EXAMPLE_ID = 'eznode:42'; diff --git a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php index 5503269d78..0f21bfe19b 100644 --- a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php +++ b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php @@ -19,16 +19,13 @@ use Ibexa\Core\Base\Exceptions\NotFoundException as APINotFoundException; use Ibexa\Core\Repository\URLWildcardService; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; /** * Mock Test case for UrlWildcard Service. */ -#[CoversMethod(URLWildcardService::class, 'create')] -#[CoversMethod(URLWildcardService::class, 'remove')] -#[CoversMethod(URLWildcardService::class, 'loadAll')] -#[CoversMethod(URLWildcardService::class, 'translate')] +#[CoversClass(URLWildcardService::class)] class UrlWildcardTest extends BaseServiceMockTest { private const EXAMPLE_URL_WILDCARD_ID = 1; diff --git a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php index ef73337f3b..93185ac0f1 100644 --- a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php +++ b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php @@ -18,12 +18,9 @@ use Ibexa\Core\Repository\UserPreferenceService; use Ibexa\Core\Repository\Values\User\UserReference; use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; -#[CoversMethod(UserPreferenceService::class, 'setUserPreference')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreference')] -#[CoversMethod(UserPreferenceService::class, 'loadUserPreferences')] -#[CoversMethod(UserPreferenceService::class, 'getUserPreferenceCount')] +#[CoversClass(UserPreferenceService::class)] class UserPreferenceTest extends BaseServiceMockTest { public const CURRENT_USER_ID = 14; diff --git a/tests/lib/Repository/Values/Content/LocationTest.php b/tests/lib/Repository/Values/Content/LocationTest.php index eca9a0bb46..df5a1409cf 100644 --- a/tests/lib/Repository/Values/Content/LocationTest.php +++ b/tests/lib/Repository/Values/Content/LocationTest.php @@ -14,13 +14,10 @@ use Ibexa\Core\Repository\Values\Content\Location; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; #[CoversClass(Location::class)] -#[CoversMethod(Location::class, '__set')] -#[CoversMethod(Location::class, '__unset')] final class LocationTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/Content/SectionTest.php b/tests/lib/Repository/Values/Content/SectionTest.php index 58d93be149..a351926ef3 100644 --- a/tests/lib/Repository/Values/Content/SectionTest.php +++ b/tests/lib/Repository/Values/Content/SectionTest.php @@ -11,13 +11,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Contracts\Core\Repository\Values\Content\Section; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -#[CoversMethod(Section::class, '__get')] -#[CoversMethod(Section::class, '__set')] -#[CoversMethod(Section::class, '__isset')] -#[CoversMethod(Section::class, '__unset')] +#[CoversClass(Section::class)] class SectionTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/Content/TrashItemTest.php b/tests/lib/Repository/Values/Content/TrashItemTest.php index e6721c1f2e..0b12c45dee 100644 --- a/tests/lib/Repository/Values/Content/TrashItemTest.php +++ b/tests/lib/Repository/Values/Content/TrashItemTest.php @@ -12,11 +12,9 @@ use Ibexa\Core\Repository\Values\Content\TrashItem; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; #[CoversClass(TrashItem::class)] -#[CoversMethod(TrashItem::class, '__unset')] class TrashItemTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php index f45d82772e..c7ce0cb88b 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php @@ -13,13 +13,9 @@ use Ibexa\Tests\Core\Repository\Values\MultiLanguageTestTrait; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; #[CoversClass(ObjectStateGroup::class)] -#[CoversMethod(ObjectStateGroup::class, '__get')] -#[CoversMethod(ObjectStateGroup::class, '__set')] -#[CoversMethod(ObjectStateGroup::class, '__unset')] class ObjectStateGroupTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php index da803ddd94..a43fad7911 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php @@ -15,16 +15,11 @@ use Ibexa\Tests\Core\Repository\Values\MultiLanguageTestTrait; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; #[CoversClass(ObjectState::class)] -#[CoversMethod(ObjectState::class, '__get')] -#[CoversMethod(ObjectStateGroup::class, '__get')] -#[CoversMethod(ObjectState::class, '__set')] -#[CoversMethod(ObjectStateGroup::class, '__set')] -#[CoversMethod(ObjectState::class, '__unset')] -#[CoversMethod(CoveredObjectStateGroup::class, '__unset')] +#[CoversClass(ObjectStateGroup::class)] +#[CoversClass(CoveredObjectStateGroup::class)] class ObjectStateTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/User/PolicyTest.php b/tests/lib/Repository/Values/User/PolicyTest.php index 035174082d..a1f5a61495 100644 --- a/tests/lib/Repository/Values/User/PolicyTest.php +++ b/tests/lib/Repository/Values/User/PolicyTest.php @@ -11,14 +11,10 @@ use Ibexa\Contracts\Core\Repository\Exceptions\PropertyReadOnlyException; use Ibexa\Core\Repository\Values\User\Policy; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; -use PHPUnit\Framework\Attributes\CoversMethod; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; -#[CoversMethod(Policy::class, '__construct')] -#[CoversMethod(Policy::class, '__get')] -#[CoversMethod(Policy::class, '__set')] -#[CoversMethod(Policy::class, '__isset')] -#[CoversMethod(Policy::class, '__unset')] +#[CoversClass(Policy::class)] class PolicyTest extends TestCase { use ValueObjectTestTrait; diff --git a/tests/lib/Repository/Values/User/RoleTest.php b/tests/lib/Repository/Values/User/RoleTest.php index ab5a0997c2..c06a740a2f 100644 --- a/tests/lib/Repository/Values/User/RoleTest.php +++ b/tests/lib/Repository/Values/User/RoleTest.php @@ -12,13 +12,9 @@ use Ibexa\Core\Repository\Values\User\Role; use Ibexa\Tests\Core\Repository\Values\ValueObjectTestTrait; use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\CoversMethod; use PHPUnit\Framework\TestCase; #[CoversClass(Role::class)] -#[CoversMethod(Role::class, '__get')] -#[CoversMethod(Role::class, '__set')] -#[CoversMethod(Role::class, '__unset')] class RoleTest extends TestCase { use ValueObjectTestTrait; From 3bf81f803824afca16ba8f6fc8e95071c30067f0 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:38:35 +0200 Subject: [PATCH 14/20] IBX-12606: Asserted the recorded call sequence in ObjectStateHandlerTest::testDeleteGroup --- .../ObjectState/ObjectStateHandlerTest.php | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php index 9e4d6de00b..c96c1c17c8 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php @@ -252,20 +252,18 @@ public function testDeleteGroup() ) ); - $deleteObjectStateLinksMatcher = self::exactly(2); - $gatewayMock->expects($deleteObjectStateLinksMatcher) + $calls = []; + + $gatewayMock->expects(self::exactly(2)) ->method('deleteObjectStateLinks') - ->willReturnCallback(static function ($stateId) use ($deleteObjectStateLinksMatcher): void { - $expected = $deleteObjectStateLinksMatcher->numberOfInvocations() === 1 ? 1 : 2; - self::assertSame($expected, $stateId); + ->willReturnCallback(static function (int $stateId) use (&$calls): void { + $calls[] = ['deleteObjectStateLinks', $stateId]; }); - $deleteObjectStateMatcher = self::exactly(2); - $gatewayMock->expects($deleteObjectStateMatcher) + $gatewayMock->expects(self::exactly(2)) ->method('deleteObjectState') - ->willReturnCallback(static function ($stateId) use ($deleteObjectStateMatcher): void { - $expected = $deleteObjectStateMatcher->numberOfInvocations() === 1 ? 1 : 2; - self::assertSame($expected, $stateId); + ->willReturnCallback(static function (int $stateId) use (&$calls): void { + $calls[] = ['deleteObjectState', $stateId]; }); $gatewayMock->expects(self::once()) @@ -273,6 +271,16 @@ public function testDeleteGroup() ->with(self::equalTo(2)); $handler->deleteGroup(2); + + self::assertSame( + [ + ['deleteObjectStateLinks', 1], + ['deleteObjectState', 1], + ['deleteObjectStateLinks', 2], + ['deleteObjectState', 2], + ], + $calls + ); } public function testCreate() From 71e0c1e0ebe0e59411322fc824a6e289dc3a02d4 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 17 Sep 2026 15:42:04 +0200 Subject: [PATCH 15/20] IBX-12606: Converted remaining docblock annotations to attributes --- .../URLChecker/Handler/HTTPHandlerTest.php | 18 ++++++------------ .../FieldType/RelationIntegrationTest.php | 1 + .../FieldType/RelationListIntegrationTest.php | 1 + .../RelationSearchBaseIntegrationTestTrait.php | 4 ---- .../Values/MultiLanguageTestTrait.php | 13 +++++-------- .../Constraint/UniqueIdentifierTest.php | 5 ++--- 6 files changed, 15 insertions(+), 27 deletions(-) diff --git a/tests/bundle/Core/URLChecker/Handler/HTTPHandlerTest.php b/tests/bundle/Core/URLChecker/Handler/HTTPHandlerTest.php index d2c9d63fb4..a3b9643bb0 100644 --- a/tests/bundle/Core/URLChecker/Handler/HTTPHandlerTest.php +++ b/tests/bundle/Core/URLChecker/Handler/HTTPHandlerTest.php @@ -13,13 +13,13 @@ use Ibexa\Contracts\Core\Repository\Values\URL\URL; use Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct; use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use ReflectionMethod; use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; -/** - * @covers \Ibexa\Bundle\Core\URLChecker\Handler\HTTPHandler - */ +#[CoversClass(HTTPHandler::class)] final class HTTPHandlerTest extends TestCase { private const PARAMETER_NAME = 'url_handler.http.options'; @@ -104,9 +104,7 @@ public function testBuildRequestHeaders(): void ); } - /** - * @dataProvider provideDataForTestIsSuccessful - */ + #[DataProvider('provideDataForTestIsSuccessful')] public function testIsSuccessful(int $statusCode, bool $expected): void { $handler = $this->createHandler([]); @@ -133,9 +131,7 @@ public static function provideDataForTestIsSuccessful(): iterable yield 'status 500' => [500, false]; } - /** - * @dataProvider provideDataForTestShouldRetryWithGet - */ + #[DataProvider('provideDataForTestShouldRetryWithGet')] public function testShouldRetryWithGet( int $statusCode, string $requestMethod, @@ -185,9 +181,7 @@ public function testCompleteRequestRetriesWithGetWhenHeadFails(): void self::assertCount(1, $queue, 'Retry must not consume the queue'); } - /** - * @dataProvider provideCompleteRequestFinalResults - */ + #[DataProvider('provideCompleteRequestFinalResults')] public function testCompleteRequestRecordsStatusAndSchedulesNextUrl( string $method, int $statusCode, diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index 43327fb517..48970cf122 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -24,6 +24,7 @@ #[CoversClass(BaseIntegrationTestCase::class)] #[Group('integration')] #[Group('field-type')] +#[Group('relation')] class RelationIntegrationTest extends SearchBaseIntegrationTestCase { use RelationSearchBaseIntegrationTestTrait; diff --git a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php index f825b3c79a..7f9caaa2b0 100644 --- a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php @@ -22,6 +22,7 @@ */ #[Group('integration')] #[Group('field-type')] +#[Group('relation')] class RelationListIntegrationTest extends SearchMultivaluedBaseIntegrationTestCase { use RelationSearchBaseIntegrationTestTrait; diff --git a/tests/integration/Core/Repository/FieldType/RelationSearchBaseIntegrationTestTrait.php b/tests/integration/Core/Repository/FieldType/RelationSearchBaseIntegrationTestTrait.php index 849db5a8b9..0e45c47c73 100644 --- a/tests/integration/Core/Repository/FieldType/RelationSearchBaseIntegrationTestTrait.php +++ b/tests/integration/Core/Repository/FieldType/RelationSearchBaseIntegrationTestTrait.php @@ -17,10 +17,6 @@ /** * Base integration test for field types handling content relations. * - * @group integration - * @group field-type - * @group relation - * * @since 6.1 */ trait RelationSearchBaseIntegrationTestTrait diff --git a/tests/lib/Repository/Values/MultiLanguageTestTrait.php b/tests/lib/Repository/Values/MultiLanguageTestTrait.php index 24495987c7..c0c0dc7102 100644 --- a/tests/lib/Repository/Values/MultiLanguageTestTrait.php +++ b/tests/lib/Repository/Values/MultiLanguageTestTrait.php @@ -9,6 +9,7 @@ use Ibexa\Contracts\Core\Repository\Values\MultiLanguageDescription; use Ibexa\Contracts\Core\Repository\Values\MultiLanguageName; +use PHPUnit\Framework\Attributes\Depends; use ReflectionClass; /** @@ -19,10 +20,9 @@ trait MultiLanguageTestTrait { /** - * @depends testNewClassWithMultiLanguageProperties - * * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageName $object tested ValueObject */ + #[Depends('testNewClassWithMultiLanguageProperties')] public function testGetMultiLanguagePrioritizedName($object) { if (!$object instanceof MultiLanguageName) { @@ -38,10 +38,9 @@ public function testGetMultiLanguagePrioritizedName($object) } /** - * @depends testNewClassWithMultiLanguageProperties - * * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageName $object tested ValueObject */ + #[Depends('testNewClassWithMultiLanguageProperties')] public function testGetMultiLanguageDefaultName($object) { if (!$object instanceof MultiLanguageName) { @@ -68,10 +67,9 @@ public function testGetMultiLanguageDefaultName($object) } /** - * @depends testNewClassWithMultiLanguageProperties - * * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageDescription $object tested ValueObject */ + #[Depends('testNewClassWithMultiLanguageProperties')] public function testGetMultiLanguagePrioritizedDescription($object) { if (!$object instanceof MultiLanguageDescription) { @@ -87,10 +85,9 @@ public function testGetMultiLanguagePrioritizedDescription($object) } /** - * @depends testNewClassWithMultiLanguageProperties - * * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageDescription $object tested ValueObject */ + #[Depends('testNewClassWithMultiLanguageProperties')] public function testGetMultiLanguageDefaultDescription($object) { if (!$object instanceof MultiLanguageDescription) { diff --git a/tests/lib/Validation/Constraint/UniqueIdentifierTest.php b/tests/lib/Validation/Constraint/UniqueIdentifierTest.php index 5346c60bfe..7e5db506b3 100644 --- a/tests/lib/Validation/Constraint/UniqueIdentifierTest.php +++ b/tests/lib/Validation/Constraint/UniqueIdentifierTest.php @@ -9,12 +9,11 @@ namespace Ibexa\Tests\Core\Validation\Constraint; use Ibexa\Contracts\Core\Validation\Constraint\UniqueIdentifier; +use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\TestCase; use Symfony\Component\Validator\Attribute\HasNamedArguments; -/** - * @covers \Ibexa\Contracts\Core\Validation\Constraint\UniqueIdentifier - */ +#[CoversClass(UniqueIdentifier::class)] final class UniqueIdentifierTest extends TestCase { public function testNamedArguments(): void From 28f7097cbee8a91e593e181de890c7dd0b937374 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 18 Sep 2026 09:17:15 +0200 Subject: [PATCH 16/20] IBX-12606: Renamed the EZP regression tests so PHPUnit discovers them --- ...iasTranslations.php => EZP22612URLAliasTranslationsTest.php} | 2 +- ...22840RoleLimitations.php => EZP22840RoleLimitationsTest.php} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename tests/integration/Core/Repository/Regression/{EZP22612URLAliasTranslations.php => EZP22612URLAliasTranslationsTest.php} (97%) rename tests/integration/Core/Repository/Regression/{EZP22840RoleLimitations.php => EZP22840RoleLimitationsTest.php} (98%) diff --git a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php similarity index 97% rename from tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php rename to tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php index c374ed5a98..d543cf2540 100644 --- a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php +++ b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php @@ -10,7 +10,7 @@ use Ibexa\Contracts\Core\Repository\Values\Content\URLAlias; use Ibexa\Tests\Integration\Core\Repository\BaseTestCase; -class EZP22612URLAliasTranslations extends BaseTestCase +class EZP22612URLAliasTranslationsTest extends BaseTestCase { protected function setUp(): void { diff --git a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php similarity index 98% rename from tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php rename to tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php index 34f21aab63..67c12d8397 100644 --- a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php +++ b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php @@ -15,7 +15,7 @@ /** * Issue EZP-22840. */ -class EZP22840RoleLimitations extends BaseTestCase +class EZP22840RoleLimitationsTest extends BaseTestCase { /** * Test Subtree Role Assignment Limitation against state/assign. From 9d4ad4427679993b55770286672c9b69912e9ea6 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 18 Sep 2026 09:17:17 +0200 Subject: [PATCH 17/20] IBX-12606: Dropped the CoversClass attribute targeting a test base class in RelationIntegrationTest --- .../Core/Repository/FieldType/RelationIntegrationTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index 48970cf122..25e9d22e2d 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -15,13 +15,11 @@ use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\Relation\Value as RelationValue; use Ibexa\Core\Repository\Values\Content\Relation; -use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; /** * Integration test for use field type. */ -#[CoversClass(BaseIntegrationTestCase::class)] #[Group('integration')] #[Group('field-type')] #[Group('relation')] From 31fd2b978921217ab9fdef267dd04cec12008e48 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 18 Sep 2026 09:34:25 +0200 Subject: [PATCH 18/20] IBX-12606: Updated PHPStan baseline paths for the renamed EZP regression tests --- phpstan-baseline.neon | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 3d613a3b97..1b1df8ebd6 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -31954,43 +31954,43 @@ parameters: message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLAlias'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLAlias will always evaluate to true\.$#' identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:getFolderCreateStruct\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:getFolderCreateStruct\(\) has parameter \$name with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has parameter \$name with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslations\:\:testURLAliasLoadedInRightLanguage\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:testURLAliasLoadedInRightLanguage\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslations.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:testSectionRoleAssignLimitation\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitationsTest\:\:testSectionRoleAssignLimitation\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php + path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitations\:\:testSubtreeRoleAssignLimitation\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitationsTest\:\:testSubtreeRoleAssignLimitation\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitations.php + path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:searchContentQueryProvider\(\) has no return type specified\.$#' From 45a9a2731fcafff89c11a86ed310c31173f38b13 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 18 Sep 2026 10:05:06 +0200 Subject: [PATCH 19/20] IBX-12606: Added return types to test methods and data providers --- phpstan-baseline.neon | 39472 ++++------------ tests/bundle/Core/ChainConfigResolverTest.php | 23 +- .../Compiler/ChainConfigResolverPassTest.php | 7 +- .../Compiler/ChainRoutingPassTest.php | 9 +- ...dTypeParameterProviderRegistryPassTest.php | 4 +- .../Compiler/FragmentPassTest.php | 2 +- .../Compiler/NotificationRendererPassTest.php | 4 +- .../Compiler/PlaceholderProviderPassTest.php | 4 +- .../RegisterStorageEnginePassTest.php | 6 +- .../SlugConverterConfigurationPassTest.php | 7 +- .../Compiler/URLHandlerPassTest.php | 4 +- .../Compiler/ViewProvidersPassTest.php | 7 +- .../ComplexSettingParserTest.php | 9 +- .../ComplexSettingValueResolverTest.php | 2 +- .../Configuration/Parser/CommonTest.php | 21 +- .../Configuration/Parser/ContentTest.php | 9 +- .../Parser/FieldType/ImageAssetTest.php | 4 +- .../Configuration/Parser/IOTest.php | 2 +- .../Configuration/Parser/ImageTest.php | 4 +- .../Configuration/Parser/LanguagesTest.php | 8 +- .../Configuration/Parser/TemplatesTest.php | 4 +- .../Configuration/Parser/ViewTest.php | 4 +- .../ConfigurationProcessorTest.php | 14 +- .../SiteAccessAware/ContextualizerTest.php | 32 +- .../DynamicSettingParserTest.php | 16 +- .../Collector/SuggestionCollectorTest.php | 2 +- .../Suggestion/ConfigSuggestionTest.php | 4 +- .../Formatter/YamlSuggestionFormatterTest.php | 4 +- .../IbexaCoreExtensionTest.php | 46 +- .../PoliciesConfigBuilderTest.php | 2 +- .../PolicyProvider/YamlPolicyProviderTest.php | 4 +- ...ackgroundIndexingTerminateListenerTest.php | 14 +- .../EventListener/ConfigScopeListenerTest.php | 4 +- .../ConsoleCommandListenerTest.php | 10 +- ...tentDownloadRouteReferenceListenerTest.php | 10 +- .../IndexRequestListenerTest.php | 11 +- .../OriginalRequestListenerTest.php | 8 +- .../RequestEventListenerTest.php | 14 +- .../EventListener/RoutingListenerTest.php | 4 +- .../EventListener/SiteAccessListenerTest.php | 11 +- .../ViewControllerListenerTest.php | 8 +- .../CrowdinRequestLocaleSubscriberTest.php | 7 +- .../Fragment/FragmentListenerFactoryTest.php | 9 +- .../bundle/Core/Imagine/AliasCleanerTest.php | 2 +- .../bundle/Core/Imagine/BinaryLoaderTest.php | 6 +- .../Cache/Resolver/ProxyResolverTest.php | 6 +- .../Cache/Resolver/RelativeResolverTest.php | 2 +- .../Imagine/Cache/ResolverFactoryTest.php | 4 +- .../Imagine/Filter/AbstractFilterTest.php | 16 +- .../Filter/FilterConfigurationTest.php | 14 +- .../Filter/Loader/BorderFilterLoaderTest.php | 16 +- .../Filter/Loader/CropFilterLoaderTest.php | 9 +- .../Loader/GrayscaleFilterLoaderTest.php | 2 +- .../Loader/ReduceNoiseFilterLoaderTest.php | 2 +- .../Loader/ScaleDownOnlyFilterLoaderTest.php | 9 +- .../Loader/ScaleExactFilterLoaderTest.php | 9 +- .../Filter/Loader/ScaleFilterLoaderTest.php | 11 +- .../ScaleHeightDownOnlyFilterLoaderTest.php | 4 +- .../Loader/ScaleHeightFilterLoaderTest.php | 4 +- .../Loader/ScalePercentFilterLoaderTest.php | 9 +- .../ScaleWidthDownOnlyFilterLoaderTest.php | 4 +- .../Loader/ScaleWidthFilterLoaderTest.php | 4 +- .../Filter/Loader/SwirlFilterLoaderTest.php | 9 +- .../Imagine/Filter/UnsupportedFilterTest.php | 2 +- .../Imagine/ImageAsset/AliasGeneratorTest.php | 6 +- ...ceholderAliasGeneratorConfiguratorTest.php | 2 +- .../Imagine/PlaceholderAliasGeneratorTest.php | 10 +- .../GenericProviderTest.php | 7 +- .../PlaceholderProviderRegistryTest.php | 8 +- ...iasDirectoryVariationPathGeneratorTest.php | 2 +- ...nalDirectoryVariationPathGeneratorTest.php | 2 +- .../Core/Routing/UrlAliasRouterTest.php | 14 +- .../Core/SiteAccess/MatcherBuilderTest.php | 6 +- .../bundle/Core/URLChecker/URLCheckerTest.php | 4 +- .../Collector/IbexaCoreCollectorTest.php | 16 +- .../Compiler/DataCollectorPassTest.php | 2 +- .../IbexaIOExtensionTest.php | 6 +- .../Core/Repository/BookmarkServiceTest.php | 14 +- .../ContentServiceAuthorizationTest.php | 82 +- .../Core/Repository/ContentServiceTest.php | 308 +- .../ContentTypeServiceAuthorizationTest.php | 28 +- .../Repository/ContentTypeServiceTest.php | 188 +- .../FieldType/AuthorIntegrationTest.php | 18 +- .../FieldType/BaseIntegrationTestCase.php | 46 +- .../FieldType/CheckboxIntegrationTest.php | 18 +- .../FieldType/CountryIntegrationTest.php | 18 +- .../FieldType/DateAndTimeIntegrationTest.php | 18 +- .../FieldType/DateIntegrationTest.php | 18 +- .../FieldType/EmailAddressIntegrationTest.php | 18 +- .../FileSearchBaseIntegrationTestCase.php | 2 +- .../FieldType/FloatIntegrationTest.php | 18 +- .../FieldType/ISBNIntegrationTest.php | 18 +- .../FieldType/IntegerIntegrationTest.php | 18 +- .../FieldType/KeywordIntegrationTest.php | 31 +- .../FieldType/MapLocationIntegrationTest.php | 18 +- .../FieldType/RelationIntegrationTest.php | 18 +- .../FieldType/RelationListIntegrationTest.php | 18 +- .../SearchBaseIntegrationTestCase.php | 94 +- ...archMultivaluedBaseIntegrationTestCase.php | 50 +- .../FieldType/SelectionIntegrationTest.php | 18 +- .../FieldType/TextBlockIntegrationTest.php | 18 +- .../FieldType/TextLineIntegrationTest.php | 18 +- .../FieldType/TimeIntegrationTest.php | 18 +- .../FieldType/UrlIntegrationTest.php | 18 +- .../FieldType/UserIntegrationTest.php | 28 +- .../Core/Repository/FieldTypeServiceTest.php | 10 +- .../LanguageServiceAuthorizationTest.php | 10 +- ...geServiceMaximumSupportedLanguagesTest.php | 2 +- .../Core/Repository/LanguageServiceTest.php | 42 +- .../LocationServiceAuthorizationTest.php | 26 +- .../Core/Repository/LocationServiceTest.php | 103 +- .../Repository/NonRedundantFieldSetTest.php | 28 +- .../ObjectStateServiceAuthorizationTest.php | 16 +- .../Repository/ObjectStateServiceTest.php | 72 +- .../Repository/PermissionResolverTest.php | 40 +- .../Regression/EZP20018LanguageTest.php | 8 +- .../Regression/EZP20018ObjectStateTest.php | 4 +- .../Regression/EZP20018VisibilityTest.php | 4 +- .../Repository/Regression/EZP21069Test.php | 6 +- .../Repository/Regression/EZP21089Test.php | 2 +- .../Regression/EZP21109IbexaIntegerTest.php | 5 +- .../Regression/EZP21771IbexaStringTest.php | 2 +- ...6SearchOneContentMultipleLocationsTest.php | 7 +- .../EZP22408DeleteRelatedObjectTest.php | 4 +- .../EZP22409RelationListTypeStateTest.php | 4 +- .../EZP22612URLAliasTranslationsTest.php | 2 +- .../EZP22840RoleLimitationsTest.php | 4 +- ...22958SearchSubtreePathstringFormatTest.php | 14 +- .../EZP26327UrlAliasHistorizationTest.php | 2 +- ...ZP26367UrlAliasHistoryRedirectLoopTest.php | 4 +- .../EZP26551DeleteContentTypeDraftTest.php | 2 +- .../Regression/EZP28799SubtreeSearchTest.php | 4 +- .../Core/Repository/Regression/EnvTest.php | 2 +- .../Regression/PureNegativeQueryTest.php | 13 +- .../Core/Repository/RepositoryTest.php | 38 +- .../RoleServiceAuthorizationTest.php | 38 +- .../Core/Repository/RoleServiceTest.php | 122 +- .../Repository/SearchEngineIndexingTest.php | 62 +- .../SearchServiceAuthorizationTest.php | 12 +- .../Repository/SearchServiceLocationTest.php | 34 +- .../Core/Repository/SearchServiceTest.php | 182 +- ...ServiceTranslationLanguageFallbackTest.php | 11 +- .../SectionServiceAuthorizationTest.php | 16 +- .../Core/Repository/SectionServiceTest.php | 60 +- .../TrashServiceAuthorizationTest.php | 16 +- .../Core/Repository/TrashServiceTest.php | 50 +- .../URLAliasServiceAuthorizationTest.php | 6 +- .../Core/Repository/URLAliasServiceTest.php | 62 +- .../URLServiceAuthorizationTest.php | 8 +- .../Core/Repository/URLServiceTest.php | 56 +- .../URLWildcardServiceAuthorizationTest.php | 2 +- .../Repository/URLWildcardServiceTest.php | 32 +- .../Repository/UserPreferenceServiceTest.php | 12 +- .../UserServiceAuthorizationTest.php | 26 +- .../Core/Repository/UserServiceTest.php | 138 +- .../Limitation/ContentTypeLimitationTest.php | 6 +- .../Limitation/LocationLimitationTest.php | 4 +- .../NewObjectStateLimitationTest.php | 4 +- .../Limitation/NewSectionLimitationTest.php | 4 +- .../User/Limitation/OwnerLimitationTest.php | 4 +- .../ParentContentTypeLimitationTest.php | 4 +- .../Limitation/ParentDepthLimitationTest.php | 6 +- .../Limitation/ParentOwnerLimitationTest.php | 4 +- .../ParentUserGroupLimitationTest.php | 4 +- .../Limitation/RolePolicyLimitationTest.php | 6 +- .../User/Limitation/SectionLimitationTest.php | 4 +- .../User/Limitation/StatusLimitationTest.php | 4 +- .../User/Limitation/SubtreeLimitationTest.php | 4 +- .../Limitation/UserGroupLimitationTest.php | 4 +- .../Compiler/FieldTypeRegistryPassTest.php | 4 +- .../Search/FieldTypeRegistryPassTest.php | 4 +- ...erionFieldValueHandlerRegistryPassTest.php | 4 +- .../Legacy/SortClauseConverterPassTest.php | 6 +- .../ExternalStorageRegistryPassTest.php | 12 +- .../FieldValueConverterRegistryPassTest.php | 2 +- .../RoleLimitationConverterPassTest.php | 2 +- tests/lib/Event/BookmarkServiceTest.php | 8 +- tests/lib/Event/ContentServiceTest.php | 68 +- tests/lib/Event/ContentTypeServiceTest.php | 70 +- tests/lib/Event/LanguageServiceTest.php | 28 +- tests/lib/Event/LocationServiceTest.php | 42 +- tests/lib/Event/ObjectStateServiceTest.php | 40 +- tests/lib/Event/RoleServiceTest.php | 60 +- tests/lib/Event/SectionServiceTest.php | 24 +- tests/lib/Event/TrashServiceTest.php | 24 +- tests/lib/Event/URLAliasServiceTest.php | 20 +- tests/lib/Event/URLServiceTest.php | 6 +- tests/lib/Event/URLWildcardServiceTest.php | 16 +- tests/lib/Event/UserPreferenceServiceTest.php | 4 +- tests/lib/Event/UserServiceTest.php | 54 +- tests/lib/FieldType/APIFieldTypeTest.php | 12 +- tests/lib/FieldType/FileSizeValidatorTest.php | 14 +- .../PathGenerator/LegacyPathGeneratorTest.php | 7 +- .../Url/Gateway/DoctrineStorageTest.php | 10 +- tests/lib/FieldType/Url/UrlStorageTest.php | 16 +- .../SudoMainLocationLoaderTest.php | 6 +- tests/lib/Helper/ContentPreviewHelperTest.php | 10 +- tests/lib/Helper/FieldHelperTest.php | 4 +- .../Helper/PreviewLocationProviderTest.php | 6 +- tests/lib/Helper/TranslationHelperTest.php | 33 +- .../IO/IOBinarydataHandler/FlysystemTest.php | 2 +- .../IO/IOMetadataHandler/FlysystemTest.php | 2 +- tests/lib/IO/UrlDecorator/PrefixTest.php | 9 +- tests/lib/IO/UrlRedecoratorTest.php | 4 +- .../Limitation/BlockingLimitationTypeTest.php | 32 +- .../ContentTypeLimitationTypeTest.php | 36 +- .../Limitation/LocationLimitationTypeTest.php | 36 +- .../NewObjectStateLimitationTypeTest.php | 32 +- .../ObjectStateLimitationTypeTest.php | 12 +- .../ParentContentTypeLimitationTypeTest.php | 32 +- .../ParentDepthLimitationTypeTest.php | 24 +- .../lib/Limitation/RoleLimitationTypeTest.php | 10 +- .../Limitation/SectionLimitationTypeTest.php | 36 +- .../SiteAccessLimitationTypeTest.php | 28 +- .../Limitation/StatusLimitationTypeTest.php | 28 +- .../Limitation/SubtreeLimitationTypeTest.php | 38 +- .../MVC/Symfony/Controller/ControllerTest.php | 4 +- .../RouteReferenceGenerationEventTest.php | 4 +- .../Symfony/Event/ScopeChangeEventTest.php | 2 +- .../LanguageSwitchListenerTest.php | 8 +- .../Relation/ParameterProviderTest.php | 11 +- .../RelationList/ParameterProviderTest.php | 11 +- .../LocaleParameterProviderTest.php | 7 +- .../View/ParameterProviderRegistryTest.php | 6 +- .../Matcher/ContentBased/DepthTest.php | 14 +- .../Matcher/ContentBased/Id/ContentTest.php | 14 +- .../ContentBased/Id/ContentTypeGroupTest.php | 14 +- .../ContentBased/Id/ContentTypeTest.php | 14 +- .../Matcher/ContentBased/Id/LocationTest.php | 14 +- .../ContentBased/Id/ParentContentTypeTest.php | 9 +- .../ContentBased/Id/ParentLocationTest.php | 14 +- .../Matcher/ContentBased/Id/RemoteTest.php | 14 +- .../Matcher/ContentBased/Id/SectionTest.php | 14 +- .../Identifier/ContentTypeTest.php | 14 +- .../Identifier/ParentContentTypeTest.php | 9 +- .../ContentBased/Identifier/SectionTest.php | 9 +- .../ContentBased/MultipleValuedTest.php | 6 +- .../Matcher/ContentBased/UrlAliasTest.php | 16 +- .../lib/MVC/Symfony/Routing/GeneratorTest.php | 9 +- .../Routing/RouteReferenceGeneratorTest.php | 13 +- .../Symfony/Routing/RouteReferenceTest.php | 8 +- .../Symfony/Routing/SimplifiedRequestTest.php | 7 +- .../Symfony/Routing/UrlAliasGeneratorTest.php | 34 +- .../Symfony/Routing/UrlAliasRouterTest.php | 55 +- .../MVC/Symfony/Security/HttpUtilsTest.php | 23 +- tests/lib/MVC/Symfony/Security/UserTest.php | 10 +- .../MVC/Symfony/Security/UserWrappedTest.php | 2 +- .../Symfony/Security/Voter/CoreVoterTest.php | 28 +- .../Security/Voter/ValueObjectVoterTest.php | 28 +- .../Symfony/SiteAccess/RouterBaseTestCase.php | 2 +- .../SiteAccess/RouterHostElementTest.php | 13 +- .../SiteAccess/RouterHostPortURITest.php | 12 +- .../Symfony/SiteAccess/RouterHostTextTest.php | 4 +- .../Symfony/SiteAccess/RouterMapURITest.php | 20 +- .../SiteAccess/RouterSpecialPortsTest.php | 2 +- .../lib/MVC/Symfony/SiteAccess/RouterTest.php | 14 +- .../SiteAccess/RouterURIElement2Test.php | 22 +- .../SiteAccess/RouterURIElementTest.php | 20 +- .../Symfony/SiteAccess/RouterURITextTest.php | 8 +- .../Symfony/Templating/GlobalHelperTest.php | 20 +- .../lib/MVC/Symfony/View/ContentViewTest.php | 14 +- .../View/Renderer/TemplateRendererTest.php | 4 +- .../lib/MVC/Symfony/View/ViewManagerTest.php | 10 +- .../Cache/AbstractCacheHandlerTestCase.php | 6 +- .../AbstractInMemoryCacheHandlerTestCase.php | 6 +- .../InMemoryClearingProxyAdapterTest.php | 12 +- .../Persistence/Cache/ContentHandlerTest.php | 2 +- .../Cache/ContentTypeHandlerTest.php | 2 +- .../Cache/PersistenceHandlerTest.php | 24 +- .../Cache/TransactionHandlerTest.php | 6 +- .../Persistence/Cache/TrashHandlerTest.php | 8 +- .../lib/Persistence/Cache/URLHandlerTest.php | 2 +- .../lib/Persistence/Cache/UserHandlerTest.php | 6 +- .../lib/Persistence/FieldTypeRegistryTest.php | 10 +- .../Bookmark/Gateway/DoctrineDatabaseTest.php | 14 +- .../Legacy/Bookmark/HandlerTest.php | 12 +- .../Legacy/Bookmark/MapperTest.php | 4 +- .../Legacy/Content/ContentHandlerTest.php | 50 +- .../Legacy/Content/FieldHandlerTest.php | 28 +- .../FieldValue/Converter/AuthorTest.php | 8 +- .../FieldValue/Converter/CheckboxTest.php | 8 +- .../FieldValue/Converter/CountryTest.php | 22 +- .../FieldValue/Converter/DateAndTimeTest.php | 22 +- .../Content/FieldValue/Converter/ISBNTest.php | 7 +- .../FieldValue/Converter/KeywordTest.php | 8 +- .../FieldValue/Converter/MediaTest.php | 4 +- .../FieldValue/Converter/RelationListTest.php | 12 +- .../FieldValue/Converter/RelationTest.php | 2 +- .../FieldValue/Converter/SelectionTest.php | 16 +- .../FieldValue/Converter/TextBlockTest.php | 8 +- .../FieldValue/Converter/TextLineTest.php | 10 +- .../Content/FieldValue/Converter/TimeTest.php | 12 +- .../Content/FieldValue/Converter/UrlTest.php | 8 +- .../FieldValueConverterRegistryTest.php | 6 +- .../Content/Gateway/DoctrineDatabaseTest.php | 80 +- .../Language/CachingLanguageHandlerTest.php | 16 +- .../Language/Gateway/DoctrineDatabaseTest.php | 10 +- .../Content/Language/LanguageHandlerTest.php | 18 +- .../Legacy/Content/Language/MapperTest.php | 4 +- .../Content/Language/MaskGeneratorTest.php | 22 +- .../Location/Gateway/DoctrineDatabaseTest.php | 104 +- .../Gateway/DoctrineDatabaseTrashTest.php | 51 +- .../Legacy/Content/Location/MapperTest.php | 10 +- .../Content/Location/TrashHandlerTest.php | 16 +- .../Legacy/Content/LocationHandlerTest.php | 28 +- .../Persistence/Legacy/Content/MapperTest.php | 26 +- .../Gateway/DoctrineDatabaseTest.php | 38 +- .../Legacy/Content/ObjectState/MapperTest.php | 12 +- .../ObjectState/ObjectStateHandlerTest.php | 42 +- .../Section/Gateway/DoctrineDatabaseTest.php | 18 +- .../Content/Section/SectionHandlerTest.php | 20 +- .../Legacy/Content/StorageRegistryTest.php | 4 +- .../Legacy/Content/TreeHandlerTest.php | 16 +- .../Content/Type/ContentTypeHandlerTest.php | 60 +- .../ContentUpdater/Action/AddFieldTest.php | 18 +- .../ContentUpdater/Action/RemoveFieldTest.php | 6 +- .../Content/Type/ContentUpdaterTest.php | 4 +- .../Type/Gateway/DoctrineDatabaseTest.php | 66 +- .../Legacy/Content/Type/MapperTest.php | 16 +- .../Update/Handler/DoctrineDatabaseTest.php | 6 +- .../UrlAlias/Gateway/DoctrineDatabaseTest.php | 38 +- .../Content/UrlAlias/UrlAliasHandlerTest.php | 200 +- .../Content/UrlAlias/UrlAliasMapperTest.php | 11 +- .../Gateway/DoctrineDatabaseTest.php | 12 +- .../UrlWildcard/UrlWildcardHandlerTest.php | 14 +- .../UrlWildcard/UrlWildcardMapperTest.php | 6 +- .../Gateway/DoctrineDatabaseTest.php | 12 +- .../Legacy/Notification/HandlerTest.php | 12 +- .../Legacy/Notification/MapperTest.php | 6 +- .../Legacy/TransactionHandlerTest.php | 10 +- .../Persistence/Legacy/URL/HandlerTest.php | 14 +- .../lib/Persistence/Legacy/URL/MapperTest.php | 4 +- .../CriterionHandlerTestCase.php | 4 +- .../Query/CriterionHandler/LogicalAndTest.php | 2 +- .../Query/CriterionHandler/LogicalNotTest.php | 2 +- .../Query/CriterionHandler/LogicalOrTest.php | 2 +- .../Query/CriterionHandler/MatchAllTest.php | 4 +- .../Query/CriterionHandler/MatchNoneTest.php | 4 +- .../Query/CriterionHandler/PatternTest.php | 4 +- .../Query/CriterionHandler/ValidityTest.php | 4 +- .../User/Role/LimitationConverterTest.php | 4 +- .../Legacy/User/UserHandlerTest.php | 90 +- .../Gateway/DoctrineDatabaseTest.php | 8 +- .../Legacy/UserPreference/HandlerTest.php | 6 +- .../Legacy/UserPreference/MapperTest.php | 2 +- ...sformationProcessorDefinitionBasedTest.php | 8 +- ...ransformationProcessorPcreCompilerTest.php | 20 +- ...ormationProcessorPreprocessedBasedTest.php | 6 +- .../ContentThumbnail/StaticStrategyTest.php | 2 +- .../BookmarkServiceDecoratorTest.php | 8 +- .../Decorator/ContentServiceDecoratorTest.php | 58 +- .../ContentTypeServiceDecoratorTest.php | 62 +- .../FieldTypeServiceDecoratorTest.php | 6 +- .../LanguageServiceDecoratorTest.php | 24 +- .../LocationServiceDecoratorTest.php | 38 +- .../NotificationServiceDecoratorTest.php | 12 +- .../ObjectStateServiceDecoratorTest.php | 36 +- .../Decorator/RoleServiceDecoratorTest.php | 54 +- .../Decorator/SearchServiceDecoratorTest.php | 10 +- .../Decorator/SectionServiceDecoratorTest.php | 24 +- .../Decorator/SettingServiceDecoratorTest.php | 12 +- .../TranslationServiceDecoratorTest.php | 4 +- .../Decorator/TrashServiceDecoratorTest.php | 12 +- .../URLAliasServiceDecoratorTest.php | 20 +- .../Decorator/URLServiceDecoratorTest.php | 12 +- .../URLWildcardServiceDecoratorTest.php | 10 +- .../UserPreferenceServiceDecoratorTest.php | 8 +- .../Decorator/UserServiceDecoratorTest.php | 54 +- .../Helper/FieldTypeRegistryTest.php | 10 +- .../CachedPermissionServiceTest.php | 11 +- .../PermissionCriterionResolverTest.php | 14 +- .../Repository/Service/Mock/BookmarkTest.php | 18 +- .../Service/Mock/ContentDomainMapperTest.php | 20 +- .../Repository/Service/Mock/ContentTest.php | 181 +- .../Service/Mock/PermissionTest.php | 52 +- .../Service/Mock/RelationProcessorTest.php | 19 +- .../Service/Mock/RepositoryTest.php | 10 +- .../lib/Repository/Service/Mock/RoleTest.php | 36 +- .../Repository/Service/Mock/SearchTest.php | 42 +- .../Repository/Service/Mock/UrlAliasTest.php | 188 +- tests/lib/Repository/Service/Mock/UrlTest.php | 33 +- .../Service/Mock/UrlWildcardTest.php | 44 +- .../Mock/UserPasswordValidatorTest.php | 2 +- .../Service/Mock/UserPreferenceTest.php | 12 +- .../AbstractServiceTestCase.php | 6 +- .../ContentTypeServiceTest.php | 4 +- .../Language/LanguageResolverTest.php | 2 +- .../SiteAccessAware/LanguageServiceTest.php | 7 +- .../ObjectStateServiceTest.php | 4 +- .../SiteAccessAware/SearchServiceTest.php | 4 +- .../SiteAccessAware/TrashServiceTest.php | 7 +- .../SiteAccessAware/UrlAliasServiceTest.php | 4 +- .../SiteAccessAware/UserServiceTest.php | 4 +- .../Values/Content/LanguageTest.php | 8 +- .../Repository/Values/Content/SectionTest.php | 8 +- .../Values/Content/TrashItemTest.php | 8 +- .../Values/MultiLanguageTestTrait.php | 8 +- .../ObjectState/ObjectStateGroupTest.php | 10 +- .../Values/ObjectState/ObjectStateTest.php | 10 +- .../lib/Repository/Values/User/PolicyTest.php | 10 +- .../Repository/Values/User/UserGroupTest.php | 14 +- tests/lib/Search/FieldNameResolverTest.php | 28 +- .../Legacy/Content/HandlerContentSortTest.php | 16 +- .../Legacy/Content/HandlerContentTest.php | 128 +- .../Content/HandlerLocationSortTest.php | 36 +- .../Legacy/Content/HandlerLocationTest.php | 138 +- 406 files changed, 13579 insertions(+), 33938 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 1b1df8ebd6..e85dc848c9 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -18684,66 +18684,6 @@ parameters: count: 1 path: tests/bundle/Core/ChainConfigResolverTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:getParameterProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testGetDefaultNamespace\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testGetParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testGetParameterInvalid\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testHasParameterFalse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testHasParameterTrue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testPriority\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testReSortResolvers\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testSetDefaultNamespace\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\ChainConfigResolverTest\:\:testSortResolvers\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/ChainConfigResolverTest.php - - message: '#^Parameter \#1 \$resolver of method Ibexa\\Bundle\\Core\\DependencyInjection\\Configuration\\ChainConfigResolver\:\:addResolver\(\) expects Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type @@ -18756,90 +18696,18 @@ parameters: count: 1 path: tests/bundle/Core/ChainConfigResolverTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ChainConfigResolverPassTest\:\:addResolverProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ChainConfigResolverPassTest\:\:testAddResolver\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ChainRoutingPassTest\:\:addRouterProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ChainRoutingPassTest\:\:testAddRouter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ChainRoutingPassTest\:\:testAddRouterWithDefaultRouter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\FieldTypeParameterProviderRegistryPassTest\:\:tagsProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\FieldTypeParameterProviderRegistryPassTest\:\:testRegisterFieldType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\FieldTypeParameterProviderRegistryPassTest\:\:testRegisterFieldTypeNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\FragmentPassTest\:\:testProcess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php - - message: '#^Offset 0 might not exist on array\|string\|null\.$#' identifier: offsetAccess.notFound count: 1 path: tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\NotificationRendererPassTest\:\:testAddRenderer\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\NotificationRendererPassTest\:\:testAddRendererWithoutAliasThrowsLogicException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\PlaceholderProviderPassTest\:\:testAddProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\PlaceholderProviderPassTest\:\:testAddProviderWithoutType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\QueryTypePassTest\:\:tagsProvider\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue @@ -18858,36 +18726,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Compiler/RegisterSearchEnginePassTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\RegisterStorageEnginePassTest\:\:testRegisterDefaultStorageEngine\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\RegisterStorageEnginePassTest\:\:testRegisterStorageEngine\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\RegisterStorageEnginePassTest\:\:testRegisterStorageEngineNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\SlugConverterConfigurationPassTest\:\:configurationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\SlugConverterConfigurationPassTest\:\:testMergeConfigurations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\SlugConverterConfigurationPassTest\:\:testMergeConfigurations\(\) has parameter \$commandsToAdd with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -18918,30 +18756,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Compiler/TranslationCollectorPassTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\URLHandlerPassTest\:\:testRegisterURLHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\URLHandlerPassTest\:\:testRegisterURLHandlerNoScheme\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ViewProvidersPassTest\:\:addViewProviderProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ViewProvidersPassTest\:\:testAddViewProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Compiler\\ViewProvidersPassTest\:\:testAddViewProvider\(\) has parameter \$declaredPriority with no type specified\.$#' identifier: missingType.parameter @@ -18954,18 +18768,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingParserTest\:\:provideSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingParserTest\:\:testContainsDynamicSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingParserTest\:\:testContainsDynamicSettings\(\) has parameter \$expected with no type specified\.$#' identifier: missingType.parameter @@ -18978,12 +18780,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingParserTest\:\:testParseComplexSetting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingParserTest\:\:testParseComplexSetting\(\) has parameter \$expected with no type specified\.$#' identifier: missingType.parameter @@ -18996,12 +18792,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ComplexSettings\\ComplexSettingValueResolverTest\:\:testGetArgumentValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingValueResolverTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\ConfigResolver\\ChainConfigResolverTest\:\:hasParameterProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19086,54 +18876,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:sessionSettingsProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testApiKeysSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testDefaultPage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testIndexPage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testMiscSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testNoUserSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testNonExistentSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testSessionSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testSessionSettings\(\) has parameter \$expected with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19146,12 +18888,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\CommonTest\:\:testUserSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19170,24 +18906,12 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ContentTest\:\:contentSettingsProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ContentTest\:\:getMinimalConfiguration\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ContentTest\:\:testContentSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ContentTest\:\:testContentSettings\(\) has parameter \$config with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19200,12 +18924,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ContentTest\:\:testDefaultContentSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19218,18 +18936,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\FieldType\\ImageAssetTest\:\:testDefaultImageAssetSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\FieldType\\ImageAssetTest\:\:testImageAssetSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\FieldType\\ImageAssetTest\:\:testImageAssetSettings\(\) has parameter \$config with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19248,12 +18954,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\IOTest\:\:testHandlersConfig\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19278,18 +18978,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ImageTest\:\:testPrePostParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ImageTest\:\:testVariations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19309,44 +18997,20 @@ parameters: path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\LanguagesTest\:\:testLanguagesSingleSiteaccess\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' + identifier: argument.type count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\LanguagesTest\:\:testLanguagesSiteaccessGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:getExpectedConfigFieldDefinitionSettingsTemplates\(\) has parameter \$config with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php + path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\LanguagesTest\:\:testTranslationSiteAccesses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\LanguagesTest\:\:testTranslationSiteAccessesWithGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php - - - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:getExpectedConfigFieldDefinitionSettingsTemplates\(\) has parameter \$config with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:getExpectedConfigFieldDefinitionSettingsTemplates\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:getExpectedConfigFieldDefinitionSettingsTemplates\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php @@ -19368,18 +19032,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:testFieldDefinitionSettingsTemplates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\TemplatesTest\:\:testFieldTemplates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19398,18 +19050,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ViewTest\:\:testContentView\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Parser\\ViewTest\:\:testLocationView\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' identifier: argument.type @@ -19434,66 +19074,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testConstruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testGetSetContextualizer\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testMapConfigArray\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testMapConfigClosure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testMapConfigHookableMapperObject\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testMapConfigMapperObject\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ConfigurationProcessorTest\:\:testMapSetting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:fullMapConfigArrayProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:setContextualParameterProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testFullMapConfigArray\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testFullMapConfigArray\(\) has parameter \$config with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19548,66 +19128,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testGetSetAvailableSiteAccesses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testGetSetContainer\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testGetSetGroupsBySA\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testGetSetNamespace\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testGetSetSANodeName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testMapConfigArray\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testMapConfigArraySecondLevel\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testMapConfigArrayUnique\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testMapSetting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testSetContextualParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\ContextualizerTest\:\:testSetContextualParameter\(\) has parameter \$parameterName with no type specified\.$#' identifier: missingType.parameter @@ -19650,24 +19170,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:isDynamicSettingProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:parseDynamicSettingProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:testIsDynamicSetting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:testIsDynamicSetting\(\) has parameter \$expected with no type specified\.$#' identifier: missingType.parameter @@ -19680,12 +19182,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:testParseDynamicSetting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:testParseDynamicSetting\(\) has parameter \$expected with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -19698,42 +19194,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\SiteAccessAware\\DynamicSettingParserTest\:\:testParseDynamicSettingFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Suggestion\\Collector\\SuggestionCollectorTest\:\:testAddHasGetSuggestions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Collector/SuggestionCollectorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Suggestion\\ConfigSuggestionTest\:\:testConfigSuggestion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Suggestion\\ConfigSuggestionTest\:\:testEmptyConstructor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Suggestion\\Formatter\\YamlSuggestionFormatterTest\:\:testFormat\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Configuration\\Suggestion\\Formatter\\YamlSuggestionFormatterTest\:\:testFormatNoSuggestion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php - - message: '#^Argument of an invalid type array\|bool\|float\|int\|string\|null supplied for foreach, only iterables are supported\.$#' identifier: foreach.nonIterable @@ -19758,12 +19218,6 @@ parameters: count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:cacheConfigurationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:getFilteringQueryBuilderData\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue @@ -19777,232 +19231,100 @@ parameters: path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:repositoriesConfigurationFieldGroupsProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testCacheConfiguration\(\) has parameter \$customCacheConfig with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testCacheConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationFieldGroups\(\) has parameter \$expectedRepositories with no type specified\.$#' + identifier: missingType.parameter count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testCacheConfiguration\(\) has parameter \$customCacheConfig with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationFieldGroups\(\) has parameter \$repositories with no type specified\.$#' + identifier: missingType.parameter count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testCacheConfigurationCustomPurgeService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' + identifier: argument.type count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testImageMagickConfigurationBasic\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$value of function count expects array\|Countable, array\|bool\|float\|int\|string\|null given\.$#' + identifier: argument.type count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testImageMagickConfigurationFilters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, array\|bool\|float\|int\|string\|null given\.$#' + identifier: argument.type + count: 2 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testImagePlaceholderConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$haystack of static method PHPUnit\\Framework\\Assert\:\:assertContains\(\) expects iterable, array\|bool\|float\|int\|string\|null given\.$#' + identifier: argument.type count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testLocaleConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge_recursive expects array, array\|bool\|float\|int\|string\|null given\.$#' + identifier: argument.type count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRegisteredPolicies\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$minimalConfig has no type specified\.$#' + identifier: missingType.property count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$minimalConfig is never read, only written\.$#' + identifier: property.onlyWritten count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationCompatibility\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$siteaccessConfig has no type specified\.$#' + identifier: missingType.property count: 1 path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationCompatibility2\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:policiesConfigProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php + path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$configOne with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php + path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationFieldGroups\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$configTwo with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php + path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationFieldGroups\(\) has parameter \$expectedRepositories with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$expectedConfig with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php + path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationFieldGroups\(\) has parameter \$repositories with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Stub\\QueryTypeBundle\\QueryType\\TestQueryType\:\:getQuery\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationSearchEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRepositoriesConfigurationStorageEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testRoutingConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testSiteAccessConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testSiteAccessNoConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:testUrlAliasConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, array\|bool\|float\|int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, array\|bool\|float\|int\|string\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Parameter \#2 \$haystack of static method PHPUnit\\Framework\\Assert\:\:assertContains\(\) expects iterable, array\|bool\|float\|int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge_recursive expects array, array\|bool\|float\|int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$minimalConfig has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$minimalConfig is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\IbexaCoreExtensionTest\:\:\$siteaccessConfig has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:policiesConfigProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$configOne with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$configTwo with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddConfig\(\) has parameter \$expectedConfig with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\PoliciesConfigBuilderTest\:\:testAddResource\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\YamlPolicyProviderTest\:\:testMultipleYaml\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Security\\PolicyProvider\\YamlPolicyProviderTest\:\:testSingleYaml\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Stub\\QueryTypeBundle\\QueryType\\TestQueryType\:\:getQuery\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/DependencyInjection/Stub/QueryTypeBundle/QueryType/TestQueryType.php + path: tests/bundle/Core/DependencyInjection/Stub/QueryTypeBundle/QueryType/TestQueryType.php - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\DependencyInjection\\Stub\\QueryTypeBundle\\QueryType\\TestQueryType\:\:getQuery\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query but return statement is missing\.$#' @@ -20064,30 +19386,6 @@ parameters: count: 2 path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:indexDeleteProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:indexingProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:testIndexing\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\BackgroundIndexingTerminateListenerTest\:\:testIndexing\(\) has parameter \$values with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -20136,18 +19434,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConfigScopeListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConfigScopeListenerTest\:\:testOnConfigScopeChange\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php - - message: '#^Parameter \#1 \$viewProviders of method Ibexa\\Bundle\\Core\\EventListener\\ConfigScopeListener\:\:setViewProviders\(\) expects array, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type @@ -20166,90 +19452,12 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/ConfigScopeListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConsoleCommandListenerTest\:\:testDefaultSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConsoleCommandListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConsoleCommandListenerTest\:\:testInvalidSiteAccessDev\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConsoleCommandListenerTest\:\:testInvalidSiteAccessProd\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ConsoleCommandListenerTest\:\:testValidSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:getListener\(\) has no return type specified\.$#' identifier: missingType.return count: 1 path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:testDownloadNameOverrideWorks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:testGeneratesCorrectRouteReference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:testIgnoresOtherRoutes\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:testThrowsExceptionOnBadContentParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ContentDownloadRouteReferenceListenerTest\:\:testThrowsExceptionOnBadFieldIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\IndexRequestListenerTest\:\:indexPageProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/IndexRequestListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\IndexRequestListenerTest\:\:testOnKernelRequestIndexNotOnIndexPage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/IndexRequestListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\IndexRequestListenerTest\:\:testOnKernelRequestIndexOnIndexPage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/IndexRequestListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\IndexRequestListenerTest\:\:testOnKernelRequestIndexOnIndexPage\(\) has parameter \$configuredIndexPath with no type specified\.$#' identifier: missingType.parameter @@ -20268,12 +19476,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/IndexRequestListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\IndexRequestListenerTest\:\:testSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/IndexRequestListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\LocaleListenerTest\:\:onKernelRequestProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -20310,30 +19512,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/LocaleListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\OriginalRequestListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/OriginalRequestListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\OriginalRequestListenerTest\:\:testOnKernelRequestNoOriginalRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/OriginalRequestListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\OriginalRequestListenerTest\:\:testOnKernelRequestNotMaster\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/OriginalRequestListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\OriginalRequestListenerTest\:\:testOnKernelRequestWithOriginalRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/OriginalRequestListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RejectExplicitFrontControllerRequestsListenerTest\:\:prohibitedRequestDataProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -20347,82 +19525,28 @@ parameters: path: tests/bundle/Core/EventListener/RejectExplicitFrontControllerRequestsListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestForward\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:\$event is never read, only written\.$#' + identifier: property.onlyWritten count: 1 path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestForwardSubRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php + message: '#^Parameter \#1 \$configResolver of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php + message: '#^Parameter \#2 \$urlAliasRouter of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Symfony\\Component\\Routing\\RouterInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestRedirectPrependSiteaccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestRedirectSubRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testOnKernelRequestRedirectWithLocationId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:testSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\EventListener\\RequestEventListenerTest\:\:\$event is never read, only written\.$#' - identifier: property.onlyWritten - count: 1 - path: tests/bundle/Core/EventListener/RequestEventListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RoutingListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\RoutingListenerTest\:\:testOnSiteAccessMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - - - message: '#^Parameter \#1 \$configResolver of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - - - message: '#^Parameter \#2 \$urlAliasRouter of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Symfony\\Component\\Routing\\RouterInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/bundle/Core/EventListener/RoutingListenerTest.php - - - - message: '#^Parameter \#3 \$urlAliasGenerator of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Ibexa\\Core\\MVC\\Symfony\\Routing\\Generator, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/bundle/Core/EventListener/RoutingListenerTest.php + message: '#^Parameter \#3 \$urlAliasGenerator of class Ibexa\\Bundle\\Core\\EventListener\\RoutingListener constructor expects Ibexa\\Core\\MVC\\Symfony\\Routing\\Generator, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/bundle/Core/EventListener/RoutingListenerTest.php - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SessionSetDynamicNameListenerTest\:\:testOnSiteAccessMatch\(\) has parameter \$configuredSessionStorageOptions with no type specified\.$#' @@ -20436,24 +19560,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/SessionSetDynamicNameListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:siteAccessMatchProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/SiteAccessListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/SiteAccessListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:testOnSiteAccessMatchMasterRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/SiteAccessListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:testOnSiteAccessMatchMasterRequest\(\) has parameter \$expectedSemanticPathinfo with no type specified\.$#' identifier: missingType.parameter @@ -20478,12 +19584,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/SiteAccessListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:testOnSiteAccessMatchSubRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/SiteAccessListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\SiteAccessListenerTest\:\:testOnSiteAccessMatchSubRequest\(\) has parameter \$expectedViewParameters with no type specified\.$#' identifier: missingType.parameter @@ -20604,30 +19704,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/Stubs/ViewProvider.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ViewControllerListenerTest\:\:testGetControllerMatchedView\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ViewControllerListenerTest\:\:testGetControllerNoBuilder\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ViewControllerListenerTest\:\:testGetControllerWithClosure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventListener\\ViewControllerListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\EventListener\\ViewControllerListenerTest\:\:\$controllerResolver \(PHPUnit\\Framework\\MockObject\\MockObject&Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver\) does not accept PHPUnit\\Framework\\MockObject\\MockObject&Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface\.$#' identifier: assign.propertyType @@ -20640,18 +19716,6 @@ parameters: count: 1 path: tests/bundle/Core/EventListener/ViewControllerListenerTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:provideSetRequests\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\EventSubscriber\\CrowdinRequestLocaleSubscriberTest\:\:testSetLocale\(\) has parameter \$shouldHaveCustomLocale with no type specified\.$#' identifier: missingType.parameter @@ -20688,18 +19752,6 @@ parameters: count: 1 path: tests/bundle/Core/Fragment/DirectFragmentRendererTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Fragment\\FragmentListenerFactoryTest\:\:buildFragmentListenerProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Fragment\\FragmentListenerFactoryTest\:\:testBuildFragmentListener\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Fragment\\FragmentListenerFactoryTest\:\:testBuildFragmentListener\(\) has parameter \$isFragmentCandidate with no type specified\.$#' identifier: missingType.parameter @@ -20712,18 +19764,6 @@ parameters: count: 1 path: tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Fragment\\FragmentListenerFactoryTest\:\:testBuildFragmentListenerNoRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\AliasCleanerTest\:\:testRemoveAliases\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Imagine/AliasCleanerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\AliasGeneratorTest\:\:supportsValueProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -20731,38798 +19771,18728 @@ parameters: path: tests/bundle/Core/Imagine/AliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\BinaryLoaderTest\:\:testFindBadPathRoot\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:getFilter\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/BinaryLoaderTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\BinaryLoaderTest\:\:testFindMissing\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionNoDefaultValue\(\) has parameter \$optionName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/BinaryLoaderTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\BinaryLoaderTest\:\:testFindNotFound\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionNoDefaultValue\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/BinaryLoaderTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\Resolver\\ProxyResolverTest\:\:testResolveAndRemovePortUsingProxyHost\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$defaultValue with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\Resolver\\ProxyResolverTest\:\:testResolveAndRemovePortUsingProxyHostWithTrailingSlash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$optionName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\Resolver\\ProxyResolverTest\:\:testResolveUsingProxyHostWithTrailingSlash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php + path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\Resolver\\RelativeResolverTest\:\:testResolve\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$color with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/Resolver/RelativeResolverTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\ResolverFactoryTest\:\:testCreateProxyCacheResolver\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$thickX with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Cache\\ResolverFactoryTest\:\:testCreateRelativeCacheResolver\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$thickY with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:getFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:getSetOptionNoDefaulValueProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\CropFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:getSetOptionWithDefaulValueProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleDownOnlyFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionNoDefaultValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleExactFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionNoDefaultValue\(\) has parameter \$optionName with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionNoDefaultValue\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter + message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScalePercentFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$defaultValue with no type specified\.$#' - identifier: missingType.parameter + message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$optionName with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\SwirlFilterLoaderTest\:\:testLoadWithOption\(\) has parameter \$degrees with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptionWithDefaultValue\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:getVariationProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\AbstractFilterTest\:\:testGetSetOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:supportsValueProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testAll\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalFound\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetEzVariationImagineFilters\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalNotFound\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetEzVariationImagineOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetEzVariationNoReference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationSkipsPlaceholderGeneration\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetEzVariationWithReference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:\$placeholderOptions type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetNoEzVariationInvalidImagineFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertColorEquals\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\FilterConfigurationTest\:\:testGetOnlyImagineFilters\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertColorEquals\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertSizeEquals\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:loadProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertSizeEquals\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:testGetPlaceholder\(\) has parameter \$expectedText with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$color with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:testGetPlaceholder\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$thickX with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + message: '#^Cannot access offset ''path'' on array\{scheme\?\: string, host\?\: string, port\?\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\|false\.$#' + identifier: offsetAccess.nonOffsetAccessible + count: 2 + path: tests/bundle/Core/Routing/DefaultRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoad\(\) has parameter \$thickY with no type specified\.$#' - identifier: missingType.parameter + message: '#^Offset ''scheme'' might not exist on array\{scheme\?\: string, host\: string, port\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\.$#' + identifier: offsetAccess.notFound count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Routing/DefaultRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoadDefaultColor\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Offset ''scheme'' might not exist on array\{scheme\?\: string, host\: string, port\?\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\.$#' + identifier: offsetAccess.notFound count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Routing/DefaultRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Routing/DefaultRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\BorderFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\JsRouting\\ExposedRoutesExtractorTest\:\:getDataForTestGetBaseUrl\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php + path: tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\CropFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouter\:\:setConfigResolver\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php + path: tests/bundle/Core/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\CropFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:resetConfigResolver\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php + path: tests/bundle/Core/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\CropFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$configResolver of method Ibexa\\Bundle\\Core\\Routing\\UrlAliasRouter\:\:setConfigResolver\(\) expects Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php + path: tests/bundle/Core/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\CropFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php + message: '#^Parameter \#1 \$siteAccessMatcherRegistry of class Ibexa\\Bundle\\Core\\SiteAccess\\MatcherBuilder constructor expects Ibexa\\Bundle\\Core\\SiteAccess\\SiteAccessMatcherRegistryInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 3 + path: tests/bundle/Core/SiteAccess/MatcherBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\GrayscaleFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$matchers of class Ibexa\\Bundle\\Core\\SiteAccess\\SiteAccessMatcherRegistry constructor expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/GrayscaleFilterLoaderTest.php + path: tests/bundle/Core/SiteAccess/SiteAccessMatcherRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ReduceNoiseFilterLoaderTest\:\:testLoadInvalidDriver\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleDownOnlyFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has parameter \$schemes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleDownOnlyFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleDownOnlyFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has parameter \$n with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleDownOnlyFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has parameter \$schemes with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleExactFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleExactFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createSearchResults\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleExactFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createSearchResults\(\) has parameter \$urls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php + path: tests/bundle/Core/URLChecker/URLCheckerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleExactFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Argument of an invalid type PHPUnit\\Framework\\MockObject\\MockObject supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php + path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:getDataCollectorMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php + path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:testLoadHeighten\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @var above foreach loop does not specify variable name\.$#' + identifier: varTag.noVariable count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php + path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Bundle\\IO\\DependencyInjection\\ConfigurationFactoryTestCase\:\:provideExpectedParentServiceId\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php + path: tests/bundle/IO/DependencyInjection/ConfigurationFactoryTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method object\:\:decorate\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php + path: tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleFilterLoaderTest\:\:testLoadWiden\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Using nullsafe method call on non\-nullable type Symfony\\Component\\HttpFoundation\\Response\. Use \-\> instead\.$#' + identifier: nullsafe.neverNull count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php + path: tests/bundle/IO/EventListener/StreamFileListenerTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleHeightDownOnlyFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\BaseCoreFieldTypeIntegrationTestCase\:\:getDatabaseConnection\(\) should return Doctrine\\DBAL\\Connection but returns object\.$#' + identifier: return.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php + path: tests/integration/Core/BaseCoreFieldTypeIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleHeightDownOnlyFilterLoaderTest\:\:testLoadInvalid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @return with type object is not subtype of native type Doctrine\\DBAL\\Connection\.$#' + identifier: return.phpDocType count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php + path: tests/integration/Core/BaseCoreFieldTypeIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleHeightFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method object\:\:match\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php + path: tests/integration/Core/BasicKernelTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleHeightFilterLoaderTest\:\:testLoadFail\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:getContext\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php + path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php - - message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count + message: '#^Method Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:providerOfFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php + path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScalePercentFilterLoaderTest\:\:loadInvalidProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:\$gateway \(Ibexa\\Core\\FieldType\\BinaryBase\\BinaryBaseStorage\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\FieldType\\BinaryBase\\BinaryBaseStorage\\Gateway\.$#' + identifier: assign.propertyType count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php + path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScalePercentFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' + identifier: property.nonObject + count: 4 + path: tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScalePercentFilterLoaderTest\:\:testLoadInvalidOptions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php + path: tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScalePercentFilterLoaderTest\:\:testLoadInvalidOptions\(\) has parameter \$options with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\FieldType\\FieldConstraintsStorage\\Stub\\ExampleFieldConstraintsStorage\:\:__construct\(\) has parameter \$fieldConstraints with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleWidthDownOnlyFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php + path: tests/integration/Core/FieldType/FieldConstraintsStorage/Stub/ExampleFieldConstraintsStorage.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleWidthDownOnlyFilterLoaderTest\:\:testLoadInvalid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldTypeConstraints\[\]\)\: Unexpected token "\\n ", expected variable at offset 82 on line 2$#' + identifier: phpDoc.parseError count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php + path: tests/integration/Core/FieldType/FieldConstraintsStorage/Stub/ExampleFieldConstraintsStorage.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleWidthFilterLoaderTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\IO\\BinarydataHandler\\FlysystemTest\:\:getBinaryDataHandler\(\) should return Ibexa\\Core\\IO\\IOBinarydataHandler but returns object\.$#' + identifier: return.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php + path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\ScaleWidthFilterLoaderTest\:\:testLoadFail\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\IO\\BinarydataHandler\\FlysystemTest\:\:getFlysystemFilesystem\(\) should return League\\Flysystem\\FilesystemOperator but returns object\.$#' + identifier: return.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php + path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php - - message: '#^Static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count + message: '#^Parameter \#1 \$inputStream of method Ibexa\\Contracts\\Core\\IO\\BinaryFileCreateStruct\:\:setInputStream\(\) expects resource, resource\|false given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php + path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\SwirlFilterLoaderTest\:\:loadWithOptionProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$stream of function fclose expects resource, resource\|false given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php + path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\SwirlFilterLoaderTest\:\:testLoadNoOption\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\MemberOfLimitationTest\:\:testCanUserAssignRoleToUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php + path: tests/integration/Core/Limitation/MemberOfLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\SwirlFilterLoaderTest\:\:testLoadWithOption\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\MemberOfLimitationTest\:\:userPermissionLimitationProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php + path: tests/integration/Core/Limitation/MemberOfLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\Loader\\SwirlFilterLoaderTest\:\:testLoadWithOption\(\) has parameter \$degrees with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserCreateContent\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\Filter\\UnsupportedFilterTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserDeleteContent\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\ImageAsset\\AliasGeneratorTest\:\:testGetVariationOfImageAsset\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserDeleteContentTranslation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\ImageAsset\\AliasGeneratorTest\:\:testGetVariationOfNonImageAsset\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserEditOrPublishContent\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\ImageAsset\\AliasGeneratorTest\:\:testSupport\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserCreateContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorConfiguratorTest\:\:testConfigure\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserEditContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:getVariationProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserPublishContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:supportsValueProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalFound\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\RoleLimitationTest\:\:testCanUserAssignRole\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Limitation/RoleLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalFound\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\RoleLimitationTest\:\:userPermissionLimitationProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Limitation/RoleLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalNotFound\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Persistence\\Search\\Content\\IndexerGatewayTest\:\:getDataForContentInSubtree\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationOriginalNotFound\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Persistence\\Search\\Content\\IndexerGatewayTest\:\:getDataForContentSince\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraft\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationSkipsPlaceholderGeneration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationSkipsPlaceholderGeneration\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$contentFieldNameIdentifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testGetVariationWrongValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$contentTypeIdentifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:testSupportsValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Property Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderAliasGeneratorTest\:\:\$placeholderOptions type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createMultilingualContentDraft\(\) has parameter \$multilingualFieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertColorEquals\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createUpdatedDraftVersion2NotAdmin\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertColorEquals\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$id of method Ibexa\\Contracts\\Core\\Repository\\UserService\:\:loadUserGroup\(\) expects int, string given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseContentServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertSizeEquals\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createMultilingualTestContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:assertSizeEquals\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createTestContent\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:getPlaceholderDataProvider\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createTestContentForUpdate\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:testGetPlaceholder\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:testGetPlaceholder\(\) has parameter \$expectedText with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProvider\\GenericProviderTest\:\:testGetPlaceholder\(\) has parameter \$options with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProviderRegistryTest\:\:testConstructor\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php + path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProviderRegistryTest\:\:testGetProviderKnown\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProviderRegistryTest\:\:testGetProviderUnknown\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to method commit\(\) on an unknown class Ibexa\\Solr\\Handler\.$#' + identifier: class.notFound count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\PlaceholderProviderRegistryTest\:\:testSupports\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\VariationPathGenerator\\AliasDirectoryVariationPathGeneratorTest\:\:testGetVariationPath\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrectUnsorted\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/VariationPathGenerator/AliasDirectoryVariationPathGeneratorTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Imagine\\VariationPathGenerator\\OriginalDirectoryVariationPathGeneratorTest\:\:testGetVariationPath\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Imagine/VariationPathGenerator/OriginalDirectoryVariationPathGeneratorTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Cannot access offset ''path'' on array\{scheme\?\: string, host\?\: string, port\?\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\|false\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 2 - path: tests/bundle/Core/Routing/DefaultRouterTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$actualValue with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Offset ''scheme'' might not exist on array\{scheme\?\: string, host\: string, port\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\.$#' - identifier: offsetAccess.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$expectedValue with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Routing/DefaultRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Offset ''scheme'' might not exist on array\{scheme\?\: string, host\: string, port\?\: int\<0, 65535\>, user\?\: string, pass\?\: string, path\?\: string, query\?\: string, fragment\?\: string\}\.$#' - identifier: offsetAccess.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$propertyName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Routing/DefaultRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Parameter \#3 \$length of function substr expects int\|null, int\<0, max\>\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$sortArray with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Routing/DefaultRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\JsRouting\\ExposedRoutesExtractorTest\:\:getDataForTestGetBaseUrl\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/bundle/Core/Routing/JsRouting/ExposedRoutesExtractorTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouter\:\:setConfigResolver\(\)\.$#' - identifier: method.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) has parameter \$additionalProperties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:resetConfigResolver\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createFolder\(\) has parameter \$names with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestDeactivatedUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createRoleWithPolicies\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationCaseRedirectWithRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createRoleWithPolicies\(\) has parameter \$roleName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationCaseRedirectWithRootRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createSimpleContentType\(\) has parameter \$fieldsToDefine with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestResourceCaseRedirectWithRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createUserWithPolicies\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestVirtualCaseRedirectWithRootLocation\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:refreshSearch\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestWithRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:resolveSetupFactory\(\) should return Ibexa\\Contracts\\Core\\Test\\Repository\\SetupFactory but returns object\.$#' + identifier: return.type count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\Routing\\UrlAliasRouterTest\:\:testMatchRequestWithRootLocationAndExclusion\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:sortItems\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Parameter \#1 \$configResolver of method Ibexa\\Bundle\\Core\\Routing\\UrlAliasRouter\:\:setConfigResolver\(\) expects Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:sortItems\(\) has parameter \$items with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/Routing/UrlAliasRouterTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\SiteAccess\\MatcherBuilderTest\:\:testBuildMatcherNoService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:updateFolder\(\) has parameter \$names with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/SiteAccess/MatcherBuilderTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\SiteAccess\\MatcherBuilderTest\:\:testBuildMatcherService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @param references unknown parameter\: \$propertyNames$#' + identifier: parameter.notFound count: 1 - path: tests/bundle/Core/SiteAccess/MatcherBuilderTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\SiteAccess\\MatcherBuilderTest\:\:testBuildMatcherServiceWrongInterface\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @var for variable \$searchHandler contains unknown class Ibexa\\Solr\\Handler\.$#' + identifier: class.notFound count: 1 - path: tests/bundle/Core/SiteAccess/MatcherBuilderTest.php - - - - message: '#^Parameter \#1 \$siteAccessMatcherRegistry of class Ibexa\\Bundle\\Core\\SiteAccess\\MatcherBuilder constructor expects Ibexa\\Bundle\\Core\\SiteAccess\\SiteAccessMatcherRegistryInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 3 - path: tests/bundle/Core/SiteAccess/MatcherBuilderTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Parameter \#1 \$matchers of class Ibexa\\Bundle\\Core\\SiteAccess\\SiteAccessMatcherRegistry constructor expects array\, array\ given\.$#' + message: '#^Parameter \#1 \$string1 of function strcmp expects string, bool\|float\|int\|string given\.$#' identifier: argument.type count: 1 - path: tests/bundle/Core/SiteAccess/SiteAccessMatcherRegistryTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$string2 of function strcmp expects string, bool\|float\|int\|string given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:configureUrlHandlerRegistry\(\) has parameter \$schemes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:\$repository \(Ibexa\\Contracts\\Core\\Repository\\Repository\) does not accept null\.$#' + identifier: assign.propertyType count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTrashServiceTestCase\:\:createTrashItem\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem but returns Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' + identifier: return.type count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseTrashServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has parameter \$n with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$url\.$#' + identifier: property.protected + count: 5 + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createGroupedUrls\(\) has parameter \$schemes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\SearchResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createSearchResults\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:createSearchResults\(\) has parameter \$urls with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:testCheck\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has parameter \$ignoreOrder with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Core\\URLChecker\\URLCheckerTest\:\:testCheckUnsupported\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertUsagesSearchResultItems\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Core/URLChecker/URLCheckerTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Argument of an invalid type PHPUnit\\Framework\\MockObject\\MockObject supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertUsagesSearchResultItems\(\) has parameter \$expectedContentInfoIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:getDataCollectorMock\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:doTestFindUrls\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testAddGetCollector\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:doTestFindUrls\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testCollect\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Common\\SlugConverter\:\:setConfigurationValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/Common/SlugConverter.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetAllCollectors\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot call method getValue\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: method.nonObject count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetInvalidCollector\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentService/VersionValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetPanelTemplate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + + - + message: '#^Access to an undefined property object\:\:\$content\.$#' + identifier: property.notFound + count: 6 + path: tests/integration/Core/Repository/ContentServiceTest.php + + - + message: '#^Access to an undefined property object\:\:\$reverseRelations\.$#' + identifier: property.notFound + count: 9 + path: tests/integration/Core/Repository/ContentServiceTest.php + + - + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentMetadataUpdateStruct supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetPanelTemplateNothing\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetToolbarTemplate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Language'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Language will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/ContentServiceTest.php + + - + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Section'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\Collector\\IbexaCoreCollectorTest\:\:testGetToolbarTemplateNothing\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/ContentServiceTest.php + + - + message: '#^Cannot access property \$sortField on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^PHPDoc tag @var above foreach loop does not specify variable name\.$#' - identifier: varTag.noVariable + message: '#^Cannot access property \$sortOrder on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php + + - + message: '#^Cannot access property \$sourceContentInfo on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Relation\|null\.$#' + identifier: property.nonObject + count: 9 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\Debug\\DependencyInjection\\Compiler\\DataCollectorPassTest\:\:testAddCollector\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/Debug/DependencyInjection/Compiler/DataCollectorPassTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\IO\\DependencyInjection\\ConfigurationFactoryTestCase\:\:provideExpectedParentServiceId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has parameter \$actualAliases with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/IO/DependencyInjection/ConfigurationFactoryTestCase.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Call to an undefined method object\:\:decorate\(\)\.$#' - identifier: method.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has parameter \$expectedAliasProperties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\IO\\DependencyInjection\\IbexaIOExtensionTest\:\:testParametersWithBinarydataHandler\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAllFieldsEquals\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\IO\\DependencyInjection\\IbexaIOExtensionTest\:\:testParametersWithMetadataHandler\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertDefaultContentStates\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Bundle\\IO\\DependencyInjection\\IbexaIOExtensionTest\:\:testParametersWithoutConfiguration\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertExpectedRelations\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Using nullsafe method call on non\-nullable type Symfony\\Component\\HttpFoundation\\Response\. Use \-\> instead\.$#' - identifier: nullsafe.neverNull + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertLocaleFieldsEquals\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/bundle/IO/EventListener/StreamFileListenerTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\BaseCoreFieldTypeIntegrationTestCase\:\:getDatabaseConnection\(\) should return Doctrine\\DBAL\\Connection but returns object\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertTranslationDoesNotExist\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/BaseCoreFieldTypeIntegrationTestCase.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^PHPDoc tag @return with type object is not subtype of native type Doctrine\\DBAL\\Connection\.$#' - identifier: return.phpDocType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:contentRemoteIdVersionLanguageProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/BaseCoreFieldTypeIntegrationTestCase.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Call to an undefined method object\:\:match\(\)\.$#' - identifier: method.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:createUserWithVersionReadLimitations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/BasicKernelTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:getContext\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:filterHiddenLocations\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:providerOfFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:getExpectedMediaContentInfoProperties\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\BinaryBase\\BinaryBaseStorage\\BinaryBaseStorageTest\:\:\$gateway \(Ibexa\\Core\\FieldType\\BinaryBase\\BinaryBaseStorage\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\FieldType\\BinaryBase\\BinaryBaseStorage\\Gateway\.$#' - identifier: assign.propertyType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/BinaryBase/BinaryBaseStorage/BinaryBaseStorageTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' - identifier: property.nonObject - count: 4 - path: tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterCreatesExpectedLocation\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/FieldType/FieldConstraintsStorage/FieldConstraintsStorageTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\FieldType\\FieldConstraintsStorage\\Stub\\ExampleFieldConstraintsStorage\:\:__construct\(\) has parameter \$fieldConstraints with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteId\(\) has parameter \$languages with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/FieldType/FieldConstraintsStorage/Stub/ExampleFieldConstraintsStorage.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldTypeConstraints\[\]\)\: Unexpected token "\\n ", expected variable at offset 82 on line 2$#' - identifier: phpDoc.parseError + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfo\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/FieldType/FieldConstraintsStorage/Stub/ExampleFieldConstraintsStorage.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\IO\\BinarydataHandler\\FlysystemTest\:\:getBinaryDataHandler\(\) should return Ibexa\\Core\\IO\\IOBinarydataHandler but returns object\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoByRemoteId\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\IO\\BinarydataHandler\\FlysystemTest\:\:getFlysystemFilesystem\(\) should return League\\Flysystem\\FilesystemOperator but returns object\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentWithPrioritizedLanguages\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Parameter \#1 \$inputStream of method Ibexa\\Contracts\\Core\\IO\\BinaryFileCreateStruct\:\:setInputStream\(\) expects resource, resource\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoById\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Parameter \#1 \$stream of function fclose expects resource, resource\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdWithSecondParameter\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/IO/BinarydataHandler/FlysystemTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\MemberOfLimitationTest\:\:testCanUserAssignRoleToUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Limitation/MemberOfLimitationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\MemberOfLimitationTest\:\:userPermissionLimitationProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionCreatesLocationsDefinedOnCreate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Limitation/MemberOfLimitationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserCreateContent\(\) return type has no value type specified in iterable type array\.$#' + message: '#^PHPDoc tag @var for variable \$field has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserDeleteContent\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAllFieldsEquals\(\) expects array\, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserDeleteContentTranslation\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertLocaleFieldsEquals\(\) expects array\, iterable\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:providerForCanUserEditOrPublishContent\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:normalizeFields\(\) expects array\, iterable\ given\.$#' + identifier: argument.type + count: 4 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserCreateContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + message: '#^Parameter \#1 \$locations of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:filterHiddenLocations\(\) expects array\, iterable\ given\.$#' + identifier: argument.type + count: 5 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserEditContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + message: '#^Parameter \#1 \$string of function md5 expects string, float given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\PermissionResolver\\LanguageLimitationIntegrationTest\:\:testCanUserPublishContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + message: '#^Parameter \#2 \$actualAliases of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) expects array, iterable\ given\.$#' identifier: argument.type - count: 1 - path: tests/integration/Core/Limitation/PermissionResolver/LanguageLimitationIntegrationTest.php + count: 4 + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\RoleLimitationTest\:\:testCanUserAssignRole\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$code of class InvalidArgumentException constructor expects int, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Limitation/RoleLimitationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Limitation\\RoleLimitationTest\:\:userPermissionLimitationProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Limitation/RoleLimitationTest.php + path: tests/integration/Core/Repository/ContentServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Persistence\\Search\\Content\\IndexerGatewayTest\:\:getDataForContentInSubtree\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php + path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Persistence\\Search\\Content\\IndexerGatewayTest\:\:getDataForContentSince\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Persistence/Search/Content/IndexerGatewayTest.php + path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraft\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCreateStruct supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$contentFieldNameIdentifier with no type specified\.$#' - identifier: missingType.parameter + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionUpdateStruct supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$contentTypeIdentifier with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 5 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createContentDraftVersion1\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeDraft will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createMultilingualContentDraft\(\) has parameter \$multilingualFieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseContentServiceTestCase\:\:createUpdatedDraftVersion2NotAdmin\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeDraft'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeDraft will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 4 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#1 \$id of method Ibexa\\Contracts\\Core\\Repository\\UserService\:\:loadUserGroup\(\) expects int, string given\.$#' - identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/BaseContentServiceTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroup'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroup will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 3 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createMultilingualTestContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroupCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createTestContent\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroupUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:createTestContentForUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseNonRedundantFieldSetTestCase\:\:updateTestContent\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/BaseNonRedundantFieldSetTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 6 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + message: '#^Cannot access property \$fieldSettings on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' + identifier: property.nonObject + count: 2 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Call to method commit\(\) on an unknown class Ibexa\\Solr\\Handler\.$#' - identifier: class.notFound + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: property.nonObject + count: 4 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrectUnsorted\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot call method getDescriptions\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' + identifier: method.nonObject count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has no return type specified\.$#' + message: '#^Cannot call method getNames\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' + identifier: method.nonObject + count: 2 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertContentTypeGroupsCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$actualValue with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertCopyContentTypeValues\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$expectedValue with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertCopyContentTypeValues\(\) has parameter \$excludedProperties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$propertyName with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesEqual\(\) has parameter \$sortArray with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionAddsFieldToContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) has parameter \$additionalProperties with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createFolder\(\) has parameter \$names with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentType\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createRoleWithPolicies\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createRoleWithPolicies\(\) has parameter \$roleName with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentType\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createSimpleContentType\(\) has parameter \$fieldsToDefine with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraft\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:createUserWithPolicies\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:refreshSearch\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructValues\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:resolveSetupFactory\(\) should return Ibexa\\Contracts\\Core\\Test\\Repository\\SetupFactory but returns object\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:sortItems\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroup\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:sortItems\(\) has parameter \$items with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:updateFolder\(\) has parameter \$names with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructValues\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^PHPDoc tag @param references unknown parameter\: \$propertyNames$#' - identifier: parameter.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^PHPDoc tag @var for variable \$searchHandler contains unknown class Ibexa\\Solr\\Handler\.$#' - identifier: class.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#1 \$string1 of function strcmp expects string, bool\|float\|int\|string given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentType\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#2 \$string2 of function strcmp expects string, bool\|float\|int\|string given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteId\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:\$repository \(Ibexa\\Contracts\\Core\\Repository\\Repository\) does not accept null\.$#' - identifier: assign.propertyType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteIdReturnsCorrectInstance\(\) has parameter \$contentType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BaseTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTrashServiceTestCase\:\:createTrashItem\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem but returns Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroup\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseTrashServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$url\.$#' - identifier: property.protected - count: 5 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupByIdentifier\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\SearchResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroups\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupsIdentifiers\(\) has parameter \$groups with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeStructValues\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertSearchResultItems\(\) has parameter \$ignoreOrder with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeStructValues\(\) has parameter \$userGroupType with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertUsagesSearchResultItems\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypes\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:assertUsagesSearchResultItems\(\) has parameter \$expectedContentInfoIds with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypesContent\(\) has parameter \$types with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:doTestFindUrls\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseURLServiceTestCase\:\:doTestFindUrls\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/BaseURLServiceTestCase.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testCreateBookmark\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testCreateBookmarkThrowsInvalidArgumentException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testDeleteBookmark\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testDeleteBookmarkThrowsInvalidArgumentException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeUpdateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testIsBookmarked\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeUpdateStructValues\(\) has parameter \$typeUpdate with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testIsNotBookmarked\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionCreateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\BookmarkServiceTest\:\:testLoadBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/BookmarkServiceTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Common\\SlugConverter\:\:setConfigurationValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionUpdateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Common/SlugConverter.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Cannot call method getValue\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: method.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemoved\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentService/VersionValidatorTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testAddRelationThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemovesFieldFromContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCopyContentThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraft\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCopyContentThrowsUnauthorizedExceptionWithGivenVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftStructValues\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCopyContentToAuthorizedLocation\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroup\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCopyContentToAuthorizedLocationWithSubtreeLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCountContentDraftsReturnZero\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructValues\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCreateContentDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCreateContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testCreateContentThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testDeleteContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$actualObject of method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testDeleteRelationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testDeleteVersionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByContentInfoThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type + count: 6 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type + count: 6 + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByRemoteIdThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Variable \$nameValue in PHPDoc tag @var does not exist\.$#' + identifier: varTag.variableNotFound count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByVersionInfoThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentInfoByRemoteIdThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentInfoListSkipsUnauthorizedItems\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentInfoThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentThrowsUnauthorizedExceptionOnDrafts\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentThrowsUnauthorizedExceptionWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadContentThrowsUnauthorizedExceptionsOnArchives\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadRelationsWithUnauthorizedRelations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadReverseRelationsThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionInfoByIdThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:addFieldDefinition\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionInfoThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertUpdatedFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testLoadVersionsThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContentType\(\) has parameter \$fieldCreateOverride with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testPublishVersionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContentType\(\) has parameter \$typeCreateOverride with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testSudo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createMultilingualContent\(\) has parameter \$fieldData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testUpdateContentMetadataThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createMultilingualContent\(\) has parameter \$names with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceAuthorizationTest\:\:testUpdateContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getOverride\(\) has parameter \$overrideValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php - - - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/ContentServiceAuthorizationTest.php - - - - message: '#^Access to an undefined property object\:\:\$content\.$#' - identifier: property.notFound - count: 6 - path: tests/integration/Core/Repository/ContentServiceTest.php - - - - message: '#^Access to an undefined property object\:\:\$reverseRelations\.$#' - identifier: property.notFound - count: 9 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentMetadataUpdateStruct supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidContentTypeConfiguration\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Language'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Language will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Section'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidFieldConfiguration\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Cannot access property \$sortField on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidMultilingualFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Cannot access property \$sortOrder on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php - - - - message: '#^Cannot access property \$sourceContentInfo on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Relation\|null\.$#' - identifier: property.nonObject - count: 9 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:postCreationHook\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has parameter \$actualAliases with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) has parameter \$expectedAliasProperties with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAllFieldsEquals\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertDefaultContentStates\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertExpectedRelations\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertLocaleFieldsEquals\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertTranslationDoesNotExist\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:removeFieldDefinition\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:contentRemoteIdVersionLanguageProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testAddFieldDefinition\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:createUserWithVersionReadLimitations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testContentTypeField\(\) has parameter \$contentType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:filterHiddenLocations\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopiedFieldType\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:getExpectedMediaContentInfoProperties\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopiedFieldType\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopyField\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopyField\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testAddRelationAddsRelationToContent\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testAddRelationSetsExpectedRelations\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testAddRelationThrowsBadStateException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentWithEmptyFieldValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testChangeContentName\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedEmptyFieldValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedEmptyFieldValue\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyContentInTransactionWithCommit\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedFieldType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyContentInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedFieldType\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyContentWithGivenVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testDeleteContent\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyContentWithNewOwner\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testFromHash\(\) has parameter \$expectedValue with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyTranslationsFromInvalidPublishedContentToDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testFromHash\(\) has parameter \$hash with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCopyTranslationsFromPublishedToDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsEmptyValue\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftAndLoadAccess\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsNotEmptyValue\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftInOtherLanguage\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeField\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftInTransactionWithCommit\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeFieldType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeFieldType\(\) has parameter \$contentType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftLoadContentByContentInfoStillLoadsPublishedVersion\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValue\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueData\(\) has parameter \$field with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftLoadContentStillLoadsPublishedVersion\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueType\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftSetsContentInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadField\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftSetsExpectedProperties\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadFieldType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftSetsVersionInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftWithRelationsCreatesExpectedRelations\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishedFieldType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishedFieldType\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentDraftWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testToHash\(\) has parameter \$expectedHash with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testToHash\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentInTransactionWithRollback\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateContentFails\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentRequiredFieldMissing\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateField\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentSetsExpectedContentInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateFieldNoNewContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentSetsExpectedContentType\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateNoNewContentTypeFieldStillAvailable\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentSetsExpectedVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateNoNewContentTypeFieldStillAvailable\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentThrowsContentFieldValidationException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateTypeFieldStillAvailable\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateTypeFieldStillAvailable\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAccept\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @param for parameter \$repository with type Ibexa\\Contracts\\Core\\Repository is not subtype of native type Ibexa\\Contracts\\Core\\Repository\\Repository\.$#' + identifier: parameter.phpDocType count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentThrowsInvalidArgumentExceptionWithLocationCreateParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + message: '#^PHPDoc tag @var with type Ibexa\\Core\\FieldType\\FieldType is not subtype of native type Ibexa\\Contracts\\Core\\Repository\\FieldType\.$#' + identifier: varTag.nativeType + count: 2 + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterCreatesExpectedLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$exception of method PHPUnit\\Framework\\TestCase\:\:expectException\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterCreatesExpectedLocation\(\) has parameter \$testData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$exception of method PHPUnit\\Framework\\TestCase\:\:expectException\(\) expects class\-string\, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$field of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertUpdatedFieldDataLoadedCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithLocationCreateParameterInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \$repository of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:postCreationHook\(\) has invalid type Ibexa\\Contracts\\Core\\Repository\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCreateContentWithRomanianSpecialCharsInTitle\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testCustomURLAliasesNotHistorizedOnUpdatedContent\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteContent\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteContentInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteContentInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteContentWithEmptyBinaryField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getDataForTestFindContentFieldCriterion\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteRelation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteRelationThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteRelationThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Checkbox\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationDeletesSingleTranslationVersions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftArchivesUrlAliasOnPublishing\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftRemovesUrlAliasOnPublishing\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$boolValue of class Ibexa\\Core\\FieldType\\Checkbox\\Value constructor expects bool, null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$boolValue of class Ibexa\\Core\\FieldType\\Checkbox\\Value constructor expects bool, stdClass given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTranslation\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftThrowsInvalidArgumentException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationFromDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationMainLanguageThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationUpdatesInitialLanguageCodeVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteTranslationUpdatesUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteVersionInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Country\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteVersionInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteVersionThrowsBadStateExceptionOnPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testDeleteVersionWorksIfOnlyVersionIsDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testHideContentWithParentLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByContentInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByContentInfoThrowsNotFoundExceptionWithVersionNumberParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByContentInfoWithLanguageParameters\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByContentInfoWithVersionNumberParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteId\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\DateAndTime\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteIdWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByRemoteIdWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentByVersionInfoWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentDraftsReturnsEmptyArrayByDefault\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentDraftsWithFirstParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:testUpdateContentFails\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoByRemoteId\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoByRemoteIdSetsExpectedContentInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoByRemoteIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoListSkipsNotFoundItems\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoSetsExpectedContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentInfoThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentListByContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentThrowsNotFoundException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentThrowsNotFoundExceptionWithThirdParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentWithPrioritizedLanguages\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentWithPrioritizedLanguagesThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadContentWithThirdParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadRelationsSkipsArchivedContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadRelationsSkipsDraftContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\EmailAddress\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadReverseRelationListSkipsDraftContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadReverseRelations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadReverseRelationsSkipsArchivedContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadReverseRelationsSkipsDraftContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoById\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$email of class Ibexa\\Core\\FieldType\\EmailAddress\\Value constructor expects string, null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdSetsExpectedVersionInfo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:cleanupStorageDir\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdThrowsNotFoundException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:setUpIgnoredPath\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:setUpIgnoredPath\(\) has parameter \$ignoredFiles with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdWithSecondParameter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:uriExistsOnIO\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:uriExistsOnIO\(\) has parameter \$uri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$ignoredPathList type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoThrowsNotFoundExceptionWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$storageDirConfigKey has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionInfoWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Static property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$installDir \(string\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionsAfterDeletingTwoDrafts\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionsOfStatusArchived\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionsOfStatusDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testLoadVersionsSetsExpectedVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testNewContentCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testNewContentMetadataUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testNewContentUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishContentWithoutPublishPolicyThrowsException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionCreatesLocationsDefinedOnCreate\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionDoesNotChangePublishedDate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionFromContentDraft\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionFromContentDraftArchivesOldVersion\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionFromOldContentDraftArchivesNewerVersionNo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionSetsExpectedContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionSetsExpectedContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\ISBN\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionSetsExpectedVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishVersionWithSelectedLanguages\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testPublishWorkflow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testRevealContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testRevealContentWithHiddenChildren\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$isbn of class Ibexa\\Core\\FieldType\\ISBN\\Value constructor expects string, null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testRevealContentWithHiddenParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$alternativeText on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testURLAliasesCreatedForNewContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$uri on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testURLAliasesCreatedForUpdatedContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getFixtureData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentInTransactionWithRollback\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getStoragePrefix\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataCheckWithinTransaction\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataNotUpdatesContentVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataSetsExpectedProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:publishNewImage\(\) has parameter \$parentLocationIDs with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplicateRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:\$loadedImagePath has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentMetadataThrowsInvalidArgumentExceptionOnNoMetadataPropertiesSet\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentSetsExpectedFields\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoesNotAccept\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLanguages\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentWhenMandatoryFieldIsEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdateContentWithNotUpdatingMandatoryField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Integer\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:testUpdatingDraftDoesNotUpdateOldVersions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^PHPDoc tag @var for variable \$field has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAllFieldsEquals\(\) expects array\, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertLocaleFieldsEquals\(\) expects array\, iterable\ given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/ContentServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:normalizeFields\(\) expects array\, iterable\ given\.$#' - identifier: argument.type - count: 4 - path: tests/integration/Core/Repository/ContentServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php - - message: '#^Parameter \#1 \$locations of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:filterHiddenLocations\(\) expects array\, iterable\ given\.$#' + message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Integer\\Value constructor expects int\|null, float given\.$#' identifier: argument.type + count: 1 + path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + + - + message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: property.nonObject count: 5 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Parameter \#1 \$string of function md5 expects string, float given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/ContentServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertContentFieldHasCorrectData\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Parameter \#2 \$actualAliases of method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentServiceTest\:\:assertAliasesCorrect\(\) expects array, iterable\ given\.$#' - identifier: argument.type - count: 4 - path: tests/integration/Core/Repository/ContentServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Parameter \#2 \$code of class InvalidArgumentException constructor expects int, string given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentServiceTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testAddFieldDefinitionThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:checkFullTextSupport\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testAssignContentTypeGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testCopyContentTypeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testCreateContentTypeDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testCreateContentTypeGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidMultilingualFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testCreateContentTypeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testDeleteContentTypeGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Keyword\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testDeleteContentTypeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testPublishContentTypeDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testRemoveFieldDefinitionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testUnassignContentTypeGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testUpdateContentTypeDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testUpdateContentTypeGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceAuthorizationTest\:\:testUpdateFieldDefinitionThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCreateStruct supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionUpdateStruct supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 5 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeDraft will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\MapLocation\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeDraft'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeDraft will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 4 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroup'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroup will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 3 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroupCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroupUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentTypeUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinitionUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 6 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Cannot access property \$fieldSettings on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' - identifier: property.nonObject - count: 2 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: property.nonObject - count: 4 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Cannot call method getDescriptions\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' - identifier: method.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Cannot call method getNames\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null\.$#' - identifier: method.nonObject - count: 2 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertContentTypeGroupsCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertCopyContentTypeValues\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:assertCopyContentTypeValues\(\) has parameter \$excludedProperties with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionAddsFieldToContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionAddsFieldToContentAdded\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionThrowsBadStateExceptionContentInstances\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertFindResult\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertFindResult\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidationException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertSortResult\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFieldIdentifier\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkCustomFieldsSupport\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAssignContentTypeGroup\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkFullTextSupport\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAssignContentTypeGroupInTransactionWithCommit\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkSearchEngineSupport\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAssignContentTypeGroupInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:findProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testAssignContentTypeGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCanLoadContentTypeDraftEvenIfDiffrentOwner\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentType\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getResultContentIdList\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeInTransactionWithCommit\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:modifyFieldSortClause\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testCreateTestContent\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCopyContentTypeWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentThrowsContentTypeValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructLanguageDependentValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeDraftThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructLanguageDependentValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsContentTypeFieldDefinitionValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateContentTypeIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFieldIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testCreateContentTypeThrowsInvalidArgumentExceptionGroupsEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeGroupWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeGroupWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteContentTypeThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testDeleteUserDrafts\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testIsContentTypeUsed\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByIdentifierReturnsCorrectInstance\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteIdReturnsCorrectInstance\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteIdReturnsCorrectInstance\(\) has parameter \$contentType with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeByRemoteIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeDraftThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeFieldDefinitions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupByIdentifierStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroups\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupsIdentifiers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeGroupsIdentifiers\(\) has parameter \$groups with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$valueOne with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeStructValues\(\) has parameter \$userGroupType with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypeWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypesContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testLoadContentTypesContent\(\) has parameter \$types with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$content with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeGroupUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeUpdateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewContentTypeUpdateStructValues\(\) has parameter \$typeUpdate with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$valueOne with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionCreateStructValues\(\) has parameter \$createStruct with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testNewFieldDefinitionUpdateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testPublishContentTypeDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testPublishContentTypeDraftRefreshesContentTypesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testPublishContentTypeDraftSetsNameSchema\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testPublishContentTypeDraftThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testPublishContentTypeDraftThrowsInvalidArgumentExceptionWithoutFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveContentTypeTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveContentTypeTranslationWithMultilingualData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemoved\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemoved\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemovesFieldFromContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionRemovesFieldFromContentRemoved\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionThrowsInvalidArgumentExceptionOnWrongDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUnassignContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUnassignContentTypeGroupThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUnassignContentTypeGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftStructValues\(\) has parameter \$data with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftThrowsInvalidArgumentExceptionNoDraftForAuthenticatedUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftWithNewTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftWithNewTranslationWithMultilingualData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructLanguageDependentValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructLanguageDependentValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinition\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIdentifierExists\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefinedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionWithEmptyStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionWithNewTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$actualObject of method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertStructPropertiesCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php - - - - message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$array of static method PHPUnit\\Framework\\Assert\:\:assertArrayNotHasKey\(\) expects array\\|ArrayAccess\<\(int\|string\), mixed\>, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type - count: 6 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type - count: 6 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Variable \$nameValue in PHPDoc tag @var does not exist\.$#' - identifier: varTag.variableNotFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ContentTypeServiceTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\AuthorIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:addFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertUpdatedFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContentType\(\) has parameter \$fieldCreateOverride with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createContentType\(\) has parameter \$typeCreateOverride with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createMultilingualContent\(\) has parameter \$fieldData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:createMultilingualContent\(\) has parameter \$names with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getOverride\(\) has parameter \$overrideValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidContentTypeConfiguration\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidFieldConfiguration\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidMultilingualFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:postCreationHook\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:removeFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testAddFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testContentTypeField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testContentTypeField\(\) has parameter \$contentType with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopiedExternalData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopiedFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopiedFieldType\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopyField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCopyField\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentTypeFailsWithInvalidFieldSettings\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentTypeFailsWithInvalidValidatorConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreateContentWithEmptyFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedEmptyFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedEmptyFieldValue\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testCreatedFieldType\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$valueOne with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testDeleteContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testDeleteContent\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$content with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testDeleteDraftOfPublishedContentDoesNotDeleteData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testDeleteTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testExceededVersionArchiveLimitHasNoEffectOnContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testFromHash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testFromHash\(\) has parameter \$expectedValue with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testFromHash\(\) has parameter \$hash with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$content with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsEmptyValue\(\) has parameter \$value with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testIsNotEmptyValue\(\) has parameter \$value with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$valueOne with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeFieldData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadContentTypeFieldType\(\) has parameter \$contentType with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueData\(\) has parameter \$field with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadEmptyFieldValueType\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadExternalData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testLoadFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishContentWithEmptyFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishedFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishedFieldType\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testPublishedName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testRemoveFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testSettingsSchema\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testToHash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testToHash\(\) has parameter \$expectedHash with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testToHash\(\) has parameter \$value with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateContentFails\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateContentWithNewTranslationOnEmptyField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateFieldNoNewContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateNoNewContentTypeFieldStillAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateNoNewContentTypeFieldStillAvailable\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$modifyField with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateTypeFieldStillAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdateTypeFieldStillAvailable\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdatedDataCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testUpdatedNoNewContentDataCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:testValidatorSchema\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^PHPDoc tag @param for parameter \$repository with type Ibexa\\Contracts\\Core\\Repository is not subtype of native type Ibexa\\Contracts\\Core\\Repository\\Repository\.$#' - identifier: parameter.phpDocType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^PHPDoc tag @var with type Ibexa\\Core\\FieldType\\FieldType is not subtype of native type Ibexa\\Contracts\\Core\\Repository\\FieldType\.$#' - identifier: varTag.nativeType - count: 2 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$exception of method PHPUnit\\Framework\\TestCase\:\:expectException\(\) expects class\-string\, string given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$exception of method PHPUnit\\Framework\\TestCase\:\:expectException\(\) expects class\-string\, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$field of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:assertUpdatedFieldDataLoadedCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:removeFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$valueOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Parameter \$repository of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\BaseIntegrationTestCase\:\:postCreationHook\(\) has invalid type Ibexa\\Contracts\\Core\\Repository\.$#' - identifier: class.notFound + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$valueTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$ascending with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Parameter \#2 \$fieldName of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:doModifyField\(\) expects string, string\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getDataForTestFindContentFieldCriterion\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$fieldName of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:doModifyField\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:checkOperatorSupport\(\) has parameter \$operator with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:findMultivaluedProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Checkbox\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testCreateMultivaluedTestContent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CheckboxIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$boolValue of class Ibexa\\Core\\FieldType\\Checkbox\\Value constructor expects bool, null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$boolValue of class Ibexa\\Core\\FieldType\\Checkbox\\Value constructor expects bool, stdClass given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Country\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\CountryIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\DateAndTime\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateAndTimeIntegrationTest\:\:testUpdateContentFails\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\DateIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/DateIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\EmailAddress\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\EmailAddressIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$email of class Ibexa\\Core\\FieldType\\EmailAddress\\Value constructor expects string, null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:cleanupStorageDir\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:setUpIgnoredPath\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:setUpIgnoredPath\(\) has parameter \$ignoredFiles with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:testUpdateWithRemove\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:uriExistsOnIO\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:uriExistsOnIO\(\) has parameter \$uri with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$ignoredPathList type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$storageDirConfigKey has no type specified\.$#' - identifier: missingType.property + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Static property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FileSearchBaseIntegrationTestCase\:\:\$installDir \(string\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\FloatIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\ISBN\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ISBNIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$isbn of class Ibexa\\Core\\FieldType\\ISBN\\Value constructor expects string, null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Cannot access property \$alternativeText on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Cannot access property \$uri on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getFixtureData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:getStoragePrefix\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:publishNewImage\(\) has parameter \$parentLocationIDs with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\ImageIntegrationTest\:\:\$loadedImagePath has no type specified\.$#' - identifier: missingType.property + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/ImageIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Integer\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\IntegerIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Integer\\Value constructor expects int\|null, float given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: property.nonObject - count: 5 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertContentFieldHasCorrectData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:checkFullTextSupport\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$valuesOne with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidMultilingualFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Keyword\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:\$legacyUnsupportedOperators type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:providerForTestTruncateField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:testFindContentFieldCriterion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:testKeywordsAreCaseSensitive\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:testTruncateField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\KeywordIntegrationTest\:\:testUpdateContentKeywords\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Selection\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\MapLocation\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getValidFieldConfiguration\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\MapLocationIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\TextBlock\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\RelationListIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertFindResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\TextLine\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertFindResult\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:assertSortResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkCustomFieldsSupport\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkFullTextSupport\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:checkSearchEngineSupport\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:findProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:fullTextFindProvider\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:getResultContentIdList\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:modifyFieldSortClause\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:sortProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testCreateTestContent\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:testUpdateContentFails\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Url\\Value\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindBetweenTwoOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$link of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$text of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User\:\:\$content\.$#' + identifier: property.notFound + count: 2 + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindContainsTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testAddFieldDefinition\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopiedFieldType\(\) has parameter \$content with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopyField\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsOne\(\) has parameter \$valueTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopyField\(\) has parameter \$content with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\FieldType'' and Ibexa\\Contracts\\Core\\Repository\\FieldType will always evaluate to true\.$#' + identifier: method.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/FieldTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access property \$pathString on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:find\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindEqualsTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:getFilterFactories\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:getUserLimitationData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' + identifier: argument.type + count: 5 + path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method Traversable\\:\:offsetGet\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot use array destructuring on iterable\\.$#' + identifier: offsetAccess.nonArray count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:createMultiplePagesOfContentItems\(\) should return int but returns int\|null\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getDataForTestFindContentWithLocationCriterion\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getFilterFactories\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getListOfSupportedSortClauses\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$sortClause of method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:performAndAssertSimpleSortClauseQuery\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Filter\\FilteringSortClause, object given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Comparison operation "\<" between int\<80300, 80599\> and 50400 is always false\.$#' + identifier: smaller.alwaysFalse count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceMaximumSupportedLanguagesTest\:\:\$createdLanguages type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Result of && is always false\.$#' + identifier: booleanAnd.alwaysFalse count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Language'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Language will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 3 + path: tests/integration/Core/Repository/LanguageServiceTest.php + + - + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LanguageCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LanguageCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:loadLanguagesReturnsAnEmptyArrayByDefault\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LanguageServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/LanguageServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:assertCanUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:assertCanUser\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:loginAsEditorUserWithLimitations\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\ContentLimitationsMixIntegrationTest\:\:providerForCanUser\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindGreaterThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\ContentLimitationsMixIntegrationTest\:\:testCanUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access property \$contentInfo on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:providerForCanUserEditOrPublishContent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:testCanUserEditContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:testCanUserReadTrashedContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 10 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationList'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationList will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: property.nonObject + count: 9 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot call method getContentInfo\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: method.nonObject + count: 2 + path: tests/integration/Core/Repository/LocationServiceTest.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertAliasesBeforeCopy\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertAliasesBeforeCopy\(\) has parameter \$expectedSubItemAliases with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertDefaultContentStates\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertGeneratedAliases\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertGeneratedAliases\(\) has parameter \$expectedAliases with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindInTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has parameter \$expectedValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has parameter \$stopId with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadLocationProperties\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadSubtreeProperties\(\) has parameter \$properties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadSubtreeProperties\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:providerForLoadLocationChildrenRespectsParentSortingClauses\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has parameter \$priority with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationChildren\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationChildrenRespectsParentSortingClauses\(\) has parameter \$expectedChildrenNames with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocations\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsContent\(\) has parameter \$locations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLikeTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadParentLocationsForDraftContent\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testSwapLocationForMainAndSecondaryLocation\(\) should return array\ but returns array\\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has parameter \$priority with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$expectedLocations of method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertContentHasExpectedLocations\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$location of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:moveSubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 23 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$actualObject of method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$location2 of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:swapLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$newParentLocation of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:moveSubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$parentLocationId of method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:publishContentWithParentLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 8 + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$targetParentLocation of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:copySubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:assertFieldIds\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:mapFields\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:mapFields\(\) expects array\, iterable\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState\:\:\$defaultLanguageCode\.$#' + identifier: property.notFound + count: 2 + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState\:\:\$names\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectState'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 9 + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroup'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroup will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 7 + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindLowerThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has parameter \$expectedIdentifiers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has parameter \$loadedObjects with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:createObjectState\(\) has parameter \$descriptions with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:createObjectState\(\) has parameter \$names with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:deleteExistingObjectStateGroups\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) has parameter \$groups with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getPrioritizedLanguagesList\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectState\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateGroup\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectState\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateCreateStruct\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupCreateStruct\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotBetweenTwoOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupUpdateStruct\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateUpdateStruct\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectState\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroup\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$groups of method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) expects array, iterable\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$execution of class Jenner\\SimpleFork\\Process constructor expects string\|null, Closure given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Parallel/BaseParallelTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$hasAccess\.$#' + identifier: property.protected + count: 3 + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$lookupPolicyLimitations\.$#' + identifier: property.protected + count: 8 + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$roleLimitations\.$#' + identifier: property.protected + count: 3 + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupPolicyLimitations\:\:\$policy\.$#' + identifier: property.protected + count: 3 + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject + count: 2 + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:getDataForTestCanUserWithLimitations\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotContainsTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithLimitations\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$array of function array_filter expects array, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$policy of class Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupPolicyLimitations constructor expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/PermissionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21089Test\:\:\$contentType \(Ibexa\\Core\\Repository\\Values\\ContentType\\ContentType\) does not accept Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP21089Test.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\VersionInfo\:\:\$names\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP21798Test.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsOne\(\) has parameter \$valueTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21906SearchOneContentMultipleLocationsTest\:\:testSearchContentMultipleLocations\(\) has parameter \$expectedResultCount with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:createReferenceObject\(\) has parameter \$relationListTarget with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:createTestContentType\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22409RelationListTypeStateTest\:\:createContentWithRelationList\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLAlias'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLAlias will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$valueOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has parameter \$name with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotEqualsTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtree\(\) has parameter \$pathString with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtreeShouldThrowException\(\) has parameter \$pathString with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 4 + path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ContentService'' and Ibexa\\Contracts\\Core\\Repository\\ContentService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ContentTypeService'' and Ibexa\\Contracts\\Core\\Repository\\ContentTypeService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\FieldTypeService'' and Ibexa\\Contracts\\Core\\Repository\\FieldTypeService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\LanguageService'' and Ibexa\\Contracts\\Core\\Repository\\LanguageService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\LocationService'' and Ibexa\\Contracts\\Core\\Repository\\LocationService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\NotificationService'' and Ibexa\\Contracts\\Core\\Repository\\NotificationService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ObjectStateService'' and Ibexa\\Contracts\\Core\\Repository\\ObjectStateService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqual\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\PermissionResolver'' and Ibexa\\Contracts\\Core\\Repository\\PermissionResolver will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\RoleService'' and Ibexa\\Contracts\\Core\\Repository\\RoleService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\SearchService'' and Ibexa\\Contracts\\Core\\Repository\\SearchService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\SectionService'' and Ibexa\\Contracts\\Core\\Repository\\SectionService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\TrashService'' and Ibexa\\Contracts\\Core\\Repository\\TrashService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\URLAliasService'' and Ibexa\\Contracts\\Core\\Repository\\URLAliasService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\URLWildcardService'' and Ibexa\\Contracts\\Core\\Repository\\URLWildcardService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\UserService'' and Ibexa\\Contracts\\Core\\Repository\\UserService will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RepositoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$policyDraft of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:removePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupRoleAssignment\:\:\$id\.$#' + identifier: property.protected count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Limitation'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Limitation will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Policy'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\PolicyCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotGreaterThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\PolicyUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Role'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Role'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleDraft will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleDraft'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleDraft will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 4 + path: tests/integration/Core/Repository/RoleServiceTest.php + + - + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access property \$limitation on Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleAssignment\|false\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot call method getIdentifier\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Limitation\\RoleLimitation\|null\.$#' + identifier: method.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:newRoleUpdateStruct\(\) invoked with 1 parameter, 0 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:providerForCopyRoleTests\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftSetsPolicyProperties\(\) has parameter \$roleAndPolicy with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftUpdatesRole\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRole\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleWithPolicy\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValues\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInOneTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValuesWithPolicy\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValuesWithPolicy\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyByRoleDraft\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyUpdatesLimitations\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyUpdatesLimitations\(\) has parameter \$roleAndPolicy with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotInTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \.\.\.\$arrays of function array_merge expects array, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft\|null given\.$#' + identifier: argument.type + count: 3 + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$policyDraft of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:removePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Variable \$role might not be defined\.$#' + identifier: variable.undefined count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/RoleServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$mainLocationId\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$publishedDate\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$remoteId\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:assertContentIdSearch\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:assertSubtreeInvisibleProperty\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContent\(\) has parameter \$parentLocationIdList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithNameAndDescription\(\) has parameter \$contentDescription with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithNameAndDescription\(\) has parameter \$parentLocationIdList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:getEmailAddressesCases\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLikeTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:getSpecialFullTextCases\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testFindContentInfoFullTextIsSearchable\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^PHPDoc tag @param references unknown parameter\: \$ignoreForSetupFactories$#' + identifier: parameter.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 4 + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\LocationId constructor expects array\\|int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Parameter \#2 \$parentLocationIdList of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithName\(\) expects array\, array\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + message: '#^Cannot call method first\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\AggregationResultCollection\|null\.$#' + identifier: method.nonObject + count: 2 + path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\AbstractAggregationTestCase\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\AbstractAggregationTestCase\:\:dataProviderForTestFindLocationWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ContentTypeGroupTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ContentTypeTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:build\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:setExpectedEntries\(\) has parameter \$entries with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:\$entries type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DateMetadataRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\AuthorTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\CheckboxTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\CountryTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\DateRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanOrEqualTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\DateTimeRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\FloatRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\FloatStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\IntegerRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\IntegerStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\KeywordTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\SelectionTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFindNotLowerThanTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\TimeRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:setValues\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$contentTypeIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$fieldDefinitionIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$fieldDefinitionIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindOne\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#3 \$fieldTypeIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#3 \$values of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) expects iterable, iterable\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:\$values type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\LanguageTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\LocationChildrenTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$valueOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ObjectStateTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testFullTextFindTwo\(\) has parameter \$valueTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$ascending with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\SectionTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\SubtreeTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:testSort\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createGroupTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php - - message: '#^Parameter \#2 \$fieldName of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:doModifyField\(\) expects string, string\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createModifierTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php - - message: '#^Parameter \#2 \$fieldName of method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchBaseIntegrationTestCase\:\:doModifyField\(\) expects string, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createOwnerTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:checkOperatorSupport\(\) has parameter \$operator with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:findMultivaluedProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:dataProviderForTestFindLocationWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\VisibilityTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testCreateMultivaluedTestContent\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\DeleteTranslationTest\:\:createTestContentWithLanguages\(\) has parameter \$languages with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$array of function array_column expects array, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/MultilingualContentSearchIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access offset 0 on array\\|bool\|float\|int\|string\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\RemoteIdIndexingTest\:\:getRemoteIDs\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\RemoteIdIndexingTest\:\:providerForTestIndexingRemoteId\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Part \$criterion\-\>value \(array\\|bool\|float\|int\|string\) of encapsed string cannot be cast to string\.$#' + identifier: encapsedStringPart.nonString count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Possibly invalid array key type bool\|float\|int\|string\.$#' + identifier: offsetAccess.invalidOffset + count: 2 + path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$remoteId\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/AbstractSortClauseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\AbstractSortClauseTestCase\:\:assertSearchResultOrderByRemoteId\(\) has parameter \$expectedOrderedIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/AbstractSortClauseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:createContentForContentTranslatedNameTesting\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:dataProviderForTestSortingByContentTranslatedName\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$expectedOrderedRemoteIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedBetweenTwoOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$expectedOrderedRemoteIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^PHPDoc tag @param references unknown parameter\: \$values$#' + identifier: parameter.notFound + count: 2 + path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:dataProviderForTestSortingByScore\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:testSortingByScore\(\) has parameter \$expectedOrderedIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:testSortingByScore\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedContainsOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^PHPDoc tag @param references unknown parameter\: \$values$#' + identifier: parameter.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextContentSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextContentSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedEqualsOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$searchString with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapSearchResultToIds\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:providerForTestFulltextSearchSolr7\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextContentSearchSolr7\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextContentSearchSolr7\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$searchString with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testPrepareContent\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^PHPDoc tag @var for variable \$keyGroup has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceFulltextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOneFindsTwo\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\:\:setCustomField\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access offset ''id'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access offset ''title'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:assertQueryFixture\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:assertQueryFixture\(\) has parameter \$ignoreScore with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedGreaterThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:mapResultLocationIds\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:simplifySearchResult\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/SearchServiceLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' + identifier: property.notFound + count: 3 + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\:\:setCustomField\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Search\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access offset ''id'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' + identifier: offsetAccess.nonOffsetAccessible + count: 3 + path: tests/integration/Core/Repository/SearchServiceTest.php + + - + message: '#^Cannot access offset ''title'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ContentTypeIdentifier constructor invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count + count: 2 + path: tests/integration/Core/Repository/SearchServiceTest.php + + - + message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' + identifier: class.notFound + count: 5 + path: tests/integration/Core/Repository/SearchServiceTest.php + + - + message: '#^Instanceof between Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query will always evaluate to true\.$#' + identifier: instanceof.alwaysTrue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedInOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:createContentForTestUserMetadataGroupHorizontal\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:createContentWithFieldType\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:find\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:mapResultContentIds\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneEmpty\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:providerForTestSortingByNumericFieldsWithValuesOfDifferentLength\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:simplifySearchResult\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:skipIfSeedNotImplemented\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:sortSearchHitsById\(\) has parameter \$searchHits with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOneFindsOne\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$fixture with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$closure with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedLowerThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$queryData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFieldFiltersCaseSensitivity\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$closure with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$queryData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$fixture with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsFieldFiltersCaseSensitivity\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldContentInfoFiltered\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotBetweenTwoOne\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldContentInfoFiltered\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldLocationsFiltered\(\) has parameter \$fixture with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldLocationsFiltered\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextComplex\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentSearchComplex\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentTranslationSearch\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextLocationSearchComplex\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotContainsOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextLocationTranslationSearch\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotEqualsOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$queryData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$fixture with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$closure with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$valuesOne with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOneFindsTwo\(\) has parameter \$valuesTwo with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$queryData with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$closure with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$content with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$fixture with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$queryData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$filter with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalFilterLocation\(\) has parameter \$queryType with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^PHPDoc tag @var has invalid value \(\$data \\Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\)\: Unexpected token "\$data", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotGreaterThanOrEqual\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$query of method Ibexa\\Contracts\\Core\\Repository\\SearchService\:\:findLocations\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationQuery, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Unreachable statement \- code above always terminates\.$#' + identifier: deadCode.unreachable + count: 3 + path: tests/integration/Core/Repository/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' + identifier: class.notFound + count: 3 + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createContent\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createContent\(\) has parameter \$searchValuesMap with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createTestContent\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createTestContent\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getIndexesToMatchData\(\) has parameter \$inputContentData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getIndexesToMatchData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getSetupType\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testCreateTestContent\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotInOneTwo\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to function is_object\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SectionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneEmpty\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Section'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 4 + path: tests/integration/Core/Repository/SectionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\SectionCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\SectionCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SectionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\SectionUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\SectionUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SectionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SettingServiceTest\:\:dataProviderForCreateSetting\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SettingServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$modifyField with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SettingServiceTest\:\:testCreateSetting\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/SettingServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Generator expects value type array\{string, int, string\|null, int\|null\}, array\{''foo'', 100, null\} given\.$#' + identifier: generator.valueType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TokenServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOneFindsOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\:\:\$trashed\.$#' + identifier: property.protected + count: 4 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\TrashItem'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$filter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Trash\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\SearchResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 3 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$modifyField with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$valuesOne with no type specified\.$#' - identifier: missingType.parameter + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:testFindMultivaluedNotLowerThanOrEqualOne\(\) has parameter \$valuesTwo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + message: '#^Cannot access property \$remoteId on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' + identifier: property.nonObject + count: 4 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SearchMultivaluedBaseIntegrationTestCase\:\:\$legacyUnsupportedOperators type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Cannot call method getRemovedLocationContentIdMap\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' + identifier: method.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:assertAliasNotExists\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItems\(\) has parameter \$filters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItemsSort\(\) has parameter \$sortClausesClasses with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:trashFiltersProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:trashSortClausesProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 6 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + message: '#^Parameter \#1 \$trashItem of method Ibexa\\Contracts\\Core\\Repository\\TrashService\:\:recover\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\:\:\$sortClauses \(array\\) does not accept array\\.$#' + identifier: assign.propertyType + count: 2 + path: tests/integration/Core/Repository/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Selection\\Value\.$#' - identifier: return.type + message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$location of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:listLocationAliases\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to function is_object\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' + identifier: function.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLAlias'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLAlias will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 10 + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertLookupHistory\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedIsHistory with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getAdditionallyIndexedMultivaluedFieldData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedLanguageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedPath with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesSame\(\) has parameter \$expectedValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\SelectionMultilingualIntegrationTest\:\:getValidFieldConfiguration\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlIsCurrent\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/SelectionMultilingualIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlIsHistory\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:changeContentTypeUrlAliasSchema\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:changeSlugConverterConfiguration\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:createGlobalAliases\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAlias\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocationVariation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\TextBlock\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithAlwaysAvailable\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithForward\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAlias\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithAlwaysAvailable\(\) has parameter \$testData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithForwarding\(\) has parameter \$testData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasWithAlwaysAvailable\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextBlockIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasWithForwarding\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliases\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliasesLoadsCorrectly\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUp\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookupOnMultilingualNestedLocations\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:updateContentField\(\) has parameter \$fieldDefinitionIdentifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:updateContentField\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, iterable\ given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\TextLine\\Value\.$#' - identifier: return.type - count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 11 + path: tests/integration/Core/Repository/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$modified\.$#' + identifier: property.protected + count: 4 + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\URL'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 4 + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\URLUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\UsageSearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\UsageSearchResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/URLServiceTest.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithSorting\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$expectedContentInfos with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$expectedTotalCount with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TextLineIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$limit with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$offset with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$urlId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$limit \(int\) does not accept string\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$offset \(int\) does not accept string\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardService\\CriterionTest\:\:getUrlWildcards\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$criteria of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcard\\Query\\Criterion\\LogicalAnd constructor expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$expectedCount of static method PHPUnit\\Framework\\Assert\:\:assertCount\(\) expects int, int\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLWildcard'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcard will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/URLWildcardServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLWildcardTranslationResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/URLWildcardServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\UserPreference\\\\UserPreference'' and Ibexa\\Contracts\\Core\\Repository\\Values\\UserPreference\\UserPreference will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 2 + path: tests/integration/Core/Repository/UserPreferenceServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\UserPreference\\\\UserPreferenceList'' and Ibexa\\Contracts\\Core\\Repository\\Values\\UserPreference\\UserPreferenceList will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/UserPreferenceServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 7 + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\TimeIntegrationTest\:\:testUpdateContentFails\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupCreateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserUpdateStruct will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Cannot call method add\(\) on DateTimeImmutable\|false\|null\.$#' + identifier: method.nonObject + count: 3 + path: tests/integration/Core/Repository/UserServiceTest.php + + - + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:createUserContentTypeWithAccountSettings\(\) has parameter \$fieldSetting with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getAdditionallyIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:createUserContentTypeWithAccountSettings\(\) has parameter \$validatorConfiguration with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getFullTextIndexedFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:dataProviderForValidatePassword\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:getDataForTestPasswordUpdateRespectsAllValidationSettings\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidUpdateFieldData\(\) should return array but returns Ibexa\\Core\\FieldType\\Url\\Value\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserCreateStruct\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testValidatePassword\(\) has parameter \$expectedErrors with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/UserServiceTest.php + + - + message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$string of function md5 expects string, int\<1, max\> given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getContentCreatePolicyDraft\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft but returns Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getDataForDeniedAccess\(\) should return array\\}\> but returns array\{array\{123, array\{\-1\}\}, array\{123, array\{456, 789\}\}\}\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getDataForGrantedAccess\(\) should return array\\}\> but returns array\{array\{null, array\{\}\}, array\{null, array\{\-1\}\}, array\{null, array\{123, 456, \-1\}\}, array\{123, array\{123, 456, \-1\}\}, array\{123, array\{\}\}\}\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UrlIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php - - message: '#^Parameter \#1 \$link of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' - identifier: argument.type + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft is not subtype of native type null\.$#' + identifier: varTag.nativeType count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php - - message: '#^Parameter \#2 \$text of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User\:\:\$content\.$#' - identifier: property.notFound + message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' + identifier: property.nonObject count: 2 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertCopiedFieldDataLoadedCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:createEditorUserWithLanguageLimitation\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertFieldDataLoadedCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForCanUserWithLimitationTargets\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForCreateAndPublishContent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:assertUpdatedFieldDataLoadedCorrect\(\) should return array but return statement is missing\.$#' - identifier: return.missing + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:createContent\(\) has parameter \$contentType with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForPublishVersionWithLanguageLimitation\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:getSettingsSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCanUserWithLimitationTargets\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:getValidatorSchema\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCanUserWithLimitationTargets\(\) has parameter \$folderNames with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideFromHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCopyContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideInvalidCreationFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCopySubtreeWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideInvalidUpdateFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCreateAndPublishContent\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:provideToHashData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCreateAndPublishContent\(\) has parameter \$names with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:providerForTestIsEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testHideContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:providerForTestIsNotEmptyValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testHideLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testAddFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testMoveSubtreeWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopiedExternalData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopiedFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopiedFieldType\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$names with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopyField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$namesToUpdate with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCopyField\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersionIsNotAllowedIfModifiedOtherTranslations\(\) has parameter \$names with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testCreateContentWithEmptyFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testRevealContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testRemoveFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testSwapLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldType\\UserIntegrationTest\:\:testUpdateFieldDefinitionWithIncompleteSettingsSchema\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testUnhideLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldType/UserIntegrationTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\FieldType'' and Ibexa\\Contracts\\Core\\Repository\\FieldType will always evaluate to true\.$#' - identifier: method.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testUpdateLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldTypeServiceTest\:\:testGetFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @return with type iterable\\|bool\>\> is not subtype of native type array\.$#' + identifier: return.phpDocType count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldTypeServiceTest\:\:testGetFieldTypeThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 7 + path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldTypeServiceTest\:\:testGetFieldTypes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldTypeServiceTest\:\:testHasFieldTypeReturnsFalse\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ObjectStateLimitationTest\:\:createUserWithObjectStateLimitation\(\) has parameter \$objectStateIDs with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\FieldTypeServiceTest\:\:testHasFieldTypeReturnsTrue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ObjectStateLimitationTest\:\:createUserWithObjectStateLimitationOnContentRead\(\) has parameter \$values with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/FieldTypeServiceTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php - - message: '#^Cannot access property \$pathString on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' + identifier: argument.type + count: 2 + path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + + - + message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$removePolicy\.$#' + identifier: varTag.differentVariable + count: 2 + path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + + - + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:find\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:addPolicyToNewRole\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:getFilterFactories\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:getSubtreeLocationsCount\(\) has parameter \$subtreePathString with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\BaseRepositoryFilteringTestCase\:\:getUserLimitationData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php - - message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' identifier: argument.type - count: 5 - path: tests/integration/Core/Repository/Filtering/BaseRepositoryFilteringTestCase.php + count: 2 + path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php - - message: '#^Call to an undefined method Traversable\\:\:offsetGet\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$readPolicy\.$#' + identifier: varTag.differentVariable + count: 2 + path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php - - message: '#^Cannot use array destructuring on iterable\\.$#' - identifier: offsetAccess.nonArray + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SubtreeLimitationTest\:\:prepareLimitation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:createMultiplePagesOfContentItems\(\) should return int but returns int\|null\.$#' - identifier: return.type + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$editPolicy\.$#' + identifier: varTag.differentVariable count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getDataForTestFindContentWithLocationCriterion\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' + identifier: property.nonObject count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getFilterFactories\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:getListOfSupportedSortClauses\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$editPolicy\.$#' + identifier: varTag.differentVariable count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php - - message: '#^Parameter \#1 \$sortClause of method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\ContentFilteringTest\:\:performAndAssertSimpleSortClauseQuery\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Filter\\FilteringSortClause, object given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:getDataForTestCountUsersWithUnsupportedHashType\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php - - message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:providerForGetFieldData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Filtering/ContentFilteringTest.php + path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$expectedContentRemoteIds with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:testGetFieldData\(\) has parameter \$expectedUserData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php + path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:assertFoundContentItemsByRemoteIds\(\) has parameter \$list with no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\FieldTypeRegistryPassTest\:\:tagsProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php + path: tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Filtering\\LocationFilteringTest\:\:find\(\) has parameter \$contextLanguages with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\GenericFieldTypeConverterPassTest\:\:assertContainerBuilderHasNoServiceDefinitionWithMethodCall\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Filtering/LocationFilteringTest.php + path: tests/lib/Base/Container/Compiler/GenericFieldTypeConverterPassTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceAuthorizationTest\:\:testCreateLanguageThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\GenericFieldTypeConverterPassTest\:\:assertContainerBuilderHasNoServiceDefinitionWithMethodCall\(\) has parameter \$index with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php + path: tests/lib/Base/Container/Compiler/GenericFieldTypeConverterPassTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceAuthorizationTest\:\:testDeleteLanguageThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:externalStorageHandlerGatewayTagsProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php + path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceAuthorizationTest\:\:testDisableLanguageThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:externalStorageHandlerTagsProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php + path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceAuthorizationTest\:\:testEnableLanguageThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler extends generic class Ibexa\\Contracts\\Core\\FieldType\\GatewayBasedStorage but does not specify its types\: T$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php + path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceAuthorizationTest\:\:testUpdateLanguageNameThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:deleteFieldData\(\) has parameter \$fieldIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php + path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - message: '#^Comparison operation "\<" between int\<80300, 80599\> and 50400 is always false\.$#' - identifier: smaller.alwaysFalse + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:deleteFieldData\(\) should return bool but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php + path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceMaximumSupportedLanguagesTest\:\:testCreateMaximumLanguageLimit\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:getFieldData\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php + path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:hasFieldData\(\) should return bool but return statement is missing\.$#' + identifier: return.missing count: 1 - path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php + path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceMaximumSupportedLanguagesTest\:\:\$createdLanguages type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\TaggedServiceIdsIterator\\DeprecationErrorCollector\:\:getErrors\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php + path: tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php - - message: '#^Result of && is always false\.$#' - identifier: booleanAnd.alwaysFalse + message: '#^Property Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\TaggedServiceIdsIterator\\DeprecationErrorCollector\:\:\$errors type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php + path: tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Language'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Language will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 3 - path: tests/integration/Core/Repository/LanguageServiceTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\CollectionInterface\:\:filter\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LanguageCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LanguageCreateStruct will always evaluate to true\.$#' + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''IteratorAggregate'' and Ibexa\\Contracts\\Core\\Collection\\CollectionInterface will always evaluate to true\.$#' identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:loadLanguagesReturnsAnEmptyArrayByDefault\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testCreateLanguageInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testCreateLanguageInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testCreateLanguageSetsExpectedProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollectionWithExampleData\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testCreateLanguageSetsIdPropertyOnReturnedLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollectionWithExampleData\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testCreateLanguageThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createEmptyCollection\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testDeleteLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createEmptyCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testDeleteLanguageThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:getExampleData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testDisableLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + message: '#^PHPDoc tag @return with type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces is not subtype of native type Ibexa\\Contracts\\Core\\Collection\\CollectionInterface\.$#' + identifier: return.phpDocType + count: 3 + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testEnableLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @template TCollection for class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase has invalid bound type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' + identifier: class.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/AbstractCollectionTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testGetDefaultLanguageCode\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayListTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayListTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\ArrayList does not specify its types\: TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguageById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + message: '#^PHPDoc tag @var for variable \$list contains generic class Ibexa\\Contracts\\Core\\Collection\\ArrayList but does not specify its types\: TValue$#' + identifier: missingType.generics + count: 2 + path: tests/lib/Collection/ArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguageByIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Type Ibexa\\Contracts\\Core\\Collection\\ArrayList in generic type Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\ in PHPDoc tag @extends is not subtype of template type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces of class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\.$#' + identifier: generics.notSubtype count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguageThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:exists\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguageThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:filter\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testLoadLanguages\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:forAll\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Collection/ArrayMapTest.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:map\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testNewLanguageCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testUpdateLanguageName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:createCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\MapInterface does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testUpdateLanguageNameInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:getExampleData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testUpdateLanguageNameInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @return with type Ibexa\\Contracts\\Core\\Collection\\MapInterface\|Ibexa\\Contracts\\Core\\Collection\\StreamableInterface is not subtype of native type Ibexa\\Contracts\\Core\\Collection\\MapInterface\.$#' + identifier: return.phpDocType count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LanguageServiceTest\:\:testUpdateLanguageNameThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @var for variable \$map contains generic class Ibexa\\Contracts\\Core\\Collection\\ArrayMap but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/LanguageServiceTest.php + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/LanguageServiceTest.php + message: '#^Type Ibexa\\Contracts\\Core\\Collection\\ArrayMap in generic type Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\ in PHPDoc tag @extends is not subtype of template type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces of class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\.$#' + identifier: generics.notSubtype + count: 1 + path: tests/lib/Collection/ArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:assertCanUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayListTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php + path: tests/lib/Collection/MutableArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:assertCanUser\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayListTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayList does not specify its types\: TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php + path: tests/lib/Collection/MutableArrayListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\BaseLimitationIntegrationTestCase\:\:loginAsEditorUserWithLimitations\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' + message: '#^PHPDoc tag @var for variable \$list contains generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayList but does not specify its types\: TValue$#' + identifier: missingType.generics + count: 4 + path: tests/lib/Collection/MutableArrayListTest.php + + - + message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayMapTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/BaseLimitationIntegrationTestCase.php + path: tests/lib/Collection/MutableArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\ContentLimitationsMixIntegrationTest\:\:providerForCanUser\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayMapTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayMap does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php + path: tests/lib/Collection/MutableArrayMapTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\ContentLimitationsMixIntegrationTest\:\:testCanUser\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\TrashItemDeleteResult and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\TrashItemDeleteResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php + path: tests/lib/Event/TrashServiceTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' + message: '#^Parameter \#4 \$forwarding of method Ibexa\\Core\\Event\\URLAliasService\:\:createGlobalUrlAlias\(\) expects bool, string given\.$#' identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/ContentLimitationsMixIntegrationTest.php + count: 3 + path: tests/lib/Event/URLAliasServiceTest.php - - message: '#^Cannot access property \$contentInfo on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' - identifier: property.nonObject - count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php + message: '#^Parameter \#4 \$forwarding of method Ibexa\\Core\\Event\\URLAliasService\:\:createUrlAlias\(\) expects bool, string given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Event/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:providerForCanUserEditOrPublishContent\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php + message: '#^Parameter \#5 \$alwaysAvailable of method Ibexa\\Core\\Event\\URLAliasService\:\:createGlobalUrlAlias\(\) expects bool, string given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Event/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:testCanUserEditContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php + message: '#^Parameter \#5 \$alwaysAvailable of method Ibexa\\Core\\Event\\URLAliasService\:\:createUrlAlias\(\) expects bool, string given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Event/URLAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Limitation\\PermissionResolver\\LocationLimitationIntegrationTest\:\:testCanUserReadTrashedContent\(\) has parameter \$limitations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php + path: tests/lib/Event/URLWildcardServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testCopySubtreeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + message: '#^Parameter \#3 \$forward of method Ibexa\\Core\\Event\\URLWildcardService\:\:create\(\) expects bool, string given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Event/URLWildcardServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testCreateLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + message: '#^Access to an undefined property Ibexa\\Core\\FieldType\\Validator\\EmailAddressValidator\:\:\$Extent\.$#' + identifier: property.notFound + count: 4 + path: tests/lib/FieldType/EmailAddressValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentManageLocationsPolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\EmailAddressValidator will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/EmailAddressValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testDeleteLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + message: '#^Access to an undefined property Ibexa\\Core\\FieldType\\Validator\\FileSizeValidator\:\:\$unexisting\.$#' + identifier: property.notFound + count: 2 + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testDeleteLocationWithSubtreeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Translation\\Message\:\:\$message\.$#' + identifier: property.protected count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testHideLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Translation\\Message\:\:\$values\.$#' + identifier: property.protected count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testLoadLocationByRemoteIdThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\FileSizeValidator will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testLoadLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$message with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testLoadLocationsNoAccess\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$size with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testMoveSubtreeThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$values with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testSwapLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + message: '#^Unreachable statement \- code above always terminates\.$#' + identifier: deadCode.unreachable + count: 3 + path: tests/lib/FieldType/FileSizeValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testUnhideLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Float\\Value constructor expects float\|null, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/FloatTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceAuthorizationTest\:\:testUpdateLocationThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:__construct\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/Generic/Stubs/Value.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:getValue\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/FieldType/Generic/Stubs/Value.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, string given\.$#' - identifier: argument.type + message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:\$value has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/LocationServiceAuthorizationTest.php + path: tests/lib/FieldType/Generic/Stubs/Value.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\FieldType\\ImageAsset\\AssetMapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 4 + path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 10 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:expects\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:createPartialMapper\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationList'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationList will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:dataProviderForIsAsset\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\LocationUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Property Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:\$mappings type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Integer\\Value constructor expects int\|null, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php - - - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' - identifier: property.nonObject - count: 9 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/IntegerTest.php - - message: '#^Cannot call method getContentInfo\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' - identifier: method.nonObject + message: '#^Parameter \#1 \$contentId of method Ibexa\\Tests\\Core\\FieldType\\RelationListTest\:\:generateValidationError\(\) expects string, int given\.$#' + identifier: argument.type count: 2 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/RelationListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertAliasesBeforeCopy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$value of method Ibexa\\Core\\FieldType\\RelationList\\Type\:\:getRelations\(\) expects Ibexa\\Core\\FieldType\\RelationList\\Value, Ibexa\\Core\\FieldType\\Value given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/RelationListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertAliasesBeforeCopy\(\) has parameter \$expectedSubItemAliases with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$fieldValue of method Ibexa\\Core\\FieldType\\Relation\\Type\:\:getRelations\(\) expects Ibexa\\Core\\FieldType\\Relation\\Value, Ibexa\\Core\\FieldType\\Value given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/RelationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertDefaultContentStates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Parameter \#1 \$selection of class Ibexa\\Core\\FieldType\\Selection\\Value constructor expects array\, array\ given\.$#' + identifier: argument.type + count: 4 + path: tests/lib/FieldType/SelectionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertGeneratedAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access offset ''urlId'' on array\|bool\|float\|int\|string\|null\.$#' + identifier: offsetAccess.nonOffsetAccessible + count: 2 + path: tests/lib/FieldType/Url/UrlStorageTest.php + + - + message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:\$gatewayMock \(Ibexa\\Core\\FieldType\\Url\\UrlStorage\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/Url/UrlStorageTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertGeneratedAliases\(\) has parameter \$expectedAliases with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:\$loggerMock \(PHPUnit\\Framework\\MockObject\\MockObject&Psr\\Log\\LoggerInterface\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/Url/UrlStorageTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$link of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has parameter \$expectedValues with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:providerForTestCreatePersistenceValue\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertSubtreeProperties\(\) has parameter \$stopId with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:providerForTestValidate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:dataProviderForOutOfRangeLocationPriority\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testCreatePersistenceValue\(\) has parameter \$expectedFieldValueExternalData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadLocationProperties\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testCreatePersistenceValue\(\) has parameter \$userValueDate with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadSubtreeProperties\(\) has parameter \$properties with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testValidate\(\) has parameter \$expectedValidationErrors with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/UserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:loadSubtreeProperties\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\StringLengthValidator will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/FieldType/Validator/StringLengthValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:providerForLoadLocationChildrenRespectsParentSortingClauses\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Constant Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:DEFAULT_GROUP_NAME is unused\.$#' + identifier: classConstant.unused count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testBookmarksAreSwappedAfterSwapLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:getArrayTranslatorFieldsGroupsList\(\) has parameter \$groups with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCopySubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:getFieldDefinitionMock\(\) has parameter \$constructorArgs with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCopySubtreeIncrementsChildCountOfNewParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:\$translatorMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCopySubtreeThrowsInvalidArgumentException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedField\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCopySubtreeUpdatesSubtreeProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedField\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCopySubtreeWithAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedName\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameByContentInfo\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$language with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$relatedSiteAccesses with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBelowParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$translationSiteAccesses with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocationOfContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:\$siteAccessByLanguages has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Helper/TranslationHelperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\IO\\ConfigScopeChangeAwareIOServiceTest\:\:\$innerIOService \(Ibexa\\Core\\IO\\ConfigScopeChangeAwareIOService&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\IOServiceInterface&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has parameter \$priority with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\IO\\FilePathNormalizer\\FlysystemTest\:\:providerForTestNormalizePath\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$suffix of static method PHPUnit\\Framework\\Assert\:\:assertStringEndsWith\(\) expects non\-empty\-string, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testDeleteContentObjectLastLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testDeleteLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testDeleteLocationDecrementsChildCountOnParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testDeleteLocationDeletesRelatedBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testGetLocationChildCount\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testHideLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationByRemoteIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationChildren\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationChildrenData\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationChildrenRespectsParentSortingClauses\(\) has parameter \$expectedChildrenNames with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationListInCorrectOrder\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationListWithRootLocationId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\IOMetadataHandler\\FlysystemTest\:\:getDataForFileExists\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/IOMetadataHandler/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationPrioritizedLanguagesFallback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\IO\\IOMetadataHandler\\FlysystemTest\:\:\$handler \(Ibexa\\Core\\IO\\IOMetadataHandler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\IOMetadataHandler\\Flysystem\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/IOMetadataHandler/FlysystemTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationRootStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$decoratedUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$prefix with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$decoratedUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$prefix with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsContent\(\) has parameter \$locations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlDecorator/PrefixTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsLimitedSubtreeContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\IO\\UrlRedecoratorTest\:\:\$redecorator \(Ibexa\\Core\\IO\\UrlRedecorator&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\UrlRedecorator\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/IO/UrlRedecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\Base\:\:getPersistenceMock\(\) has parameter \$mockMethods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadLocationsThrowsBadStateExceptionLimitedSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\Base\:\:getUserMock\(\) has parameter \$mockMethods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadParentLocationsForDraftContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testLoadParentLocationsForDraftContentThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testMoveInvisibleSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testMoveSubtreeDecrementsChildCountOfOldParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testMoveSubtreeIncrementsChildCountOfNewParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testMoveSubtreeUpdatesSubtreeProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testMoveSubtreeUpdatesSubtreePropertiesHidden\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testNewLocationCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testNewLocationUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testSwapLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testSwapLocationDoesNotCorruptSearchResults\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testSwapLocationForMainAndSecondaryLocation\(\) should return array\ but returns array\\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testSwapLocationUpdatesMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUnhideLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUnhideLocationNotUnhidesHiddenSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:dataProviderForAccept\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:dataProviderForEvaluate\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:getLanguageLimitation\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange\(\) has parameter \$priority with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:getTergetVersion\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationTwice\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:testUpdateLocationWithSameRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#1 \$expectedLocations of method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:assertContentHasExpectedLocations\(\) expects array\, array\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#1 \$location of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:moveSubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 23 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$actualObject of method Ibexa\\Tests\\Integration\\Core\\Repository\\BaseTestCase\:\:assertPropertiesCorrect\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$location2 of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:swapLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$newParentLocation of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:moveSubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$parentLocationId of method Ibexa\\Tests\\Integration\\Core\\Repository\\LocationServiceTest\:\:publishContentWithParentLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 8 - path: tests/integration/Core/Repository/LocationServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Parameter \#2 \$targetParentLocation of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:copySubtree\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/LocationServiceTest.php + path: tests/lib/Limitation/LocationLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:assertFieldIds\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:mapFields\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentDefaultValuesFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentDefaultValuesNoStructFieldsFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestEvaluateSelfGroup\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentDraftFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentDraftFieldsRetainsIds\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentEmptyValuesFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:testEvaluateSelfGroup\(\) has parameter \$currentUserGroupLocations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentEmptyValuesTranslationNotStoredFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentTwoLanguagesMainTranslationStoredFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentTwoLanguagesNoValuesForMainLanguageFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testCreateContentTwoLanguagesSecondTranslationNotStoredFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopyFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testUpdateContentWithNewLanguageFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testUpdateContentWithNewLanguageNoValuesFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testUpdateContentWithNewLanguageVariantFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreatedFields\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - message: '#^Parameter \#1 \$fields of method Ibexa\\Tests\\Integration\\Core\\Repository\\NonRedundantFieldSetTest\:\:mapFields\(\) expects array\, iterable\ given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/NonRedundantFieldSetTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testCreateObjectStateGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testCreateObjectStateThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:\$loadObjectStatesMap type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testDeleteObjectStateGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:getTestEvaluateContentMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testDeleteObjectStateThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:getTestEvaluateVersionInfoMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testSetContentStateThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testSetPriorityOfObjectStateThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testUpdateObjectStateGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceAuthorizationTest\:\:testUpdateObjectStateThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState\:\:\$defaultLanguageCode\.$#' - identifier: property.notFound - count: 2 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState\:\:\$names\.$#' - identifier: property.notFound + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectState'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectState will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 9 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$object with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroup'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroup will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 7 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistence with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ObjectState\\\\ObjectStateUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\ObjectState\\ObjectStateUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has parameter \$expectedIdentifiers with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:assertObjectsLoadedByIdentifiers\(\) has parameter \$loadedObjects with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:createObjectState\(\) has parameter \$descriptions with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:createObjectState\(\) has parameter \$names with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:deleteExistingObjectStateGroups\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) has parameter \$groups with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getPrioritizedLanguagesList\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Instanceof between Ibexa\\Core\\Repository\\Values\\User\\UserRoleAssignment and Ibexa\\Core\\Repository\\Values\\User\\User will always evaluate to false\.$#' + identifier: instanceof.alwaysFalse count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/RoleLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateGroupStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/RoleLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/RoleLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateInEmptyGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/RoleLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testCreateObjectStateThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testDeleteObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testDeleteObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testGetContentCount\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testGetContentState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testGetInitialObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SectionLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroupWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroups\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroupsWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroupsWithOffsetAndLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateGroupsWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateThrowsNotFoundException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getContentMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStateWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getContentMock\(\) has parameter \$shouldBeCalled with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStates\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getVersionInfoMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testLoadObjectStatesWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getVersionInfoMock\(\) has parameter \$shouldBeCalled with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateGroupUpdateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/StatusLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testNewObjectStateUpdateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testSetContentState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testSetContentStateThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testSetPriorityOfObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateChosenFieldsOnly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupChosenFieldsOnly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest\.php\:47\:\:getTwigVariables\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateStructValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\ContentViewTwigVariablesSubscriberTest\:\:getRegistry\(\) has parameter \$providers with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:testUpdateObjectStateThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest\.php\:47\:\:\$identifier has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - message: '#^Parameter \#1 \$groups of method Ibexa\\Tests\\Integration\\Core\\Repository\\ObjectStateServiceTest\:\:getGroupIdentifierMap\(\) expects array, iterable\ given\.$#' + message: '#^Parameter \#1 \$translationHelper of class Ibexa\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListener constructor expects Ibexa\\Core\\Helper\\TranslationHelper, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/ObjectStateServiceTest.php + count: 3 + path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - message: '#^Parameter \#1 \$execution of class Jenner\\SimpleFork\\Process constructor expects string\|null, Closure given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:dataProviderForTestGetViewParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Parallel/BaseParallelTestCase.php + path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$hasAccess\.$#' - identifier: property.protected - count: 3 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$lookupPolicyLimitations\.$#' - identifier: property.protected - count: 8 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$status with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupLimitationResult\:\:\$roleLimitations\.$#' - identifier: property.protected - count: 3 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupPolicyLimitations\:\:\$policy\.$#' - identifier: property.protected - count: 3 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$status with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject - count: 2 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$desinationContentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:getDataForTestCanUserWithLimitations\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserForAdministratorUser\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getLocaleConverterMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserForAnonymousUserNo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getRequestStackMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getRequestStackMock\(\) has parameter \$hasLocale with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expectedLocale with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithLimitationNo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$hasRequestLocale with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithLimitationYes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Locale\\LocaleConverterTest\:\:convertToPOSIXProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithLimitations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Locale\\LocaleConverterTest\:\:\$conversionMap \(array\{array\{string, string\|null\}\}\) does not accept array\{eng\-GB\: ''en_GB'', eng\-US\: ''en_US'', fre\-FR\: ''fr_FR'', ger\-DE\: ''de_DE'', nor\-NO\: ''no_NO'', cro\-HR\: ''hr_HR''\}\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithLimitations\(\) has parameter \$targets with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getContentInfoMock\(\) has parameter \$properties with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithMultipleTargetsNo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getLocationMock\(\) has parameter \$properties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithMultipleTargetsYes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getPartiallyMockedViewProvider\(\) has parameter \$matchingConfig with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithTargetNo\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getPermissionResolverMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithTargetThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Depth\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testCanUserWithTargetYes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Depth\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testGetCurrentUserReferenceReturnsAnonymousUserReference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testHasAccessForCurrentUserNo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testHasAccessForCurrentUserYes\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testHasAccessLimited\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroup\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testHasAccessWithAdministratorUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroup\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testHasAccessWithAnonymousUserNo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\PermissionResolverTest\:\:testSetCurrentUserReference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - message: '#^Parameter \#1 \$array of function array_filter expects array, iterable\ given\.$#' + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - message: '#^Parameter \#1 \$policy of class Ibexa\\Contracts\\Core\\Repository\\Values\\User\\LookupPolicyLimitations constructor expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/PermissionResolverTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' - identifier: class.notFound + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018LanguageTest\:\:testSearchOnNotExistingLanguageGivesException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018LanguageTest\:\:testSearchOnNotUsedInstalledLanguageGivesNoResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018LanguageTest\:\:testSearchOnStandardLanguageGivesManyResult\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018LanguageTest\:\:testSearchOnUsedLanguageGivesOneResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocation\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018ObjectStateTest\:\:testSearchForNonUsedObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocation\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018ObjectStateTest\:\:testSearchForUsedObjectState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018VisibilityTest\:\:testSearchForHiddenContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP20018VisibilityTest\:\:testSearchForVisibleContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21069Test\:\:testSearchOnCurrentAttributeContentGivesOnesResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21069Test.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21069Test\:\:testSearchOnDraftAttributeContentGivesNoResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21069Test.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21069Test\:\:testSearchOnPreviousAttributeContentGivesNoResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21069Test.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21089Test\:\:testCreateContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/Regression/EZP21089Test.php + message: '#^Parameter \#1 \$contentTypeIdentifier of method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:generateRepositoryMockForContentTypeIdentifier\(\) expects int, string given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21089Test\:\:\$contentType \(Ibexa\\Core\\Repository\\Values\\ContentType\\ContentType\) does not accept Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType\.$#' - identifier: assign.propertyType + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21089Test.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21109IbexaIntegerTest\:\:validIntegerValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\VersionInfo\:\:\$names\.$#' - identifier: property.notFound + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21771IbexaStringTest\:\:test11NumbersOnIbexaString\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/Regression/EZP21798Test.php + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21906SearchOneContentMultipleLocationsTest\:\:searchContentQueryProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\Section\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21906SearchOneContentMultipleLocationsTest\:\:testSearchContentMultipleLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\Section\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP21906SearchOneContentMultipleLocationsTest\:\:testSearchContentMultipleLocations\(\) has parameter \$expectedResultCount with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php + + - + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:getMultipleValuedMatcherMock\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:createReferenceObject\(\) has parameter \$relationListTarget with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:matchingConfigProvider\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:createTestContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:testSetMatchingConfig\(\) has parameter \$matchingConfig with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:testRelationListIsUpdatedWhenRelatedObjectIsDeleted\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAlias\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22408DeleteRelatedObjectTest\:\:testSingleRelationIsUpdatedWhenRelatedObjectIsDeleted\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAlias\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22409RelationListTypeStateTest\:\:createContentWithRelationList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php + path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22409RelationListTypeStateTest\:\:testCreateObjectWithRelationToContentType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ConfigurableMatcherFactoryInterface\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22409RelationListTypeStateTest\:\:testCreateObjectWithRelationToContentTypeWithExistingDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:matchConfigProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLAlias'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLAlias will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$matchedConfig with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$namespace with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:getFolderCreateStruct\(\) has parameter \$name with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$parameterName with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22612URLAliasTranslationsTest\:\:testURLAliasLoadedInRightLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$scope with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$viewsConfiguration with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php + path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitationsTest\:\:testSectionRoleAssignLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22840RoleLimitationsTest\:\:testSubtreeRoleAssignLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$referenceType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:searchContentQueryProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$urlResource with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:searchContentQueryWithInvalidDataProvider\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$referenceType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtree\(\) has parameter \$pathString with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$urlResource with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtreeShouldThrowException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerate\(\) has parameter \$params with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP22958SearchSubtreePathstringFormatTest\:\:testSearchContentSubtreeShouldThrowException\(\) has parameter \$pathString with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerate\(\) has parameter \$resource with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php + path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP26327UrlAliasHistorizationTest\:\:testHistorization\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php + message: '#^Parameter \#1 \$dispatcher of class Ibexa\\Core\\MVC\\Symfony\\Routing\\Generator\\RouteReferenceGenerator constructor expects Symfony\\Component\\EventDispatcher\\EventDispatcherInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type + count: 4 + path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP26367UrlAliasHistoryRedirectLoopTest\:\:testLookupHistoryUrlReturnsActiveAlias\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP26367UrlAliasHistoryRedirectLoopTest\:\:testReverseLookupReturnsHistoryAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerate\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 4 - path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerate\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP26551DeleteContentTypeDraftTest\:\:testDeleteContentTypeGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$isOutsideAndNotExcluded with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP28799SubtreeSearchTest\:\:testConflictingConditions\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$pathPrefix with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EZP28799SubtreeSearchTest\:\:testNegativeSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateWithSiteAccessParam\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testIsPrefixExcluded\(\) has parameter \$expectedIsExcluded with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testIsPrefixExcluded\(\) has parameter \$uri with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\EnvTest\:\:testVerifyCacheDriver\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:getRequestByPathInfo\(\) has parameter \$pathInfo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/EnvTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\PureNegativeQueryTest\:\:providerForTestMatchAll\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testSupports\(\) has parameter \$isSupported with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\PureNegativeQueryTest\:\:testMatchAllContentInfoFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testSupports\(\) has parameter \$routeReference with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\PureNegativeQueryTest\:\:testMatchAllContentInfoQuery\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:\$requestContext has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php + path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\PureNegativeQueryTest\:\:testMatchAllLocationFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Regression\\PureNegativeQueryTest\:\:testMatchAllLocationQuery\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$path with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ContentService'' and Ibexa\\Contracts\\Core\\Repository\\ContentService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$requestUri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ContentTypeService'' and Ibexa\\Contracts\\Core\\Repository\\ContentTypeService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$siteAccessUri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\FieldTypeService'' and Ibexa\\Contracts\\Core\\Repository\\FieldTypeService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\LanguageService'' and Ibexa\\Contracts\\Core\\Repository\\LanguageService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$isUriRouteName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\LocationService'' and Ibexa\\Contracts\\Core\\Repository\\LocationService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$siteAccessUri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\NotificationService'' and Ibexa\\Contracts\\Core\\Repository\\NotificationService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$uri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\ObjectStateService'' and Ibexa\\Contracts\\Core\\Repository\\ObjectStateService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$expected with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\PermissionResolver'' and Ibexa\\Contracts\\Core\\Repository\\PermissionResolver will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$isUriRouteName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\RoleService'' and Ibexa\\Contracts\\Core\\Repository\\RoleService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$uri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\SearchService'' and Ibexa\\Contracts\\Core\\Repository\\SearchService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\:\:\$matcher \(Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\) does not accept Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\URILexer&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType + count: 2 + path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\SectionService'' and Ibexa\\Contracts\\Core\\Repository\\SectionService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Parameter \#1 \$expirationDate of class Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PasswordInfo constructor expects DateTimeImmutable\|null, DateTimeImmutable\|false given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/UserCheckerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\TrashService'' and Ibexa\\Contracts\\Core\\Repository\\TrashService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsAttribute\(\) has parameter \$attribute with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\URLAliasService'' and Ibexa\\Contracts\\Core\\Repository\\URLAliasService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsAttribute\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\URLWildcardService'' and Ibexa\\Contracts\\Core\\Repository\\URLWildcardService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsClass\(\) has parameter \$class with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\UserService'' and Ibexa\\Contracts\\Core\\Repository\\UserService will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVote\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVote\(\) has parameter \$repositoryCanUser with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testCommitThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVoteInvalidAttribute\(\) has parameter \$attributes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetContentLanguageService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsAttribute\(\) has parameter \$attribute with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetContentService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsAttribute\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetContentTypeService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsClass\(\) has parameter \$class with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetFieldTypeService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVote\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetLocationService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVote\(\) has parameter \$repositoryCanUser with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetNotificationService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVoteInvalidAttribute\(\) has parameter \$attributes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetObjectStateService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundAndTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetPermissionResolver\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundAndTest\:\:testMatch\(\) has parameter \$expectedMatch with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetRoleService\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundOrTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetSearchService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:getExistingSiteProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetSectionService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:siteAccessNamesProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetTrashService\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + message: '#^Parameter \#2 \$groupsBySiteAccess of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\StaticSiteAccessProvider constructor expects array\, array\\> given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetURLAliasService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\:\:\$groups \(array\\) does not accept array\\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetURLWildcardService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:\$groupsBySiteAccess type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testGetUserService\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterBaseTestCase\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Host constructor invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RepositoryTest\:\:testRollbackThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RepositoryTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testAssignRoleToUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$elementNumber with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimitationParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$expectedHost with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testAssignRoleToUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitationParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testCreateRoleThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + message: '#^Parameter \#1 \$map of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Port constructor expects array\, array\ given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testDeletePolicyThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\Routing\\\\SimplifiedRequest'' and Ibexa\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequest will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testDeleteRoleThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\HostText constructor invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testGetRoleAssignmentsForUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostTextTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testSetGetRequest\(\) has parameter \$config with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testGetRoleAssignmentsForUserWithSubtreeLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterPortHostURITest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testGetRoleAssignmentsThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Port constructor invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testLoadRoleByIdentifierThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterSpecialPortsTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testLoadRoleThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:createRouter\(\) has parameter \$debug with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testLoadRolesForUserWithSubtreeLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testLoadRolesLoadsEmptyListForAnonymousUser\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testConstructDebug\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testRemovePolicyThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatch\(\) has parameter \$siteAccess with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testRemoveRoleAssignmentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatch\(\) has parameter \$originalPathinfo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceAuthorizationTest\:\:testUpdatePolicyByRoleDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - message: '#^Parameter \#2 \$policyDraft of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:removePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\|false given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testReverseMatch\(\) has parameter \$originalPathinfo with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceAuthorizationTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupRoleAssignment\:\:\$id\.$#' - identifier: property.protected + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Limitation'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Limitation will always evaluate to true\.$#' + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\Routing\\\\SimplifiedRequest'' and Ibexa\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequest will always evaluate to true\.$#' identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Policy'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\URIText constructor invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count + count: 1 + path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\PolicyCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\PolicyUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:getAvailableSitAccesses\(\) return type with generic class ArrayIterator does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Role'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:getConfigResolverParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\Role'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleDraft will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Parameter \#2 \$groupsBySiteAccess of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\StaticSiteAccessProvider constructor expects array\, array\\> given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:\$availableSiteAccesses with generic class ArrayIterator does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleDraft'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleDraft will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 4 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:\$configResolverParameters type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\RoleUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Anonymous function has an unused use \$content\.$#' + identifier: closure.unusedUse count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - message: '#^Cannot access property \$limitation on Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleAssignment\|false\.$#' - identifier: property.nonObject + message: '#^Anonymous function has an unused use \$siteAccess\.$#' + identifier: closure.unusedUse count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - message: '#^Cannot call method getIdentifier\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Limitation\\RoleLimitation\|null\.$#' - identifier: method.nonObject + message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerReference'' and Symfony\\Component\\HttpKernel\\Controller\\ControllerReference will always evaluate to true\.$#' + identifier: method.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - message: '#^Method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:newRoleUpdateStruct\(\) invoked with 1 parameter, 0 required\.$#' - identifier: arguments.count + message: '#^Argument of an invalid type string supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:providerForCopyRoleTests\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:getExtensions\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:getLocale\(\) should return string but returns array\\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftSetsPolicyProperties\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:setConfigurationLocale\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftSetsPolicyProperties\(\) has parameter \$roleAndPolicy with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 115 on line 2$#' + identifier: phpDoc.parseError count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Core\\MVC\\Symfony\\Locale\\LocaleConverterInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 114 on line 2$#' + identifier: phpDoc.parseError + count: 1 + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyByRoleDraftUpdatesRole\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @param has invalid value \(\\Symfony\\Contracts\\Translation\\TranslatorInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 109 on line 2$#' + identifier: phpDoc.parseError count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAddPolicyWithRoleAssignment\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$configResolverInterfaceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$locale has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$localeConverterInterfaceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroupAffectsRoleAssignmentsForUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$suffixes has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$translatorMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroupWithRoleLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Anonymous function should return non\-empty\-string but returns non\-empty\-string\|false\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\RoutingExtensionTest\:\:getExampleRouteReference\(\) has parameter \$name with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\RoutingExtensionTest\:\:getExampleRouteReference\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:badTemplateIdentifierProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserWithRoleLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testAssignRoleToUserWithRoleLimitationThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRole\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:goodTemplateIdentifierProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleDraftInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$templateIdentifier of method Ibexa\\Core\\MVC\\Symfony\\View\\View\:\:setTemplateIdentifier\(\) expects \(Closure\(array\\)\: string\)\|string, \(callable\(\)\: mixed\)\|string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleDraftThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilderTest\:\:\$contentViewBuilder \(Ibexa\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilder&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilder\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleDraftWithAddPolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleWithAddPolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstruct\(\) has parameter \$params with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleWithMultiplePolicies\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstruct\(\) has parameter \$templateIdentifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testCreateRoleWithPolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstructFail\(\) has parameter \$templateIdentifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testDeleteRole\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:\$valueParams type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testDeleteRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testGetRoleAssignmentsContainExpectedLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testGetRoleAssignmentsForUserDirect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testGetRoleAssignmentsForUserEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testGetRoleAssignmentsForUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/View/VariableProviderRegistryTest\.php\:29\:\:getTwigVariables\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testGetRoleAssignmentsForUserInherited\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\VariableProviderRegistryTest\:\:getRegistry\(\) has parameter \$providers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadPoliciesByUserId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/View/VariableProviderRegistryTest\.php\:29\:\:\$identifier has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRole\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:\$viewBaseLayout has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Pagination\\AdapterFactory\\SearchHitAdapterFactoryTest\:\:dataProviderForCreateFixedAdapter\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Parameter \#3 \$languageFilter of class Ibexa\\Core\\Pagination\\Pagerfanta\\ContentFilteringAdapter constructor expects array\\|null, array\\|true\> given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Pagination/ContentFilteringAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:getCacheItem\(\) has parameter \$key with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleDraftByRoleId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:provideAbstractCacheHandlerArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleDraftByRoleIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:provideInMemoryCacheHandlerArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleDraftThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoleThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRoles\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testLoadRolesReturnsExpectedSetOfDefaultRoles\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewPolicyCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewPolicyCreateStructSetsStructProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewPolicyUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewRoleCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewRoleCreateStructSetsNamePropertyOnStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testNewRoleUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testPublishRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testPublishRoleDraftAddPolicies\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRemovePolicyByRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRemoveRoleAssignment\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRemoveRoleAssignmentFromUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValues\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$key with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValuesWithPolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testRoleCreateStructValuesWithPolicy\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUnassignRoleByAssignment\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUnassignRoleByAssignmentThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' + identifier: argument.named + count: 2 + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUnassignRoleByAssignmentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Offset int might not exist on array\|null\.$#' + identifier: offsetAccess.notFound + count: 5 + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyByRoleDraft\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, string\} given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyByRoleDraftNoLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyByRoleDraftThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + identifier: argument.templateType + count: 3 + path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyUpdatesLimitations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyUpdatesLimitations\(\) has parameter \$roleAndPolicy with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdatePolicyUpdatesRole\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdateRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\RoleServiceTest\:\:testUpdateRoleDraftThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php - - - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Parameter \#1 \.\.\.\$arrays of function array_merge expects array, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft\|null given\.$#' - identifier: argument.type - count: 3 - path: tests/integration/Core/Repository/RoleServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Parameter \#2 \$policyDraft of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:removePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Variable \$role might not be defined\.$#' - identifier: variable.undefined + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/RoleServiceTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$mainLocationId\.$#' - identifier: property.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$publishedDate\.$#' - identifier: property.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Access to an undefined property Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:\$remoteId\.$#' - identifier: property.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:assertContentIdSearch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:assertSubtreeInvisibleProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContent\(\) has parameter \$parentLocationIdList with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithNameAndDescription\(\) has parameter \$contentDescription with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$key with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithNameAndDescription\(\) has parameter \$parentLocationIdList with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:getEmailAddressesCases\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:getSpecialFullTextCases\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tags with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testAssignSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' + identifier: argument.named + count: 2 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testCopyContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Offset int might not exist on array\|null\.$#' + identifier: offsetAccess.notFound + count: 5 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testCopySubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, string\} given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testCreateLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testCreateUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + identifier: argument.templateType + count: 3 + path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testCreateUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:arrayAsGenerator\(\) has parameter \$array with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:createCacheItem\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:providerForClearAndInvalidation\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteTranslation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:providerForDelete\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testClearAndInvalidation\(\) has parameter \$argument with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testDelete\(\) has parameter \$argument with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testDeleteVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testFindContentInfoFullTextIsNotSearchable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testFindContentInfoFullTextIsSearchable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testFindLocationsFullTextIsNotSearchable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testFindLocationsFullTextIsSearchable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testHideSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testIndexContentWithNullField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testIndexingSpecialFullTextCases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testMoveSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testPublishVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testRecoverLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testRemovedContentFieldValueIsNotFound\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testRevealSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, ''publish''\} given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testSetContentState\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testSwapLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$value of method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:getCacheItem\(\) expects null, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testUpdateContentDraftMetadataIsNotIndexed\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + identifier: argument.templateType count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testUpdateContentMetadata\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Variable \$tags in empty\(\) always exists and is not falsy\.$#' + identifier: empty.variable count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testUpdateLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateKey\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testUpdateUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateKeyThrowsInvalidArgumentException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:testUserFullTextSearch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateTag\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^PHPDoc tag @param references unknown parameter\: \$ignoreForSetupFactories$#' - identifier: parameter.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateTagThrowsInvalidArgumentException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php - - - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 4 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\LocationId constructor expects array\\|int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateKey\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Parameter \#1 \$value of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ParentLocationId constructor expects array\\|int, int\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateKeyThrowsInvalidArgumentException\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Parameter \#2 \$fieldDefinition of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:updateFieldDefinition\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition, Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\FieldDefinition\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateTag\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Parameter \#2 \$parentLocationIdList of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchEngineIndexingTest\:\:createContentWithName\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/SearchEngineIndexingTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateTagThrowsInvalidArgumentException\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - message: '#^Cannot call method first\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\AggregationResultCollection\|null\.$#' - identifier: method.nonObject - count: 2 - path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierSanitizerTest\:\:providerForTestEscapeCacheKey\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\AbstractAggregationTestCase\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierSanitizerTest\:\:testEscapeCacheKey\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php + path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\AbstractAggregationTestCase\:\:dataProviderForTestFindLocationWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Function Ibexa\\Core\\Persistence\\Cache\\InMemory\\microtime\(\) has parameter \$asFloat with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/AbstractAggregationTestCase.php + path: tests/lib/Persistence/Cache/InMemory/InMemoryCacheTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ContentTypeGroupTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeGroupTermAggregationTest.php + path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ContentTypeTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/ContentTypeTermAggregationTest.php + path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:build\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php + path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:setExpectedEntries\(\) has parameter \$entries with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:providerForTestConvertToPathIds\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php + path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DataSetBuilder\\TermAggregationDataSetBuilder\:\:\$entries type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:testConvertToPathIds\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/DataSetBuilder/TermAggregationDataSetBuilder.php + path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\DateMetadataRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:testConvertToPathIds\(\) has parameter \$resultArray with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/DateMetadataRangeAggregationTest.php + path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\AuthorTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/AuthorTermAggregationTest.php + path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\CheckboxTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/CheckboxTermAggregationTest.php + path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\CountryTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/CountryTermAggregationTest.php + path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\DateRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/DateRangeAggregationTest.php + path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\DateTimeRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/DateTimeRangeAggregationTest.php + path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\FloatRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatRangeAggregationTest.php + path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\FloatStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/FloatStatsAggregationTest.php + path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\IntegerRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerRangeAggregationTest.php + path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\IntegerStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/IntegerStatsAggregationTest.php + path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\KeywordTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/KeywordTermAggregationTest.php + path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\SelectionTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/SelectionTermAggregationTest.php + path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\Field\\TimeRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/Field/TimeRangeAggregationTest.php + path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:setValues\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - message: '#^Parameter \#1 \$contentTypeIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - message: '#^Parameter \#2 \$fieldDefinitionIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - message: '#^Parameter \#2 \$fieldDefinitionIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) expects string, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - message: '#^Parameter \#3 \$fieldTypeIdentifier of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createContentTypeForFieldAggregation\(\) expects string, string\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - message: '#^Parameter \#3 \$values of method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:createFieldAggregationFixtures\(\) expects iterable, iterable\|null given\.$#' + message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + count: 3 + path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - message: '#^Property Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\FixtureGenerator\\FieldAggregationFixtureGenerator\:\:\$values type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/FixtureGenerator/FieldAggregationFixtureGenerator.php + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + identifier: argument.templateType + count: 3 + path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\LanguageTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/LanguageTermAggregationTest.php + path: tests/lib/Persistence/Cache/URLHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\LocationChildrenTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/LocationChildrenTermAggregationTest.php + path: tests/lib/Persistence/Cache/URLHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\ObjectStateTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/ObjectStateTermAggregationTest.php + path: tests/lib/Persistence/Cache/URLHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawRangeAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/RawRangeAggregationTest.php + path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawStatsAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/RawStatsAggregationTest.php + path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\RawTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/RawTermAggregationTest.php + path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\SectionTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/SectionTermAggregationTest.php + path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\SubtreeTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/SubtreeTermAggregationTest.php + path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createGroupTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php + path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createModifierTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php + path: tests/lib/Persistence/Cache/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:createOwnerTermAggregationDataSet\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php + path: tests/lib/Persistence/Cache/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php + path: tests/lib/Persistence/Cache/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\UserMetadataTermAggregationTest\:\:dataProviderForTestFindLocationWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/UserMetadataTermAggregationTest.php + path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\Aggregation\\VisibilityTermAggregationTest\:\:dataProviderForTestFindContentWithAggregation\(\) return type has no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/Aggregation/VisibilityTermAggregationTest.php + path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\DeleteTranslationTest\:\:createTestContentWithLanguages\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/DeleteTranslationTest.php - - - - message: '#^Parameter \#1 \$array of function array_column expects array, iterable\ given\.$#' - identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/SearchService/MultilingualContentSearchIndexingTest.php - - - - message: '#^Cannot access offset 0 on array\\|bool\|float\|int\|string\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 1 - path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php + path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\RemoteIdIndexingTest\:\:getRemoteIDs\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Persistence\\\\FieldType'' and Ibexa\\Contracts\\Core\\Persistence\\FieldType will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType + count: 3 + path: tests/lib/Persistence/FieldTypeRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\RemoteIdIndexingTest\:\:providerForTestIndexingRemoteId\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:getFieldTypeMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\FieldType but returns Ibexa\\Contracts\\Core\\FieldType\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php + path: tests/lib/Persistence/FieldTypeRegistryTest.php - - message: '#^Part \$criterion\-\>value \(array\\|bool\|float\|int\|string\) of encapsed string cannot be cast to string\.$#' - identifier: encapsedStringPart.nonString + message: '#^Parameter \#1 \$coreFieldTypes of class Ibexa\\Core\\Persistence\\FieldTypeRegistry constructor expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php + path: tests/lib/Persistence/FieldTypeRegistryTest.php - - message: '#^Possibly invalid array key type bool\|float\|int\|string\.$#' - identifier: offsetAccess.invalidOffset + message: '#^Parameter \#1 \$coreFieldTypes of class Ibexa\\Core\\Persistence\\FieldTypeRegistry constructor expects array\, array\ given\.$#' + identifier: argument.type count: 2 - path: tests/integration/Core/Repository/SearchService/RemoteIdIndexingTest.php + path: tests/lib/Persistence/FieldTypeRegistryTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$remoteId\.$#' - identifier: property.notFound + message: '#^Parameter \#2 \$fieldType of method Ibexa\\Core\\Persistence\\FieldTypeRegistry\:\:register\(\) expects Ibexa\\Contracts\\Core\\FieldType\\FieldType, Ibexa\\Contracts\\Core\\Persistence\\FieldType given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/AbstractSortClauseTestCase.php + path: tests/lib/Persistence/FieldTypeRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\AbstractSortClauseTestCase\:\:assertSearchResultOrderByRemoteId\(\) has parameter \$expectedOrderedIds with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldValue\\Converter\\ImageConverterTest\:\:dataProviderForTestToFieldDefinition\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/AbstractSortClauseTestCase.php + path: tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:createContentForContentTranslatedNameTesting\(\) has parameter \$values with no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldValue\\Converter\\ImageConverterTest\:\:dataProviderForTestToStorageFieldDefinition\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:dataProviderForTestSortingByContentTranslatedName\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\:\:loadBookmarkDataById\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$expectedOrderedRemoteIds with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:dataProviderForLoadUserBookmarks\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:loadBookmark\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testContentSortingByContentTranslatedName\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testCountUserBookmarks\(\) has parameter \$expected with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$expectedOrderedRemoteIds with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLoadUserBookmarks\(\) has parameter \$expected with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 9 + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ContentTranslatedNameTest\:\:testLocationSortingByContentTranslatedName\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 15 + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^PHPDoc tag @param references unknown parameter\: \$values$#' - identifier: parameter.notFound - count: 2 - path: tests/integration/Core/Repository/SearchService/SortClause/ContentTranslatedNameTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 8 + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:dataProviderForTestSortingByScore\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 16 + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:testSortingByScore\(\) has parameter \$expectedOrderedIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchService\\SortClause\\ScoreTest\:\:testSortingByScore\(\) has parameter \$inputValues with no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\SlugConverter\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^PHPDoc tag @param references unknown parameter\: \$values$#' - identifier: parameter.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getContentTypeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchService/SortClause/ScoreTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindContentEmptyResult\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getRelationFixture\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindContentWithUserPermissionFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getTreeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindSingleThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindSingleThrowsNotFoundExceptionWithUserPermissionFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$contentHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceAuthorizationTest\:\:testFindSingleWithUserPermissionFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$contentTypeHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$fieldHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:assertFulltextSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$locationGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextContentSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextContentSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$slugConverterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\SlugConverter\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$treeHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$typeGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:doTestFulltextLocationSearch\(\) has parameter \$searchString with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$urlAliasGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateExistingFieldsInNewVersion\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateNewFields\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapKeysToIds\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateNewFieldsForMainLanguage\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:mapSearchResultToIds\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsExistingLanguages\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:providerForTestFulltextSearchSolr7\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsForInitialLanguage\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextContentSearchSolr7\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsWithNewLanguage\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextContentSearchSolr7\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$expectedKeys with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getFieldTypeMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\FieldType\\FieldType\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$idMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getFieldTypeRegistryMock\(\) should return Ibexa\\Core\\Persistence\\FieldTypeRegistry&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\FieldTypeRegistry\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testFulltextLocationSearchSolr7\(\) has parameter \$searchString with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceFulltextTest\:\:testPrepareContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^PHPDoc tag @var for variable \$keyGroup has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceFulltextTest.php + message: '#^Offset int\<\-1, max\> might not exist on array\{\}\|array\{0\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}, 1\?\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}\}\.$#' + identifier: offsetAccess.notFound + count: 2 + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$value \(Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldValue\) does not accept null\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\:\:setCustomField\(\)\.$#' - identifier: method.notFound + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Cannot access offset ''id'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' - identifier: offsetAccess.nonOffsetAccessible + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeMock \(Ibexa\\Contracts\\Core\\FieldType\\FieldType\) does not accept Ibexa\\Contracts\\Core\\Persistence\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Cannot access offset ''title'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' - identifier: offsetAccess.nonOffsetAccessible + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeMock \(Ibexa\\Contracts\\Core\\FieldType\\FieldType\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' - identifier: class.notFound + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeRegistryMock \(Ibexa\\Core\\Persistence\\FieldTypeRegistry\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:assertQueryFixture\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:assertQueryFixture\(\) has parameter \$ignoreScore with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$storageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:mapResultLocationIds\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + message: '#^Variable \$copyField might not be defined\.$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:simplifySearchResult\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + message: '#^Variable \$originalField might not be defined\.$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testFieldCollectionContains\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access offset ''email'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testFieldCollectionContainsNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access offset ''id'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testFieldIsEmptyInLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Cannot access offset ''name'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testFieldIsNotEmptyInLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:\$authors \(array\\) does not accept array\\>\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testFindLocationsWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testInvalidFieldIdentifierIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$dataText with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testInvalidFieldIdentifierRange\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$sortKeyString with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceGreaterThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$dataText with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceLessThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$sortKey with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceSortAscending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$sortKeyString with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceSortDescending\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + message: '#^Cannot access offset ''timestring'' on array\|bool\|float\|int\|string\|null\.$#' + identifier: offsetAccess.nonOffsetAccessible + count: 3 + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceWithCustomField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:getXMLToDateIntervalMap\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testMapLocationDistanceWithCustomFieldSort\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:testToFieldDefinition\(\) has parameter \$dataInt with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testQueryCustomField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:testToFieldDefinition\(\) has parameter \$excpectedIsbn13Value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testQueryModifiedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\MediaTest\:\:\$converter has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceLocationTest\:\:testVisibilityCriterionWithHiddenContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationTest\:\:\$converter \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationConverter&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationConverter\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:\$longText has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/SearchServiceLocationTest.php + message: '#^Property Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageFieldValue\:\:\$sortKeyInt \(int\) does not accept false\.$#' + identifier: assign.propertyType + count: 1 + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound - count: 3 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Property Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageFieldValue\:\:\$sortKeyString \(string\) does not accept false\.$#' + identifier: assign.propertyType + count: 1 + path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\:\:setCustomField\(\)\.$#' - identifier: method.notFound + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertContentVersionAttributesLanguages\(\) has parameter \$expectation with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Search\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertValuesInRows\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Cannot access offset ''id'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 3 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:insertRelationFixture\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Cannot access offset ''title'' on Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\.$#' - identifier: offsetAccess.nonOffsetAccessible + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:storeFixture\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion\\ContentTypeIdentifier constructor invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 2 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Parameter \#2 \$expectedValues of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertValuesInRows\(\) expects array\, array\ given\.$#' + identifier: argument.type + count: 9 + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' - identifier: class.notFound - count: 5 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property + count: 1 + path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - message: '#^Instanceof between Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query will always evaluate to true\.$#' - identifier: instanceof.alwaysTrue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getCacheIdentifierGeneratorMock\(\) should return Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getInnerLanguageHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getLanguageCacheMock\(\) should return Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldFilter\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$cacheIdentifierGeneratorMock \(Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$innerHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageCacheMock \(Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) does not accept Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:assertMultilingualFieldSort\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:createContentForTestUserMetadataGroupHorizontal\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:createContentWithFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabase\:\:deleteLanguage\(\) \(void\) is used\.$#' + identifier: method.void count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:find\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 11 + path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getCaseInsensitiveSearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 6 + path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php + + - + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getContentQuerySearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getFilterContentSearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getLocationQuerySearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getRelationFieldFilterSearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:getLanguageIndicatorData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getSeedsForRandomSortClause\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:isAlwaysAvailableProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getSortedContentSearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:languageIdsFromMaskProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:getSortedLocationSearches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:removeAlwaysAvailableFlagProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:mapResultContentIds\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testExtractLanguageIdsFromMask\(\) has parameter \$expectedResult with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:providerForTestMultilingualFieldFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testRemoveAlwaysAvailableFlag\(\) has parameter \$expectedResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:providerForTestMultilingualFieldSort\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testRemoveAlwaysAvailableFlag\(\) has parameter \$langMask with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:providerForTestSortingByNumericFieldsWithValuesOfDifferentLength\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Offset string might not exist on array\{\}\|array\{eng\-US\?\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Language, eng\-GB\?\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\}\.$#' + identifier: offsetAccess.notFound count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:simplifySearchResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:skipIfSeedNotImplemented\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextSearchConfiguration\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:sortSearchHitsById\(\) has parameter \$searchHits with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$fieldNameGeneratorMock \(Ibexa\\Core\\Search\\Common\\FieldNameGenerator&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testContentWithMultipleLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFieldCollectionContains\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageMaskGenerator \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGenerator\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFieldCollectionContainsNoMatch\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:delete\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFieldCriterionForContentsWithIdenticalFieldIdentifiers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:loadList\(\) has parameter \$ids with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFieldIsNotEmpty\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:update\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:\$languages has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:assertLoadLocationProperties\(\) has parameter \$locationData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildContentTreeSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContent\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildGenericNodeSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildNodeAssignmentSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getLoadLocationValues\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$fixture with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getLocationGateway\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php + + - + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignments\(\) has parameter \$field with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentInfo\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignments\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationNodeAssignmentCreation\(\) has parameter \$expectedResult with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$closure with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationReturnValues\(\) has parameter \$field with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$fixture with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationReturnValues\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortContentLocations\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationValues\(\) has parameter \$field with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationValues\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$closure with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocation\(\) has parameter \$field with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$fixture with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocation\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindAndSortLocations\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$expected with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFieldFiltersCaseSensitivity\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFieldFiltersCaseSensitivity\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$parentLocationId with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$text with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#2 \$y of method Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder\:\:in\(\) expects array\\|string, array\ given\.$#' + identifier: argument.type + count: 11 + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php + + - + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:getLocationGateway\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$fixture with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashItem\(\) has parameter \$key with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentFiltered\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashItem\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testLoadTrashByLocationId\(\) has parameter \$field with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$closure with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testLoadTrashByLocationId\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$fixture with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationDefault\(\) has parameter \$property with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentInfoFiltered\(\) has parameter \$queryData with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationDefault\(\) has parameter \$value with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentWithLanguageFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:trashSubtree\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindContentWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Parameter \#2 \$y of method Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder\:\:in\(\) expects array\\|string, array\ given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$prefix of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:createLocationFromRow\(\) expects string, null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationCreateStructValues type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationRow type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsContentFiltered\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationValues type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsFieldFiltersCaseSensitivity\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 31 + path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsFieldFiltersCaseSensitivity\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsNoPerformCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 8 + path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindLocationsNoPerformCountException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:getTrashHandler\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 4 + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindNoPerformCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 19 + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindNoPerformCountException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 4 + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindNonMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 4 + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldContentInfoFiltered\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:getLocationHandler\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldContentInfoFiltered\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:loadParentLocationsForDraftContent\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldContentInfoFiltered\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldLocationsFiltered\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\Relation\\CreateStruct supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldLocationsFiltered\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\:\:createCreateStructFromContent\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindRelationFieldLocationsFiltered\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:extractContentInfoFromRowProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindSingle\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:extractVersionInfoFromRowProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindSingleFailMultiple\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getContentExtractFixture\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFindSingleWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFullTextOnNewContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getMapper\(\) has parameter \$valueConverter with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextComplex\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getMultipleVersionsNamesExtractFixture\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentSearchComplex\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getNamesExtractFixture\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentSearchComplex\(\) has parameter \$data with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getRelationExtractFixture\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentTranslationSearch\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextContentTranslationSearch\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentBasicProperties\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextLocationSearchComplex\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldCount\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextLocationSearchComplex\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldsNoId\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testFulltextLocationTranslationSearch\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentParentLocationsEmpty\(\) has parameter \$data with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testInvalidFieldIdentifierIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractContentInfoFromRow\(\) has parameter \$fixtures with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testInvalidFieldIdentifierRange\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\CreateStruct\:\:\$name \(array\\) does not accept string\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testLanguageAnalysisSameContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testLanguageAnalysisSameContentNotFound\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:\$valueConverterRegistryMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testLanguageAnalysisSeparateContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateGroupRowsFixture\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceBetweenPolar\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateGroupRowsFixture\(\) should return array\\> but returns array\\>\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceGreaterThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateRowsFixture\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceLessThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateRowsFixture\(\) should return array\\> but returns array\\>\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceSortAscending\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 32 + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceSortDescending\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 18 + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceWithCustomField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Match expression does not handle remaining values\: int\\|int\<4, max\>$#' + identifier: match.unhandled count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMapLocationDistanceWithCustomFieldSort\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$objectStateHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabase\:\:assignSectionToContent\(\) \(void\) is used\.$#' + identifier: method.void count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 12 + path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:\$sectionHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldFilterLocation\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:getPartlyMockedTreeHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$contentMapper \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$fieldHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$locationGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$locationMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 35 + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testMultilingualFieldSortLocation\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Mapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 21 + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 6 + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:getMapperMock\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:getPartlyMockedHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContent\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$storageDispatcherMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\StorageDispatcherInterface&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$updateHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentInfo\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\Persistence\\\\Legacy\\\\Content\\\\Type\\\\ContentUpdater\\\\Action\\\\AddField'' and Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddField will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentFixture\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$closure with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryContentLocations\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryCustomField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldValueConverterMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$closure with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getMockedAction\(\) has parameter \$methods with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$fixture with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Parameter \#1 \$id of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldReference\(\) expects int, null given\.$#' + identifier: argument.type + count: 6 + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryLocations\(\) has parameter \$queryData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Parameter \#1 \$id of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldReference\(\) expects int, string given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testQueryModifiedField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$id \(int\) does not accept null\.$#' + identifier: assign.propertyType + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testRandomSortContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testRandomSortLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testRelationContentCreation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testSortFieldWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$fieldValueConverterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testSortMainLocationAscending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentFixture\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testSortMainLocationDescending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testSortMapLocationDistanceWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testSortModifiedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalFilterContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalFilterLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalFilterLocation\(\) has parameter \$queryType with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalQueryContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$removeFieldAction \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveField\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTest\:\:testUserMetadataGroupHorizontalQueryLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^PHPDoc tag @var has invalid value \(\$data \\Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\)\: Unexpected token "\$data", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Parameter \#1 \$parentLocationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:newLocationCreateStruct\(\) expects int, int\|null given\.$#' - identifier: argument.type + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Parameter \#1 \$query of method Ibexa\\Contracts\\Core\\Repository\\SearchService\:\:findLocations\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\LocationQuery, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query given\.$#' - identifier: argument.type + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable - count: 3 - path: tests/integration/Core/Repository/SearchServiceTest.php + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property + count: 1 + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Class Ibexa\\Tests\\Solr\\SetupFactory\\LegacySetupFactory not found\.$#' - identifier: class.notFound - count: 3 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentUpdater \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\) in isset\(\) is not nullable\.$#' + identifier: isset.property + count: 1 + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createContent\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$converterRegistryMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createContent\(\) has parameter \$searchValuesMap with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\:\:countInstancesOfType\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createTestContent\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:getTypeCreationContentClassNameExpectations\(\) should return array\\> but returns array\\|string\>\>\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:createTestContent\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:getTypeCreationExpectations\(\) should return array\\> but returns array\\>\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getIndexesToMatchData\(\) has parameter \$inputContentData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertType\(\) has parameter \$column with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getIndexesToMatchData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertType\(\) has parameter \$expectation with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:getSetupType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertTypeContentClassName\(\) has parameter \$column with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:providerForTestFind\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertTypeContentClassName\(\) has parameter \$expectation with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testCreateTestContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateType\(\) has parameter \$expectedValue with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateType\(\) has parameter \$fieldName with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\:\:\$description \(array\\) does not accept array\\.$#' + identifier: assign.propertyType + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\FieldDefinition\:\:\$defaultValue \(Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldValue\) does not accept array\\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindContent\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\:\:updateGroup\(\) \(void\) is used\.$#' + identifier: method.void count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\CreateStruct supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$context with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getLoadGroupFixture\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsMultiple\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getLoadTypeFixture\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getMaskGeneratorMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$contentDataList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\:\:expects\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\:\:expects\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SearchServiceTranslationLanguageFallbackTest\:\:testFindLocationsSingle\(\) has parameter \$languageSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabase\:\:deleteOldType\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count count: 1 - path: tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testAssignSectionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:\$contentUpdaterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testCreateSectionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testDeleteSectionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:getGateway\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabase but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testLoadSectionByIdentifierThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestArchiveUrlAliasesForDeletedTranslations\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testLoadSectionFiltersSections\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestCleanupAfterPublishHistorize\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testLoadSectionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestCleanupAfterPublishRemovesLanguage\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testLoadSectionsLoadsEmptyListForAnonymousUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestLoadPathData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceAuthorizationTest\:\:testUpdateSectionThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestLoadPathDataMultipleLanguages\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to function is_object\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo will always evaluate to true\.$#' - identifier: function.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$action with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Section'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 4 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\SectionCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\SectionCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$languageId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\SectionUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\SectionUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$parentId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testAssignSection\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$textMD5 with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testAssignSectionToSubtree\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$action with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCountAssignedContents\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$languageId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCountAssignedContentsReturnsZeroByDefault\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$parentId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCreateSection\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$textMD5 with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCreateSectionForUserWithSectionLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathData\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCreateSectionInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathData\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCreateSectionInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathDataMultipleLanguages\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testCreateSectionThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathDataMultipleLanguages\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testDeleteSection\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testDeleteSectionThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testDeleteSectionThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 4 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testIsSectionUsed\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Persistence\\\\Content\\\\UrlAlias'' and Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testIsSectionUsedReturnsZeroByDefault\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:assertVirtualUrlAliasValid\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSection\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:assertVirtualUrlAliasValid\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSectionByIdentifier\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:getHistoryAlias\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSectionByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:getPartlyMockedHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSectionThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForArchiveUrlAliasesForDeletedTranslations\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSections\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestPublishUrlAliasForLocationComplex\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testLoadSectionsReturnsDefaultSectionsByDefault\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testNewSectionCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testNewSectionUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSection\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionForUserWithSectionLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionInTransactionWithCommit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionInTransactionWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionKeepsSectionIdentifierOnNameUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$destination with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionKeepsSectionNameOnIdentifierUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SectionServiceTest\:\:testUpdateSectionWithSectionIdentifierOnNameUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/SectionServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SettingServiceTest\:\:dataProviderForCreateSetting\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SettingServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\SettingServiceTest\:\:testCreateSetting\(\) has parameter \$value with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$url with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/SettingServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Generator expects value type array\{string, int, string\|null, int\|null\}, array\{''foo'', 100, null\} given\.$#' - identifier: generator.valueType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadVirtualUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TokenServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testDeleteTrashItemThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadVirtualUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testEmptyTrashThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testLoadTrashItemThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$destination with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testRecoverThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testTrashRequiresContentRemovePolicy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testTrashRequiresPremissionsToRemoveAllSubitems\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceAuthorizationTest\:\:testTrashThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceAuthorizationTest.php - - - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\:\:\$trashed\.$#' - identifier: property.protected - count: 4 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Content'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$destination with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\TrashItem'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Trash\\\\SearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\SearchResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 3 - path: tests/integration/Core/Repository/TrashServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Cannot access property \$remoteId on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' - identifier: property.nonObject - count: 4 - path: tests/integration/Core/Repository/TrashServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Cannot call method getRemovedLocationContentIdMap\(\) on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null\.$#' - identifier: method.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:assertAliasNotExists\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testAliasesForRemovedItems\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testDeleteThrowsNotFoundExceptionForNonExistingTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testDeleteTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testEmptyTrash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testEmptyTrashForUserWithSubtreeLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItems\(\) has parameter \$filters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItemsLimitedAccess\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItemsLimits\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItemsSort\(\) has parameter \$sortClausesClasses with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testFindTrashItemsSubtreeLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testLoadTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testLoadTrashItemThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testNotFoundAliasAfterRemoveIt\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecover\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverDoesNotRestoreChildLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverIncrementsChildCountOnOriginalParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverThrowsNotFoundExceptionForNonExistingTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverToNonExistingLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$destination with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverWithLocationCreateStructParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testRecoverWithLocationCreateStructParameterIncrementsChildCountOnNewParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrash\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashDecrementsChildCountOnParentLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashRemovesChildLocationsFromMainStorage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashRemovesLocationFromMainStorage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashReturnsNull\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$destination with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashSetsExpectedTrashItemProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:testTrashUpdatesMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:trashFiltersProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\TrashServiceTest\:\:trashSortClausesProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/TrashServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 6 - path: tests/integration/Core/Repository/TrashServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$trashItem of method Ibexa\\Contracts\\Core\\Repository\\TrashService\:\:recover\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\TrashItem\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/TrashServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupVirtualUrlAlias\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\:\:\$sortClauses \(array\\) does not accept array\\.$#' - identifier: assign.propertyType - count: 2 - path: tests/integration/Core/Repository/TrashServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupVirtualUrlAlias\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasService/CustomUrlAliasForMultilingualContentTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Cannot access property \$id on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$location of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:listLocationAliases\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceAuthorizationTest\:\:testCreateGlobalUrlAliasThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$locationId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceAuthorizationTest\:\:testCreateUrlAliasThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$pathData with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceAuthorizationTest\:\:testRemoveAliasesThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSkipsReservedWord\(\) has parameter \$alias with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSkipsReservedWord\(\) has parameter \$text with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to function is_object\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' - identifier: function.alreadyNarrowedType + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLAlias'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLAlias will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 10 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$languageMaskGenerator \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGenerator\) in isset\(\) is not nullable\.$#' + identifier: isset.property + count: 1 + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertLookupHistory\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$locationGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:getExpectation\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedIsHistory with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:testExtractUrlAliasFromData\(\) has parameter \$index with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedLanguageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:\$fixture has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesCorrect\(\) has parameter \$expectedPath with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:\$fixtureData has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlAliasPropertiesSame\(\) has parameter \$expectedValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlIsCurrent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:\$fixtureData has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:assertUrlIsHistory\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:\$urlWildcardHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlWildcard\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:changeContentTypeUrlAliasSchema\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\FieldValue\\Converter\\ImageConverterTest\:\:fieldValueToXmlProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:changeSlugConverterConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\FieldValue\\Converter\\ImageConverterTest\:\:xmlToFieldValueProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:createGlobalAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:getBaseCriterionQueryBuilders\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:testVisitCriteriaProducesQuery\(\) has parameter \$expectedParameterValues with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocationPropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \.\.\.\$arrays of function array_merge expects array, iterable given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocationVariation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge expects array, iterable\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasForLocationVariationPropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\LanguageCodeQueryBuilderQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasPropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\Type\\ContentTypeGroupIdQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\Type\\ContentTypeQueryBuildersTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\AncestorQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithAlwaysAvailablePropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\LocationIdQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithForward\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\ParentLocationQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasWithForwardPropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\LogicalOperatorQueryBuilderQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateNonLatinNonEmptyUniqueAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Container\:\:get\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/HandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateSameAliasForDifferentLanguage\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:getGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValues\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:\$settingHandler \(Ibexa\\Core\\Persistence\\Legacy\\Setting\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValues\(\) has parameter \$testData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Generator expects value type Doctrine\\DBAL\\Connection\|PHPUnit\\Framework\\MockObject\\MockObject, array\ given\.$#' + identifier: generator.valueType count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$expected of static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithAlwaysAvailable\(\) has parameter \$testData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithForwarding\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertPropertiesCorrect\(\) has parameter \$properties with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasPropertyValuesWithForwarding\(\) has parameter \$testData with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertQueryResult\(\) has parameter \$expectation with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasThrowsInvalidArgumentException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertStructsEqual\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasWithAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertStructsEqual\(\) has parameter \$propertyNames with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testCreateUrlAliasWithForwarding\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:getPublicPropertyNames\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testDeleteCorruptedUrlAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:getResultTextRepresentation\(\) has parameter \$result with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListGlobalAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:\$db \(string\) does not accept string\|null\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListGlobalAliasesWithLanguageFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:\$dsn \(string\) does not accept string\|false\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListGlobalAliasesWithLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:getContentTypeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\MemoryCachingHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListGlobalAliasesWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:getLanguageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$connectionMock \(Doctrine\\DBAL\\Connection&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliasesLoadsCorrectly\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$contentTypeHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliasesLoadsCorrectly\(\) has parameter \$testData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$languageHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliasesWithCustomFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$transactionHandler \(Ibexa\\Core\\Persistence\\Legacy\\TransactionHandler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testListLocationAliasesWithLanguageCodeFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$url of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabase\:\:loadUrlDataByUrl\(\) expects int, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUp\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabaseTest\:\:\$fixtureData type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUpThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUpThrowsNotFoundException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUpThrowsNotFoundExceptionWithLanguageFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookUpWithLanguageFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has parameter \$urlAddr with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookupOnMultilingualNestedLocations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\URL\\URL\:\:\$url \(string\) does not accept Ibexa\\Contracts\\Core\\Persistence\\URL\\URL\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testLookupOnRenamedParent\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:assertHandlerAcceptsCriterion\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForContentsWithUpdatedContentTypes\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:assertHandlerRejectsCriterion\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForLocationWithChangedSlugConverterConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + message: '#^Parameter \#1 \$criterion of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\:\:accept\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\Query\\Criterion, PHPUnit\\Framework\\MockObject\\Stub given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForMissingUrlWithHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + message: '#^Parameter \#1 \$originalClassName of static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) expects class\-string\, string given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForMovedLocation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unable to resolve the template type T in call to static method PHPUnit\\Framework\\TestCase\:\:createStub\(\)$#' + identifier: argument.templateType + count: 2 + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php + + - + message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRemoveAliases\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:testRemoveAliasesThrowsInvalidArgumentExceptionIfAutogeneratedAliasesAreToBeRemoved\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\User\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:updateContentField\(\) has parameter \$fieldDefinitionIdentifier with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\User\\Role\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLAliasServiceTest\:\:updateContentField\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\LimitationConverterTest\:\:getLimitationConverter\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + path: tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php - - message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, iterable\ given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:createRole\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 11 - path: tests/integration/Core/Repository/URLAliasServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getDummyUser\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceAuthorizationTest\:\:testFindUrlsThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getGatewayReturnValue\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceAuthorizationTest\:\:testLoadByIdThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUser\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceAuthorizationTest\:\:testLoadByUrlThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUserToken\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceAuthorizationTest\:\:testUpdateUrlThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUserToken\(\) has parameter \$time with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/URLServiceAuthorizationTest.php + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$modified\.$#' - identifier: property.protected - count: 4 - path: tests/integration/Core/Repository/URLServiceTest.php + message: '#^Parameter \#1 \$handler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:createTestRole\(\) expects Ibexa\\Core\\Persistence\\Legacy\\User\\Handler, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' + identifier: argument.type + count: 5 + path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\URL'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 4 - path: tests/integration/Core/Repository/URLServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:loadUserPreference\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\URLUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:loadUserPreference\(\) should return array but returns array\\|false\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\URL\\\\UsageSearchResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\UsageSearchResult will always evaluate to true\.$#' + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Limitation\\\\Target\\\\Builder\\\\VersionBuilder'' and Ibexa\\Contracts\\Core\\Limitation\\Target\\Builder\\VersionBuilder will always evaluate to true\.$#' identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/URLServiceTest.php + count: 1 + path: tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:dataProviderForFindUrlsWithSorting\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Limitation\\Target\\Builder\\VersionBuilderTest\:\:providerForTestBuild\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:dataProviderForFindUsages\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:getProcessor\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testCreateUpdateStructValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + message: '#^Class Ibexa\\Core\\Persistence\\TransformationProcessor\\DefinitionBased\\Parser constructor invoked with 1 parameter, 0 required\.$#' + identifier: arguments.count + count: 10 + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrls\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:applyTransformations\(\) has parameter \$transformations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsUsingMatchNone\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:applyTransformations\(\) should return string but returns string\|null\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsUsingPatternCriterion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#3 \$subject of function preg_replace_callback expects array\\|string, string\|null given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsUsingValidityCriterionInvalid\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPreprocessedBasedTest\:\:getProcessor\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsUsingValidityCriterionValid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsUsingVisibleOnlyCriterion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithInvalidLimitThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:testGetQuery\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AncestorsQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithLimitZero\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AncestorsQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\ChildrenQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithOffsetAndLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\ChildrenQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithSorting\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\GeoLocationQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithSorting\(\) has parameter \$expectedUrls with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\GeoLocationQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUrlsWithoutCounting\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\RelatedToContentQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\RelatedToContentQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$expectedContentInfos with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SiblingsQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$expectedTotalCount with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SiblingsQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$limit with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerStub\:\:__construct\(\) has parameter \$tokens with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerStub.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$offset with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerTest\:\:dataProviderForTokenize\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsages\(\) has parameter \$urlId with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerTest\:\:testTokenize\(\) has parameter \$expectedTokens with no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testFindUsagesReturnsEmptySearchResults\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecParserTest\:\:dataProviderForParseSortDirection\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testLoadById\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecParserTest\:\:testParseSortDirection\(\) has parameter \$input with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testLoadByIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SubtreeQueryTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testLoadByUrl\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SubtreeQueryTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testLoadByUrlThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Strategy\\ContentThumbnail\\Field\\FieldTypeBasedThumbnailStrategy@anonymous/tests/lib/Repository/ContentThumbnail/ContentFieldStrategyTest\.php\:24\:\:getThumbnail\(\) never returns null so it can be removed from the return type\.$#' + identifier: return.unusedType count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/ContentThumbnail/ContentFieldStrategyTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testUpdateUrl\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:__construct\(\) has parameter \$validationReturn with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testUpdateUrlStatus\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:validate\(\) has parameter \$context with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLServiceTest\:\:testUpdateUrlWithNonUniqueUrl\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\ContentValidator\\ContentValidatorStrategyTest\:\:buildContentValidator\(\) has parameter \$validationReturn with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$limit \(int\) does not accept string\.$#' - identifier: assign.propertyType + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:\$validationReturn type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$offset \(int\) does not accept string\.$#' - identifier: assign.propertyType + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\BookmarkServiceDecorator@anonymous/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\BookmarkService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLServiceTest.php + path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardService\\CriterionTest\:\:getUrlWildcards\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#2 \$locationCreateStructs of method Ibexa\\Contracts\\Core\\Repository\\ContentService\:\:createContent\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php + path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - message: '#^Parameter \#1 \$criteria of class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcard\\Query\\Criterion\\LogicalAnd constructor expects array\, array\ given\.$#' + message: '#^Parameter \#1 \$contentTypeIds of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:loadContentTypeList\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php + path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - message: '#^Parameter \#1 \$expectedCount of static method PHPUnit\\Framework\\Assert\:\:assertCount\(\) expects int, int\|null given\.$#' + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\ContentTypeServiceDecorator@anonymous/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest\.php\:31 constructor expects Ibexa\\Contracts\\Core\\Repository\\ContentTypeService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardService/CriterionTest.php + path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceAuthorizationTest\:\:testRemoveThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$contentTypeGroups of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:createContentType\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLWildcard'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcard will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\URLWildcardTranslationResult'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\FieldTypeServiceDecorator@anonymous/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest\.php\:20 constructor expects Ibexa\\Contracts\\Core\\Repository\\FieldTypeService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testCreateSetsPropertiesOnURLWildcard\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\LanguageServiceDecorator@anonymous/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest\.php\:22 constructor expects Ibexa\\Contracts\\Core\\Repository\\LanguageService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceholdersNotMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$languageIds of method Ibexa\\Contracts\\Core\\Repository\\LanguageService\:\:loadLanguageListById\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testCreateThrowsContentValidationExceptionWhenPlaceholdersNotValidNumberSequence\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\LocationServiceDecorator@anonymous/tests/lib/Repository/Decorator/LocationServiceDecoratorTest\.php\:29 constructor expects Ibexa\\Contracts\\Core\\Repository\\LocationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\NotificationServiceDecorator@anonymous/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\NotificationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testCreateWithOptionalForwardParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\ObjectStateServiceDecorator@anonymous/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest\.php\:27 constructor expects Ibexa\\Contracts\\Core\\Repository\\ObjectStateService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\RoleServiceDecorator@anonymous/tests/lib/Repository/Decorator/RoleServiceDecoratorTest\.php\:34 constructor expects Ibexa\\Contracts\\Core\\Repository\\RoleService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadAllReturnsEmptyArrayByDefault\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:getSearchEngineCapabilities\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadAllWithOffsetAndLimitParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SearchServiceDecorator@anonymous/tests/lib/Repository/Decorator/SearchServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\SearchService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadAllWithOffsetParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SectionServiceDecorator@anonymous/tests/lib/Repository/Decorator/SectionServiceDecoratorTest\.php\:27 constructor expects Ibexa\\Contracts\\Core\\Repository\\SectionService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadSetsPropertiesOnURLWildcard\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SettingServiceDecorator@anonymous/tests/lib/Repository/Decorator/SettingServiceDecoratorTest\.php\:26 constructor expects Ibexa\\Contracts\\Core\\Repository\\SettingService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testLoadThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\TranslationServiceDecorator@anonymous/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\TranslationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testRemove\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\TrashServiceDecorator@anonymous/tests/lib/Repository/Decorator/TrashServiceDecoratorTest\.php\:23 constructor expects Ibexa\\Contracts\\Core\\Repository\\TrashService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testTranslateReturnsLongestMatchingWildcard\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testTranslateSetsPropertiesOnTranslationResult\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLAliasServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLAliasService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testTranslateThrowsNotFoundExceptionWhenNotAliasOrWildcardMatches\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLServiceDecoratorTest\.php\:23 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php + path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\URLWildcardServiceTest\:\:testTranslateWithForwardSetToTrue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLWildcardServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLWildcardService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/URLWildcardServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\UserPreference\\\\UserPreference'' and Ibexa\\Contracts\\Core\\Repository\\Values\\UserPreference\\UserPreference will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 2 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\UserPreference\\\\UserPreferenceList'' and Ibexa\\Contracts\\Core\\Repository\\Values\\UserPreference\\UserPreferenceList will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\UserPreferenceServiceDecorator@anonymous/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest\.php\:20 constructor expects Ibexa\\Contracts\\Core\\Repository\\UserPreferenceService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testGetUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$userPreferenceSetStructs of method Ibexa\\Contracts\\Core\\Repository\\UserPreferenceService\:\:setUserPreference\(\) expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testGetUserPreferenceCount\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\UserServiceDecorator@anonymous/tests/lib/Repository/Decorator/UserServiceDecoratorTest\.php\:37 constructor expects Ibexa\\Contracts\\Core\\Repository\\UserService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testLoadUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Filtering\\TestContentProvider\:\:createContentDraft\(\) has parameter \$multilingualFields with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Filtering/TestContentProvider.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testSetUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$mainLanguageCode of method Ibexa\\Contracts\\Core\\Repository\\ContentService\:\:newContentCreateStruct\(\) expects string, int\|string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Filtering/TestContentProvider.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + message: '#^Parameter \#2 \$parentLocationId of method Ibexa\\Tests\\Core\\Repository\\Filtering\\TestContentProvider\:\:createArticle\(\) expects int, int\|null given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Repository/Filtering/TestContentProvider.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserPreferenceServiceTest\:\:testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\FieldType\\\\FieldType'' and Ibexa\\Contracts\\Core\\FieldType\\FieldType will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/UserPreferenceServiceTest.php + path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testAssignUserToUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:getFieldTypeMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testCreateUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$fieldTypes of class Ibexa\\Core\\FieldType\\FieldTypeRegistry constructor expects array\, array\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testCreateUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Iterator\\BatchIteratorTestAdapter\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/Iterator/BatchIteratorTestAdapter.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testDeleteUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Iterator\\BatchIteratorTestAdapter\:\:\$data type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/Iterator/BatchIteratorTestAdapter.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testDeleteUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:method\(\)\.$#' + identifier: method.notFound + count: 7 + path: tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testLoadSubUserGroupsThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:method\(\)\.$#' + identifier: method.notFound + count: 5 + path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testLoadUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + message: '#^Call to an undefined method Ibexa\\Core\\Repository\\Mapper\\ContentLocationMapper\\ContentLocationMapper\:\:expects\(\)\.$#' + identifier: method.notFound + count: 5 + path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testLoadUserGroupsOfUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + message: '#^Cannot access property \$locations on iterable\\.$#' + identifier: property.nonObject + count: 2 + path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testLoadUsersOfUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:compareArrays\(\) has parameter \$actual with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testMoveUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:compareArrays\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testUnAssignUserFromUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:evaluate\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testUpdateUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:failureDescription\(\) has parameter \$content with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php + path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceAuthorizationTest\:\:testUpdateUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Tests\\Core\\Repository\\Parallel\\ParallelProcessList implements generic interface IteratorAggregate but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics count: 1 - path: tests/integration/Core/Repository/UserServiceAuthorizationTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 7 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Parallel/ParallelProcessList.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionCriterionResolverMock\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserGroupCreateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupCreateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionCriterionResolverMock\(\) has parameter \$methods with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserGroupUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroupUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\UserUpdateStruct'' and Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserUpdateStruct will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php - - - - message: '#^Cannot call method add\(\) on DateTimeImmutable\|false\|null\.$#' - identifier: method.nonObject - count: 3 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:createUserContentTypeWithAccountSettings\(\) has parameter \$fieldSetting with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:createUserContentTypeWithAccountSettings\(\) has parameter \$validatorConfiguration with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$expectedReturn with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:dataProviderForValidatePassword\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$method with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:getDataForTestPasswordUpdateRespectsAllValidationSettings\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:\$permissionCriterionResolverMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:getPrioritizedLanguageList\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:\$permissionResolverMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testAssignUserToUserGroup\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getLimitationServiceMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testAssignUserToUserGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getLimitationServiceMock\(\) has parameter \$methods with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserGroupSetsExpectedProperties\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAccept\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserGroupWhenMissingField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$criterionMock with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserSetsExpectedProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$limitationCount with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$permissionSets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$criterionMock with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$expectedCriterion with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserWhenMissingField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$limitationCount with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserWithStrongPassword\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$permissionSets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testCreateUserWithWeakPasswordThrowsUserPasswordValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterionBooleanPermissionSets\(\) has parameter \$permissionSets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testDeleteUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testDeleteUserDeletesRelatedBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:\$limitationServiceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testDeleteUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:\$permissionResolverMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testDeleteUserGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getEventDispatcher\(\) should return PHPUnit\\Framework\\MockObject\\MockObject&Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface but returns Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testExpireUserToken\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getRelationProcessorMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadSubUserGroups\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getRepository\(\) has parameter \$serviceSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadSubUserGroupsThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$className of method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadSubUserGroupsWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByEmailReturnsEmptyInUnknownEmail\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$searchHandler of class Ibexa\\Core\\Repository\\Repository constructor expects Ibexa\\Contracts\\Core\\Search\\Handler, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByLogin\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$contentDomainMapperMock \(Ibexa\\Core\\Repository\\Mapper\\ContentDomainMapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$contentTypeDomainMapperMock \(Ibexa\\Core\\Repository\\Mapper\\ContentTypeDomainMapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByLoginThrowsNotFoundExceptionForUnknownLoginByEmail\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$fieldTypeRegistryMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByLoginWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$fieldTypeServiceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserByLoginWorksForLoginWithWrongCase\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$permissionServiceMock \(Ibexa\\Contracts\\Core\\Repository\\PermissionService&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$persistenceMock \(Ibexa\\Contracts\\Core\\Persistence\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$repositoryMock \(Ibexa\\Contracts\\Core\\Repository\\Repository&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupWithNoAccessToParent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$thumbnailStrategyMock \(Ibexa\\Contracts\\Core\\Repository\\Strategy\\ContentThumbnail\\ThumbnailStrategy&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\)$#' + identifier: argument.templateType count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/Base.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupWithPrioritizedLanguagesListAfterMainLanguageUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:createBookmarkService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupsOfUser\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:\$bookmarkHandler \(Ibexa\\Contracts\\Core\\Persistence\\Bookmark\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserGroupsOfUserWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getContentHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUserWithPrioritizedLanguagesListAfterMainLanguageUpdate\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getLanguageHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUsersByEmailWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getTypeHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUsersOfUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testLoadUsersOfUserGroupWithPrioritizedLanguagesList\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$contentInfoList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testMoveUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testMoveUserGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$locationHits with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#2 \$locationHandler of class Ibexa\\Core\\Repository\\Mapper\\ContentDomainMapper constructor expects Ibexa\\Contracts\\Core\\Persistence\\Content\\Location\\Handler, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserCreateStructSetsExpectedProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\FieldType\\Value\:\:\$value\.$#' + identifier: property.notFound count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserCreateStructWithFifthParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserGroupCreateStructSetsContentType\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserGroupCreateStructSetsMainLanguageCode\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserGroupCreateStructWithSecondParameter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserGroupUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testNewUserUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestCreateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUnAssignUserFromUserGroup\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUnAssignUserFromUserGroupThrowsBadStateArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$existingFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUnAssignUserFromUserGroupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$fieldDefinitions with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequiredFieldEmpty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotAccept\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$allFieldErrors with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserGroupWithSubContentMetadataUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$existingFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserGroupWithSubContentUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserReturnsPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserToken\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserUpdatesExpectedProperties\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserWhenMissingField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserWithContentMetadataUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserWithContentUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserWithStrongPassword\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForCreate\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForCreate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testValidatePassword\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForUpdate\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testValidatePassword\(\) has parameter \$expectedErrors with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForUpdate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\UserServiceTest\:\:testValidatePasswordWithDefaultContext\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:fixturesForTestCreateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/UserServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:fixturesForTestUpdateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$array of function array_map expects array, iterable\ given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:getPartlyMockedContentService\(\) should return Ibexa\\Core\\Repository\\ContentService&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Repository\\ContentService\.$#' + identifier: return.type count: 1 - path: tests/integration/Core/Repository/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#1 \$string of function md5 expects string, int\<1, max\> given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:internalLoadContentProviderById\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/BaseLimitationTestCase.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getContentCreatePolicyDraft\(\) should return Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft but returns Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:internalLoadContentProviderByRemoteId\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getDataForDeniedAccess\(\) should return array\\}\> but returns array\{array\{123, array\{\-1\}\}, array\{123, array\{456, 789\}\}\}\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mapStructFieldsForCreate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ChangeOwnerLimitationTest\:\:getDataForGrantedAccess\(\) should return array\\}\> but returns array\{array\{null, array\{\}\}, array\{null, array\{\-1\}\}, array\{null, array\{123, 456, \-1\}\}, array\{123, array\{123, 456, \-1\}\}, array\{123, array\{\}\}\}\.$#' - identifier: return.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mapStructFieldsForUpdate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ChangeOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockBuildContentDomainObject\(\) has parameter \$translations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ContentTypeLimitationTest\:\:testContentTypeLimitationAllow\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockGetDefaultObjectStates\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ContentTypeLimitationTest\:\:testContentTypeLimitationForbid\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockPublishUrlAliasesForContent\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ContentTypeLimitationTest\:\:testContentTypeLimitationForbidVariant\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockSetDefaultObjectStates\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft is not subtype of native type null\.$#' - identifier: varTag.nativeType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$existingFields with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$existingLanguageCodes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php - - - - message: '#^Cannot access property \$value on Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Field\|null\.$#' - identifier: property.nonObject - count: 2 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:createEditorUserWithLanguageLimitation\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$fieldDefinitions with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForCanUserWithLimitationTargets\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$fieldDefinitions with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForCreateAndPublishContent\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:providerForPublishVersionWithLanguageLimitation\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$structFields with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCanUserWithLimitationTargets\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCanUserWithLimitationTargets\(\) has parameter \$folderNames with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSetComplex\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCopyContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCopySubtreeWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:stubValues\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCreateAndPublishContent\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:stubValues\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testCreateAndPublishContent\(\) has parameter \$names with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testHideContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testHideLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testMoveSubtreeWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPrepareDataForTestsWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$allowedTranslationsList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$names with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersion\(\) has parameter \$namesToUpdate with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testPublishVersionIsNotAllowedIfModifiedOtherTranslations\(\) has parameter \$names with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testRevealContentWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$identifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testSwapLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testUnhideLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LanguageLimitationTest\:\:testUpdateLocationWithLanguageLimitationAndDifferentContentTranslations\(\) has parameter \$limitationValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^PHPDoc tag @return with type iterable\\|bool\>\> is not subtype of native type array\.$#' - identifier: return.phpDocType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentFieldValidationException\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php - - - - message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 7 - path: tests/integration/Core/Repository/Values/User/Limitation/LanguageLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LocationLimitationTest\:\:testLocationLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\LocationLimitationTest\:\:testLocationLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\NewObjectStateLimitationTest\:\:testNewObjectStateLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\NewObjectStateLimitationTest\:\:testNewObjectStateLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\NewSectionLimitationTest\:\:testNewSectionLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithInvalidLanguage\(\) has parameter \$mainLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\NewSectionLimitationTest\:\:testNewSectionLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithInvalidLanguage\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ObjectStateLimitationTest\:\:createUserWithObjectStateLimitation\(\) has parameter \$objectStateIDs with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testInternalLoadContentById\(\) has parameter \$languages with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ObjectStateLimitationTest\:\:createUserWithObjectStateLimitationOnContentRead\(\) has parameter \$values with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testInternalLoadContentByRemoteId\(\) has parameter \$languages with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ObjectStateLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\OwnerLimitationTest\:\:testOwnerLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\OwnerLimitationTest\:\:testOwnerLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$removePolicy\.$#' - identifier: varTag.differentVariable - count: 2 - path: tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentContentTypeLimitationTest\:\:testParentContentTypeLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentContentTypeLimitationTest\:\:testParentContentTypeLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentDepthLimitationTest\:\:testParentDepthLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentDepthLimitationTest\:\:testParentDepthLimitationAllowPublish\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentDepthLimitationTest\:\:testParentDepthLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentOwnerLimitationTest\:\:testParentOwnerLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentOwnerLimitationTest\:\:testParentOwnerLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$spiFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentUserGroupLimitationTest\:\:testParentUserGroupLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$identifier with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\ParentUserGroupLimitationTest\:\:testParentUserGroupLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:addPolicyToNewRole\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:getSubtreeLocationsCount\(\) has parameter \$subtreePathString with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:providerForTestRolePoliciesWithOverlappingLimitations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsBadStateException\(\) has parameter \$status with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\RolePolicyLimitationTest\:\:testRolePoliciesWithOverlappingLimitations\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$allFieldErrors with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SectionLimitationTest\:\:testSectionLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$spiField with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SectionLimitationTest\:\:testSectionLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' - identifier: argument.type - count: 2 - path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$readPolicy\.$#' - identifier: varTag.differentVariable - count: 2 - path: tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\StatusLimitationTest\:\:testStatusLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\StatusLimitationTest\:\:testStatusLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentWithInvalidLanguage\(\) has parameter \$initialLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentWithInvalidLanguage\(\) has parameter \$structFields with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SubtreeLimitationTest\:\:prepareLimitation\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$languageHandlerMock of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:loadByLanguageCodeMock\(\) expects PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SubtreeLimitationTest\:\:testSubtreeLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:addMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\SubtreeLimitationTest\:\:testSubtreeLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' + identifier: argument.type count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' + message: '#^Parameter \#1 \$singular of class Ibexa\\Core\\FieldType\\ValidationError constructor expects string, int given\.$#' identifier: argument.type - count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + count: 2 + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$editPolicy\.$#' - identifier: varTag.differentVariable + message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\MetadataUpdateStruct\:\:\$publicationDate \(int\) does not accept int\|null\.$#' + identifier: assign.propertyType count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Cannot access property \$text on Ibexa\\Contracts\\Core\\FieldType\\Value\|null\.$#' - identifier: property.nonObject + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$contentTypeServiceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\UserGroupLimitationTest\:\:testUserGroupLimitationAllow\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$locationServiceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\Repository\\Values\\User\\Limitation\\UserGroupLimitationTest\:\:testUserGroupLimitationForbid\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$partlyMockedContentService \(Ibexa\\Core\\Repository\\ContentService\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Parameter \#2 \$policy of method Ibexa\\Contracts\\Core\\Repository\\RoleService\:\:updatePolicyByRoleDraft\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PolicyDraft, Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy given\.$#' - identifier: argument.type + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$relationProcessorMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php + path: tests/lib/Repository/Service/Mock/ContentTest.php - - message: '#^Variable \$policy in PHPDoc tag @var does not match assigned variable \$editPolicy\.$#' - identifier: varTag.differentVariable - count: 1 - path: tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\User\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 6 + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:getDataForTestCountUsersWithUnsupportedHashType\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\PermissionResolver&PHPUnit\\Framework\\MockObject\\MockObject\:\:sudo\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:providerForGetFieldData\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:createRole\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Integration\\Core\\User\\UserStorage\\UserStorageGatewayTestCase\:\:testGetFieldData\(\) has parameter \$expectedUserData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/integration/Core/User/UserStorage/UserStorageGatewayTestCase.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\FieldTypeRegistryPassTest\:\:tagsProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getPermissionSetsMock\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\FieldTypeRegistryPassTest\:\:testRegisterFieldType\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getUserReferenceMock\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\FieldTypeRegistryPassTest\:\:testRegisterFieldTypeNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestCanUserComplex\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\GenericFieldTypeConverterPassTest\:\:assertContainerBuilderHasNoServiceDefinitionWithMethodCall\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsInvalidArgumentValueException\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/GenericFieldTypeConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\GenericFieldTypeConverterPassTest\:\:assertContainerBuilderHasNoServiceDefinitionWithMethodCall\(\) has parameter \$index with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsLimitationNotFoundException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/GenericFieldTypeConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\FieldTypeRegistryPassTest\:\:testRegisterFieldType\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsPermissionSets\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\FieldTypeRegistryPassTest\:\:testRegisterFieldTypeNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$policyLimitationEvaluations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\Legacy\\CriterionFieldValueHandlerRegistryPassTest\:\:testRegisterValueHandler\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$roleLimitationEvaluations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\Legacy\\CriterionFieldValueHandlerRegistryPassTest\:\:testRegisterValueHandlerNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$userCan with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\Legacy\\SortClauseConverterPassTest\:\:testAddContentHandlers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserSimple\(\) has parameter \$permissionSets with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\Legacy\\SortClauseConverterPassTest\:\:testAddLocationAndContentHandlers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserSimple\(\) has parameter \$result with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Search\\Legacy\\SortClauseConverterPassTest\:\:testAddLocationHandlers\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalse\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:externalStorageHandlerGatewayTagsProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalse\(\) has parameter \$roles with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:externalStorageHandlerTagsProvider\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsInvalidArgumentValueException\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsInvalidArgumentValueException\(\) has parameter \$roles with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandlerNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsLimitationNotFoundException\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandlerWithGateway\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsLimitationNotFoundException\(\) has parameter \$roles with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandlerWithGatewayNoAlias\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSets\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandlerWithGatewayNoIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSets\(\) has parameter \$roles with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\ExternalStorageRegistryPassTest\:\:testRegisterExternalStorageHandlerWithoutRegisteredGateway\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\Legacy\\FieldValueConverterRegistryPassTest\:\:testRegisterConverterNoLazy\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has parameter \$roles with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/Legacy/FieldValueConverterRegistryPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Storage\\Legacy\\RoleLimitationConverterPassTest\:\:testRegisterRoleLimitationConverter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsTrue\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Storage/Legacy/RoleLimitationConverterPassTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Class Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler extends generic class Ibexa\\Contracts\\Core\\FieldType\\GatewayBasedStorage but does not specify its types\: T$#' - identifier: missingType.generics + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsTrue\(\) has parameter \$roles with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:deleteFieldData\(\) has parameter \$fieldIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:deleteFieldData\(\) should return bool but return statement is missing\.$#' - identifier: return.missing - count: 1 - path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:getFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\Stubs\\GatewayBasedStorageHandler\:\:hasFieldData\(\) should return bool but return statement is missing\.$#' - identifier: return.missing - count: 1 - path: tests/lib/Base/Container/Compiler/Stubs/GatewayBasedStorageHandler.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\TaggedServiceIdsIterator\\DeprecationErrorCollector\:\:getErrors\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Base\\Container\\Compiler\\TaggedServiceIdsIterator\\DeprecationErrorCollector\:\:\$errors type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Base/Container/Compiler/TaggedServiceIdsIterator/DeprecationErrorCollector.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\CollectionInterface\:\:filter\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''IteratorAggregate'' and Ibexa\\Contracts\\Core\\Collection\\CollectionInterface will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollectionWithExampleData\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createCollectionWithExampleData\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createEmptyCollection\(\) has invalid return type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:createEmptyCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\CollectionInterface does not specify its types\: TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\:\:getExampleData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^PHPDoc tag @return with type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces is not subtype of native type Ibexa\\Contracts\\Core\\Collection\\CollectionInterface\.$#' - identifier: return.phpDocType - count: 3 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^PHPDoc tag @template TCollection for class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase has invalid bound type Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Collection/AbstractCollectionTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayListTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/ArrayListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayListTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\ArrayList does not specify its types\: TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/ArrayListTest.php - - - - message: '#^PHPDoc tag @var for variable \$list contains generic class Ibexa\\Contracts\\Core\\Collection\\ArrayList but does not specify its types\: TValue$#' - identifier: missingType.generics - count: 2 - path: tests/lib/Collection/ArrayListTest.php - - - - message: '#^Type Ibexa\\Contracts\\Core\\Collection\\ArrayList in generic type Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\ in PHPDoc tag @extends is not subtype of template type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces of class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\.$#' - identifier: generics.notSubtype - count: 1 - path: tests/lib/Collection/ArrayListTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:exists\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:filter\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:forAll\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Collection\\MapInterface\:\:map\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:createCollection\(\) return type with generic interface Ibexa\\Contracts\\Core\\Collection\\MapInterface does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\ArrayMapTest\:\:getExampleData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^PHPDoc tag @return with type Ibexa\\Contracts\\Core\\Collection\\MapInterface\|Ibexa\\Contracts\\Core\\Collection\\StreamableInterface is not subtype of native type Ibexa\\Contracts\\Core\\Collection\\MapInterface\.$#' - identifier: return.phpDocType - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^PHPDoc tag @var for variable \$map contains generic class Ibexa\\Contracts\\Core\\Collection\\ArrayMap but does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Type Ibexa\\Contracts\\Core\\Collection\\ArrayMap in generic type Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\ in PHPDoc tag @extends is not subtype of template type TCollection of Ibexa\\Contracts\\Core\\Repository\\Collection\\CollectionInterfaces of class Ibexa\\Tests\\Core\\Collection\\AbstractCollectionTestCase\.$#' - identifier: generics.notSubtype - count: 1 - path: tests/lib/Collection/ArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayListTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/MutableArrayListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayListTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayList does not specify its types\: TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/MutableArrayListTest.php - - - - message: '#^PHPDoc tag @var for variable \$list contains generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayList but does not specify its types\: TValue$#' - identifier: missingType.generics - count: 4 - path: tests/lib/Collection/MutableArrayListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayMapTest\:\:createCollection\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Collection/MutableArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Collection\\MutableArrayMapTest\:\:createCollection\(\) return type with generic class Ibexa\\Contracts\\Core\\Collection\\MutableArrayMap does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Collection/MutableArrayMapTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\BookmarkServiceTest\:\:testCreateBookmarkEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/BookmarkServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\BookmarkServiceTest\:\:testCreateBookmarkStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/BookmarkServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\BookmarkServiceTest\:\:testDeleteBookmarkEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/BookmarkServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\BookmarkServiceTest\:\:testDeleteBookmarkStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/BookmarkServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testAddRelationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testAddRelationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCopyContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCopyContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCreateContentDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCreateContentDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCreateContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testCreateContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteRelationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteRelationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteTranslationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteTranslationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteVersionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testDeleteVersionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testHideContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testHideContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testPublishVersionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testPublishVersionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnAddRelationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnCopyContentResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnCreateContentDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnCreateContentResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnDeleteContentResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnPublishVersionResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnUpdateContentMetadataResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testReturnUpdateContentResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testRevealContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testRevealContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testUpdateContentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testUpdateContentMetadataEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testUpdateContentMetadataStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentServiceTest\:\:testUpdateContentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testAddFieldDefinitionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testAddFieldDefinitionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testAssignContentTypeGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testAssignContentTypeGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCopyContentTypeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCopyContentTypeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testCreateContentTypeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testDeleteContentTypeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testDeleteContentTypeGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testDeleteContentTypeGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testDeleteContentTypeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testPublishContentTypeDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testPublishContentTypeDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testRemoveContentTypeTranslationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testRemoveContentTypeTranslationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testRemoveFieldDefinitionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testReturnCopyContentTypeResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testReturnCreateContentTypeDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testReturnCreateContentTypeGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testReturnCreateContentTypeResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testReturnRemoveContentTypeTranslationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUnassignContentTypeGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUnassignContentTypeGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateContentTypeDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateContentTypeGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ContentTypeServiceTest\:\:testUpdateFieldDefinitionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testCreateLanguageEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testCreateLanguageStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testDeleteLanguageEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testDeleteLanguageStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testDisableLanguageEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testDisableLanguageStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testEnableLanguageEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testEnableLanguageStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testReturnCreateLanguageResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testReturnDisableLanguageResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testReturnEnableLanguageResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testReturnUpdateLanguageNameResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testUpdateLanguageNameEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LanguageServiceTest\:\:testUpdateLanguageNameStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testCopySubtreeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testCopySubtreeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testCreateLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testCreateLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testDeleteLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testDeleteLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testHideLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testHideLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testMoveSubtreeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testMoveSubtreeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testReturnCopySubtreeResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testReturnCreateLocationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testReturnHideLocationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testReturnUnhideLocationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testReturnUpdateLocationResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testSwapLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testSwapLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testUnhideLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testUnhideLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testUpdateLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\LocationServiceTest\:\:testUpdateLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testCreateObjectStateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testCreateObjectStateGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testCreateObjectStateGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testCreateObjectStateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testDeleteObjectStateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testDeleteObjectStateGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testDeleteObjectStateGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testDeleteObjectStateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testReturnCreateObjectStateGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testReturnCreateObjectStateResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testReturnUpdateObjectStateGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testReturnUpdateObjectStateResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testSetContentStateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testSetContentStateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testSetPriorityOfObjectStateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testSetPriorityOfObjectStateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testUpdateObjectStateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testUpdateObjectStateGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\ObjectStateServiceTest\:\:testUpdateObjectStateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAddPolicyByRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAddPolicyByRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAssignRoleToUserEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAssignRoleToUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAssignRoleToUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testAssignRoleToUserStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testCreateRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testCreateRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testCreateRoleEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testCreateRoleStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testDeleteRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testDeleteRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testDeleteRoleEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testDeleteRoleStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testPublishRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testPublishRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testRemovePolicyByRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testRemovePolicyByRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testRemoveRoleAssignmentEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testRemoveRoleAssignmentStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnAddPolicyByRoleDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnCreateRoleDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnCreateRoleResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnRemovePolicyByRoleDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnUpdatePolicyByRoleDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testReturnUpdateRoleDraftResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testUpdatePolicyByRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testUpdatePolicyByRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testUpdateRoleDraftEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\RoleServiceTest\:\:testUpdateRoleDraftStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/RoleServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testAssignSectionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testAssignSectionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testAssignSectionToSubtreeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testAssignSectionToSubtreeStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testCreateSectionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testCreateSectionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testDeleteSectionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testDeleteSectionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testReturnCreateSectionResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testReturnUpdateSectionResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testUpdateSectionEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\SectionServiceTest\:\:testUpdateSectionStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/SectionServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\TrashItemDeleteResult and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Trash\\TrashItemDeleteResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testDeleteTrashItemEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testDeleteTrashItemStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testEmptyTrashEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testEmptyTrashStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testRecoverEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testRecoverStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testReturnDeleteTrashItemResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testReturnEmptyTrashResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testReturnRecoverResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testReturnTrashResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testTrashEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\TrashServiceTest\:\:testTrashStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/TrashServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testCreateGlobalUrlAliasStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testCreateUrlAliasEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testCreateUrlAliasStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForLocationEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testRefreshSystemUrlAliasesForLocationStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testRemoveAliasesEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testRemoveAliasesStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testReturnCreateGlobalUrlAliasResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLAliasServiceTest\:\:testReturnCreateUrlAliasResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Parameter \#4 \$forwarding of method Ibexa\\Core\\Event\\URLAliasService\:\:createGlobalUrlAlias\(\) expects bool, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Parameter \#4 \$forwarding of method Ibexa\\Core\\Event\\URLAliasService\:\:createUrlAlias\(\) expects bool, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Parameter \#5 \$alwaysAvailable of method Ibexa\\Core\\Event\\URLAliasService\:\:createGlobalUrlAlias\(\) expects bool, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Parameter \#5 \$alwaysAvailable of method Ibexa\\Core\\Event\\URLAliasService\:\:createUrlAlias\(\) expects bool, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Event/URLAliasServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLServiceTest\:\:testReturnUpdateUrlResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLServiceTest\:\:testUpdateUrlEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLServiceTest\:\:testUpdateUrlStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLServiceTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertSame\(\) with Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\URLWildcardTranslationResult will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testCreateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testCreateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testRemoveEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testRemoveStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testReturnCreateResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testReturnTranslateResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testTranslateEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\URLWildcardServiceTest\:\:testTranslateStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Parameter \#3 \$forward of method Ibexa\\Core\\Event\\URLWildcardService\:\:create\(\) expects bool, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Event/URLWildcardServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserPreferenceServiceTest\:\:testSetUserPreferenceEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserPreferenceServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserPreferenceServiceTest\:\:testSetUserPreferenceStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserPreferenceServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testAssignUserToUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testAssignUserToUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testCreateUserEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testCreateUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testCreateUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testCreateUserStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testDeleteUserEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testDeleteUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testDeleteUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testDeleteUserStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testMoveUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testMoveUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnCreateUserGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnCreateUserResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnDeleteUserGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnDeleteUserResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnUpdateUserGroupResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnUpdateUserResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testReturnUpdateUserTokenResultInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUnAssignUserFromUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUnAssignUserFromUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserGroupEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserGroupStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserTokenEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Event\\UserServiceTest\:\:testUpdateUserTokenStopPropagationInBeforeEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Event/UserServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateFieldSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateFieldSettingsNoError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateValidatorConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateValidatorConfigurationNoError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\APIFieldTypeTest\:\:testValidateValueNoError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/APIFieldTypeTest.php - - - - message: '#^Access to an undefined property Ibexa\\Core\\FieldType\\Validator\\EmailAddressValidator\:\:\$Extent\.$#' - identifier: property.notFound - count: 4 - path: tests/lib/FieldType/EmailAddressValidatorTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\EmailAddressValidator will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/FieldType/EmailAddressValidatorTest.php - - - - message: '#^Access to an undefined property Ibexa\\Core\\FieldType\\Validator\\FileSizeValidator\:\:\$unexisting\.$#' - identifier: property.notFound - count: 2 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Translation\\Message\:\:\$message\.$#' - identifier: property.protected - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\Translation\\Message\:\:\$values\.$#' - identifier: property.protected - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\FileSizeValidator will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:providerForValidateKO\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:providerForValidateOK\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateCorrectValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$message with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$size with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\FileSizeValidatorTest\:\:testValidateWrongValues\(\) has parameter \$values with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable - count: 3 - path: tests/lib/FieldType/FileSizeValidatorTest.php - - - - message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Float\\Value constructor expects float\|null, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/FieldType/FloatTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:__construct\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/FieldType/Generic/Stubs/Value.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:getValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Generic/Stubs/Value.php - - - - message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Generic\\Stubs\\Value\:\:\$value has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/FieldType/Generic/Stubs/Value.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Image\\PathGenerator\\LegacyPathGeneratorTest\:\:provideStoragePathForFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Image\\PathGenerator\\LegacyPathGeneratorTest\:\:testGetStoragePathForField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\FieldType\\ImageAsset\\AssetMapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 4 - path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Repository\\Values\\Content\\Content\:\:expects\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:createPartialMapper\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:dataProviderForIsAsset\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\FieldType\\ImageAsset\\AssetMapperTest\:\:\$mappings type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/ImageAsset/AssetMapperTest.php - - - - message: '#^Parameter \#1 \$value of class Ibexa\\Core\\FieldType\\Integer\\Value constructor expects int\|null, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/FieldType/IntegerTest.php - - - - message: '#^Parameter \#1 \$contentId of method Ibexa\\Tests\\Core\\FieldType\\RelationListTest\:\:generateValidationError\(\) expects string, int given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/FieldType/RelationListTest.php - - - - message: '#^Parameter \#1 \$value of method Ibexa\\Core\\FieldType\\RelationList\\Type\:\:getRelations\(\) expects Ibexa\\Core\\FieldType\\RelationList\\Value, Ibexa\\Core\\FieldType\\Value given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/FieldType/RelationListTest.php - - - - message: '#^Parameter \#1 \$fieldValue of method Ibexa\\Core\\FieldType\\Relation\\Type\:\:getRelations\(\) expects Ibexa\\Core\\FieldType\\Relation\\Value, Ibexa\\Core\\FieldType\\Value given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/FieldType/RelationTest.php - - - - message: '#^Parameter \#1 \$selection of class Ibexa\\Core\\FieldType\\Selection\\Value constructor expects array\, array\ given\.$#' - identifier: argument.type - count: 4 - path: tests/lib/FieldType/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\Gateway\\DoctrineStorageTest\:\:testGetIdUrlMap\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\Gateway\\DoctrineStorageTest\:\:testGetUrlIdMap\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\Gateway\\DoctrineStorageTest\:\:testInsertUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\Gateway\\DoctrineStorageTest\:\:testLinkUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\Gateway\\DoctrineStorageTest\:\:testUnlinkUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php - - - - message: '#^Cannot access offset ''urlId'' on array\|bool\|float\|int\|string\|null\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 2 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testDeleteFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testGetFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testGetFieldDataNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testGetFieldDataWithEmptyUrlId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testHasFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testStoreFieldDataWithEmptyUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testStoreFieldDataWithExistingUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:testStoreFieldDataWithNewUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:\$gatewayMock \(Ibexa\\Core\\FieldType\\Url\\UrlStorage\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\FieldType\\Url\\UrlStorageTest\:\:\$loggerMock \(PHPUnit\\Framework\\MockObject\\MockObject&Psr\\Log\\LoggerInterface\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/FieldType/Url/UrlStorageTest.php - - - - message: '#^Parameter \#1 \$link of class Ibexa\\Core\\FieldType\\Url\\Value constructor expects string\|null, int given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/FieldType/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:providerForTestCreatePersistenceValue\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:providerForTestValidate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testCreatePersistenceValue\(\) has parameter \$expectedFieldValueExternalData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testCreatePersistenceValue\(\) has parameter \$userValueDate with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\FieldType\\UserTest\:\:testValidate\(\) has parameter \$expectedValidationErrors with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/FieldType/UserTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\FieldType\\\\Validator'' and Ibexa\\Core\\FieldType\\Validator\\StringLengthValidator will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/FieldType/Validator/StringLengthValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentInfoLocationLoader\\SudoMainLocationLoaderTest\:\:testLoadLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentInfoLocationLoader\\SudoMainLocationLoaderTest\:\:testLoadLocationError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentInfoLocationLoader\\SudoMainLocationLoaderTest\:\:testLoadLocationNoMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentPreviewHelperTest\:\:testChangeConfigScope\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentPreviewHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentPreviewHelperTest\:\:testPreviewActive\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentPreviewHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentPreviewHelperTest\:\:testPreviewedContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentPreviewHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentPreviewHelperTest\:\:testPreviewedLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentPreviewHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\ContentPreviewHelperTest\:\:testRestoreConfigScope\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/ContentPreviewHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldHelperTest\:\:testIsFieldEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/FieldHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldHelperTest\:\:testIsFieldNotEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/FieldHelperTest.php - - - - message: '#^Constant Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:DEFAULT_GROUP_NAME is unused\.$#' - identifier: classConstant.unused - count: 1 - path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:getArrayTranslatorFieldsGroupsList\(\) has parameter \$groups with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:getFieldDefinitionMock\(\) has parameter \$constructorArgs with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Helper\\FieldsGroups\\ArrayTranslatorFieldsGroupsListTest\:\:\$translatorMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Helper/FieldsGroups/ArrayTranslatorFieldsGroupsListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\PreviewLocationProviderTest\:\:testGetPreviewLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/PreviewLocationProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\PreviewLocationProviderTest\:\:testGetPreviewLocationDraft\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/PreviewLocationProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\PreviewLocationProviderTest\:\:testGetPreviewLocationNoLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/PreviewLocationProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedField\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedFieldProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslatedNameProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:getTranslationSiteAccessProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetAvailableLanguagesWithTranslationSiteAccesses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetAvailableLanguagesWithoutTranslationSiteAccesses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedName\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameByContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameByContentInfo\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameByContentInfoForcedLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameByContentInfoForcedLanguageMainLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslatedNameForcedLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$language with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$relatedSiteAccesses with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccess\(\) has parameter \$translationSiteAccesses with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:testGetTranslationSiteAccessUnkownLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Helper\\TranslationHelperTest\:\:\$siteAccessByLanguages has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Helper/TranslationHelperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\IO\\ConfigScopeChangeAwareIOServiceTest\:\:\$innerIOService \(Ibexa\\Core\\IO\\ConfigScopeChangeAwareIOService&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\IOServiceInterface&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/IO/ConfigScopeChangeAwareIOServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\FilePathNormalizer\\FlysystemTest\:\:providerForTestNormalizePath\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php - - - - message: '#^Parameter \#1 \$suffix of static method PHPUnit\\Framework\\Assert\:\:assertStringEndsWith\(\) expects non\-empty\-string, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/IO/FilePathNormalizer/FlysystemTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\BaseVisibilityConverterTestCase\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/BaseVisibilityConverterTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\DFSVisibilityConverterTest\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/DFSVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestInverseForDirectory\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\Flysystem\\VisibilityConverter\\SiteAccessAwareVisibilityConverterTest\:\:getDataForTestInverseForFile\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/Flysystem/VisibilityConverter/SiteAccessAwareVisibilityConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\IOBinarydataHandler\\FlysystemTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/IOBinarydataHandler/FlysystemTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\IOMetadataHandler\\FlysystemTest\:\:getDataForFileExists\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/IOMetadataHandler/FlysystemTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\IOMetadataHandler\\FlysystemTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/IOMetadataHandler/FlysystemTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\IO\\IOMetadataHandler\\FlysystemTest\:\:\$handler \(Ibexa\\Core\\IO\\IOMetadataHandler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\IOMetadataHandler\\Flysystem\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/IO/IOMetadataHandler/FlysystemTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\AbsolutePrefixTest\:\:provideData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/IO/UrlDecorator/AbsolutePrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:provideData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$decoratedUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$prefix with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testDecorate\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$decoratedUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$prefix with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlDecorator\\PrefixTest\:\:testUndecorate\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/IO/UrlDecorator/PrefixTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlRedecoratorTest\:\:testRedecorateFromSource\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/UrlRedecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\IO\\UrlRedecoratorTest\:\:testRedecorateFromTarget\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/IO/UrlRedecoratorTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\IO\\UrlRedecoratorTest\:\:\$redecorator \(Ibexa\\Core\\IO\\UrlRedecorator&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\IO\\UrlRedecorator\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/IO/UrlRedecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\Base\:\:getPersistenceMock\(\) has parameter \$mockMethods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/Base.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\Base\:\:getUserMock\(\) has parameter \$mockMethods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/Base.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testGetCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\BlockingLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/BlockingLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testGetCriterionMultipleValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testGetCriterionSingleValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ContentTypeLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:dataProviderForAccept\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:dataProviderForEvaluate\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:getLanguageLimitation\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LanguageLimitation\\ContentDeleteEvaluatorTest\:\:getTergetVersion\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LanguageLimitation/ContentDeleteEvaluatorTest.php - - - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testGetCriterionMultipleValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testGetCriterionSingleValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\LocationLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/LocationLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestEvaluateSelfGroup\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\MemberOfLimitationTypeTest\:\:testEvaluateSelfGroup\(\) has parameter \$currentUserGroupLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/MemberOfLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testGetCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\NewObjectStateLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/NewObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testGetCriterionMultipleValuesFromMultipleGroups\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testGetCriterionMultipleValuesFromSingleGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:testGetCriterionSingleValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Limitation\\ObjectStateLimitationTypeTest\:\:\$loadObjectStatesMap type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ObjectStateLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:getTestEvaluateContentMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:getTestEvaluateVersionInfoMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$object with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistence with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentContentTypeLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php - - - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\ParentDepthLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/ParentDepthLimitationTypeTest.php - - - - message: '#^Instanceof between Ibexa\\Core\\Repository\\Values\\User\\UserRoleAssignment and Ibexa\\Core\\Repository\\Values\\User\\User will always evaluate to false\.$#' - identifier: instanceof.alwaysFalse - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:providerForTestValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\RoleLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/RoleLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testGetCriterionMultipleValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testGetCriterionSingleValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SectionLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SectionLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testGetCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SiteAccessLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SiteAccessLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getContentMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getContentMock\(\) has parameter \$shouldBeCalled with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getVersionInfoMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:getVersionInfoMock\(\) has parameter \$shouldBeCalled with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testGetCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\StatusLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/StatusLimitationTypeTest.php - - - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\:\:\$id\.$#' - identifier: property.notFound - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestAcceptValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestAcceptValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestEvaluate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestEvaluateInvalidArgument\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestValidateError\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:providerForTestValidatePass\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testAcceptValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testAcceptValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testBuildValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluate\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$persistenceLocations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testEvaluateInvalidArgument\(\) has parameter \$targets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testGetCriterionInvalidValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testGetCriterionMultipleValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testGetCriterionSingleValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testValidateError\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testValidateErrorWrongPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testValidatePass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Limitation\\SubtreeLimitationTypeTest\:\:testValueSchema\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Limitation/SubtreeLimitationTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Controller\\ControllerTest\:\:testRender\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Controller/ControllerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Controller\\ControllerTest\:\:testRenderWithResponse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Controller/ControllerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Event\\RouteReferenceGenerationEventTest\:\:testConstruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Event\\RouteReferenceGenerationEventTest\:\:testGetSet\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Event\\ScopeChangeEventTest\:\:testGetSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Event/ScopeChangeEventTest.php - - - - message: '#^Method Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest\.php\:47\:\:getTwigVariables\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\ContentViewTwigVariablesSubscriberTest\:\:getRegistry\(\) has parameter \$providers with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest\.php\:47\:\:\$identifier has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/EventListener/ContentViewTwigVariablesSubscriberTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListenerTest\:\:testGetSubscribedEvents\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListenerTest\:\:testOnRouteReferenceGeneration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListenerTest\:\:testOnRouteReferenceGenerationNoLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListenerTest\:\:testOnRouteReferenceGenerationNoTranslationSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - - - message: '#^Parameter \#1 \$translationHelper of class Ibexa\\Core\\MVC\\Symfony\\EventListener\\LanguageSwitchListener constructor expects Ibexa\\Core\\Helper\\TranslationHelper, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:dataProviderForTestGetViewParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\ImageAsset\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$status with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/FieldType/ImageAsset/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:providerForTestGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$status with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testNotFoundGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\Relation\\ParameterProviderTest\:\:testUnauthorizedGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:providerForTestGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$desinationContentIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testNotFoundGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\RelationList\\ParameterProviderTest\:\:testUnauthorizedGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getLocaleConverterMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getRequestStackMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:getRequestStackMock\(\) has parameter \$hasLocale with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:providerForTestGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:testGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$expectedLocale with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProvider\\LocaleParameterProviderTest\:\:testGetViewParameters\(\) has parameter \$hasRequestLocale with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProviderRegistryTest\:\:testGetParameterProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProviderRegistryTest\:\:testGetParameterProviderFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\FieldType\\View\\ParameterProviderRegistryTest\:\:testSetHasParameterProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Locale\\LocaleConverterTest\:\:convertToPOSIXProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Locale\\LocaleConverterTest\:\:\$conversionMap \(array\{array\{string, string\|null\}\}\) does not accept array\{eng\-GB\: ''en_GB'', eng\-US\: ''en_US'', fre\-FR\: ''fr_FR'', ger\-DE\: ''de_DE'', nor\-NO\: ''no_NO'', cro\-HR\: ''hr_HR''\}\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/MVC/Symfony/Locale/LocaleConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getContentInfoMock\(\) has parameter \$properties with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getLocationMock\(\) has parameter \$properties with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getPartiallyMockedViewProvider\(\) has parameter \$matchingConfig with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\BaseTestCase\:\:getPermissionResolverMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/BaseTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\DepthTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\DepthTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\DepthTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\DepthTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Depth\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Depth\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Content\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroupTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroupTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroupTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroupTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroup\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeGroup\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentTypeTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\LocationTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\LocationTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\LocationTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\LocationTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Location\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentTypeTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentTypeTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocationTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocationTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocationTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocationTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocation\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\ParentLocation\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\RemoteTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\RemoteTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\RemoteTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\RemoteTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Remote\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\SectionTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\SectionTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\SectionTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\SectionTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Id\\Section\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:matchContentInfoProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$contentTypeIdentifier of method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentTypeTest\:\:generateRepositoryMockForContentTypeIdentifier\(\) expects int, string given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentTypeTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentTypeTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentTypeTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentType\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\ParentContentType\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\SectionTest\:\:matchSectionProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\SectionTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\SectionTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\Section\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\Identifier\\Section\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:getMultipleValuedMatcherMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:matchingConfigProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:testInjectRepository\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:testSetMatchingConfig\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\MultipleValuedTest\:\:testSetMatchingConfig\(\) has parameter \$matchingConfig with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAliasTest\:\:matchLocationProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAliasTest\:\:setMatchingConfigProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAliasTest\:\:testMatchContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAliasTest\:\:testMatchLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAliasTest\:\:testSetMatchingConfig\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Parameter \#1 \$contentInfo of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAlias\:\:matchContentInfo\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Parameter \#1 \$location of method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ContentBased\\UrlAlias\:\:matchLocation\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Parameter \#1 \$repository of method Ibexa\\Core\\MVC\\RepositoryAware\:\:setRepository\(\) expects Ibexa\\Contracts\\Core\\Repository\\Repository, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Symfony\\Matcher\\ConfigurableMatcherFactoryInterface\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:matchConfigProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$matchedConfig with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$namespace with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$parameterName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$scope with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Matcher\\DynamicallyConfiguredMatcherFactoryDecoratorTest\:\:testMatch\(\) has parameter \$viewsConfiguration with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Matcher/DynamicallyConfiguredMatcherFactoryDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:generateProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$referenceType with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testGenerateWithSiteAccessNoReverseMatch\(\) has parameter \$urlResource with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$referenceType with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\GeneratorTest\:\:testSimpleGenerate\(\) has parameter \$urlResource with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/GeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:generateGenerator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerate\(\) has parameter \$params with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerate\(\) has parameter \$resource with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerateNullResource\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerateNullResourceAndPassedParams\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceGeneratorTest\:\:testGenerateNullResourceWithoutRoute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Parameter \#1 \$dispatcher of class Ibexa\\Core\\MVC\\Symfony\\Routing\\Generator\\RouteReferenceGenerator constructor expects Symfony\\Component\\EventDispatcher\\EventDispatcherInterface, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 4 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceTest\:\:testConstruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceTest\:\:testGetSetParams\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceTest\:\:testGetSetRoute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\RouteReferenceTest\:\:testRemoveParam\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequestTest\:\:fromUrlProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequestTest\:\:testFromUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:providerTestDoGenerate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:providerTestDoGenerateRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:providerTestDoGenerateWithSiteaccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:providerTestIsPrefixExcluded\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerate\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerate\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateNoUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$isOutsideAndNotExcluded with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateRootLocation\(\) has parameter \$pathPrefix with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateWithSiteAccessParam\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testDoGenerateWithSiteAccessParam\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testGetPathPrefixByRootLocationId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testIsPrefixExcluded\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testIsPrefixExcluded\(\) has parameter \$expectedIsExcluded with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testIsPrefixExcluded\(\) has parameter \$uri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasGeneratorTest\:\:testLoadLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:getRequestByPathInfo\(\) has parameter \$pathInfo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:providerTestSupports\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateInvalidLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateNoLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateWithContentId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateWithContentIdWithMissingMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateWithLocationAsParameter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGenerateWithLocationId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testGetRouteCollection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationCorrectCaseUriPrefixExcluded\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationCustom\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationCustomForward\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationWithCaseRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestLocationWrongCaseUriPrefixExcluded\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestResource\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestResourceCaseIncorrectWithForwardRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestResourceWithCaseRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestResourceWithRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestVirtual\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testMatchRequestVirtualWithCaseRedirect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testRequestContext\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testSupports\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testSupports\(\) has parameter \$isSupported with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:testSupports\(\) has parameter \$routeReference with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Routing\\UrlAliasRouterTest\:\:\$requestContext has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:checkRequestPathProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:generateUriProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:generateUriStandardProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$path with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$requestUri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPath\(\) has parameter \$siteAccessUri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testCheckRequestPathStandard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$isUriRouteName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$siteAccessUri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUri\(\) has parameter \$uri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$isUriRouteName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\HttpUtilsTest\:\:testGenerateUriStandard\(\) has parameter \$uri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\:\:\$matcher \(Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\) does not accept Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\URILexer&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 2 - path: tests/lib/MVC/Symfony/Security/HttpUtilsTest.php - - - - message: '#^Parameter \#1 \$expirationDate of class Ibexa\\Contracts\\Core\\Repository\\Values\\User\\PasswordInfo constructor expects DateTimeImmutable\|null, DateTimeImmutable\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/Security/UserCheckerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserTest\:\:testConstruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserTest\:\:testIsEqualTo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserTest\:\:testIsEqualToNotSameUserType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserTest\:\:testIsNotEqualTo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserTest\:\:testSetAPIUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\UserWrappedTest\:\:testIsEqualTo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/UserWrappedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:supportsAttributeProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:supportsClassProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsAttribute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsAttribute\(\) has parameter \$attribute with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsAttribute\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsClass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testSupportsClass\(\) has parameter \$class with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVote\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVote\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVote\(\) has parameter \$repositoryCanUser with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVoteInvalidAttribute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:testVoteInvalidAttribute\(\) has parameter \$attributes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:voteInvalidAttributeProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\CoreVoterTest\:\:voteProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:supportsAttributeProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:supportsClassProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsAttribute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsAttribute\(\) has parameter \$attribute with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsAttribute\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsClass\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testSupportsClass\(\) has parameter \$class with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVote\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVote\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVote\(\) has parameter \$repositoryCanUser with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVoteInvalidAttribute\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:testVoteInvalidAttribute\(\) has parameter \$attributes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:voteInvalidAttributeProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Security\\Voter\\ValueObjectVoterTest\:\:voteProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundAndTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundAndTest\:\:testMatch\(\) has parameter \$expectedMatch with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundAndTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Compound\\CompoundOrTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Compound/CompoundOrTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:getExistingSiteProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:siteAccessNamesProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - - - message: '#^Parameter \#2 \$groupsBySiteAccess of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\StaticSiteAccessProvider constructor expects array\, array\\> given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - - - message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\:\:\$groups \(array\\) does not accept array\\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\ChainSiteAccessProviderTest\:\:\$groupsBySiteAccess type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/Provider/ChainSiteAccessProviderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterBaseTestCase\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterBaseTestCase\:\:testMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php - - - - message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Host constructor invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:reverseMatchProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$elementNumber with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$expectedHost with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testReverseMatchFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostElementTest\:\:testSerialize\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testReverseHostMatchFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testReverseMatchHost\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testReverseMatchPort\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testReversePortMatchFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testSetGetRequestMapHost\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostPortURITest\:\:testSetGetRequestMapPort\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Parameter \#1 \$map of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Port constructor expects array\, array\ given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\Routing\\\\SimplifiedRequest'' and Ibexa\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequest will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - - - message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\HostText constructor invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostTextTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostTextTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterHostTextTest\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:fixupURIProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:setRequestProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testAnalyseLink\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testAnalyseURI\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testReverseMatchFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testSetGetRequest\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterMapURITest\:\:testSetGetRequest\(\) has parameter \$config with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterPortHostURITest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterPortHostURITest.php - - - - message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Map\\Port constructor invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterSpecialPortsTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterSpecialPortsTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:createRouter\(\) has parameter \$debug with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testConstructDebug\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatch\(\) has parameter \$siteAccess with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchByName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchByNameInvalidSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchByNameNoVersatileMatcher\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchWithDevEnvFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchWithEnv\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterTest\:\:testMatchWithProdEnvFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:analyseProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:reverseMatchProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testAnalyseLink\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testAnalyseURI\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testAnalyseURILevelAsInt\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatch\(\) has parameter \$originalPathinfo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testReverseMatchFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElement2Test\:\:testSerialize\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:analyseProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:reverseMatchProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testAnalyseLink\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testAnalyseURI\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testReverseMatch\(\) has parameter \$originalPathinfo with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testReverseMatch\(\) has parameter \$siteAccessName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURIElementTest\:\:testSerialize\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\Routing\\\\SimplifiedRequest'' and Ibexa\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequest will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\URIText constructor invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:matchProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:testAnalyseLink\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:testAnalyseURI\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\RouterURITextTest\:\:testReverseMatch\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:getAvailableSitAccesses\(\) return type with generic class ArrayIterator does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:getConfigResolverParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - - - message: '#^Parameter \#2 \$groupsBySiteAccess of class Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\Provider\\StaticSiteAccessProvider constructor expects array\, array\\> given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:\$availableSiteAccesses with generic class ArrayIterator does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessServiceTest\:\:\$configResolverParameters type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/SiteAccess/SiteAccessServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetAvailableLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetConfigResolver\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetRequestedUriString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetSiteaccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetSystemUriString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetSystemUriStringNoUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetTranslationSiteAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetViewParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\GlobalHelperTest\:\:testGetViewParametersString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php - - - - message: '#^Anonymous function has an unused use \$content\.$#' - identifier: closure.unusedUse - count: 1 - path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - - - message: '#^Anonymous function has an unused use \$siteAccess\.$#' - identifier: closure.unusedUse - count: 1 - path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - - - message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerReference'' and Symfony\\Component\\HttpKernel\\Controller\\ControllerReference will always evaluate to true\.$#' - identifier: method.alreadyNarrowedType - count: 1 - path: tests/lib/MVC/Symfony/Templating/RenderLocationStrategyTest.php - - - - message: '#^Argument of an invalid type string supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:getExtensions\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:getLocale\(\) should return string but returns array\\.$#' - identifier: return.type - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:setConfigurationLocale\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Contracts\\Core\\SiteAccess\\ConfigResolverInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 115 on line 2$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^PHPDoc tag @param has invalid value \(\\Ibexa\\Core\\MVC\\Symfony\\Locale\\LocaleConverterInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 114 on line 2$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^PHPDoc tag @param has invalid value \(\\Symfony\\Contracts\\Translation\\TranslatorInterface\|\\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\\n ", expected variable at offset 109 on line 2$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$configResolverInterfaceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$locale has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$localeConverterInterfaceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$suffixes has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\FileSizeExtensionTest\:\:\$translatorMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/FileSizeExtensionTest.php - - - - message: '#^Anonymous function should return non\-empty\-string but returns non\-empty\-string\|false\.$#' - identifier: return.type - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\RoutingExtensionTest\:\:getExampleRouteReference\(\) has parameter \$name with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\Templating\\Twig\\Extension\\RoutingExtensionTest\:\:getExampleRouteReference\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/Templating/Twig/Extension/RoutingExtensionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:badTemplateIdentifierProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\AbstractViewTestCase\:\:goodTemplateIdentifierProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Parameter \#1 \$templateIdentifier of method Ibexa\\Core\\MVC\\Symfony\\View\\View\:\:setTemplateIdentifier\(\) expects \(Closure\(array\\)\: string\)\|string, \(callable\(\)\: mixed\)\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/MVC/Symfony/View/AbstractViewTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilderTest\:\:\$contentViewBuilder \(Ibexa\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilder&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\MVC\\Symfony\\View\\Builder\\ContentViewBuilder\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/MVC/Symfony/View/Builder/ContentViewBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:constructFailProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:constructProvider\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstruct\(\) has parameter \$params with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstruct\(\) has parameter \$templateIdentifier with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstructFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:testConstructFail\(\) has parameter \$templateIdentifier with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ContentViewTest\:\:\$valueParams type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/ContentViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$template with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:createViewUnderTest\(\) has parameter \$viewType with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\LoginFormViewTest\:\:getAlwaysAvailableParams\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/LoginFormViewTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\Renderer\\TemplateRendererTest\:\:testRender\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\Renderer\\TemplateRendererTest\:\:testRenderNoViewTemplate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php - - - - message: '#^Method Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/View/VariableProviderRegistryTest\.php\:29\:\:getTwigVariables\(\) has parameter \$options with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\VariableProviderRegistryTest\:\:getRegistry\(\) has parameter \$providers with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\MVC\\View\\VariableProvider@anonymous/tests/lib/MVC/Symfony/View/VariableProviderRegistryTest\.php\:29\:\:\$identifier has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/View/VariableProviderRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:testRenderContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:testRenderContentWithClosure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:testRenderLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:testRenderLocationWithClosure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:testRenderLocationWithContentPassed\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\MVC\\Symfony\\View\\ViewManagerTest\:\:\$viewBaseLayout has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/MVC/Symfony/View/ViewManagerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Pagination\\AdapterFactory\\SearchHitAdapterFactoryTest\:\:dataProviderForCreateFixedAdapter\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Pagination/AdapterFactory/SearchHitAdapterFactoryTest.php - - - - message: '#^Parameter \#3 \$languageFilter of class Ibexa\\Core\\Pagination\\Pagerfanta\\ContentFilteringAdapter constructor expects array\\|null, array\\|true\> given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Pagination/ContentFilteringAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:getCacheItem\(\) has parameter \$key with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:provideAbstractCacheHandlerArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:provideInMemoryCacheHandlerArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractBaseHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$key with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tags with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 2 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Offset int might not exist on array\|null\.$#' - identifier: offsetAccess.notFound - count: 5 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, string\} given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' - identifier: argument.templateType - count: 3 - path: tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheHit\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$additionalCalls with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$keyGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testLoadMethodsCacheMiss\(\) has parameter \$tagGeneratingResults with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$key with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$keyGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tagGeneratingArguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractInMemoryCacheHandlerTestCase\:\:testUnCachedMethods\(\) has parameter \$tags with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 2 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Offset int might not exist on array\|null\.$#' - identifier: offsetAccess.notFound - count: 5 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, string\} given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' - identifier: argument.templateType - count: 3 - path: tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:arrayAsGenerator\(\) has parameter \$array with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:createCacheItem\(\) has parameter \$tags with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:providerForClearAndInvalidation\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:providerForDelete\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testClearAndInvalidation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testClearAndInvalidation\(\) has parameter \$argument with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testDelete\(\) has parameter \$argument with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testGetItem\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testGetItems\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testGetItemsWithGenerator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Adapter\\InMemoryClearingProxyAdapterTest\:\:testHasItem\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\BookmarkHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/BookmarkHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentHandlerTest\:\:testDeleteContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentLanguageHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ContentTypeHandlerTest\:\:testPublish\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{mixed, ''publish''\} given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Parameter \#2 \$value of method Ibexa\\Tests\\Core\\Persistence\\Cache\\AbstractBaseHandlerTestCase\:\:getCacheItem\(\) expects null, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' - identifier: argument.templateType - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Variable \$tags in empty\(\) always exists and is not falsy\.$#' - identifier: empty.variable - count: 1 - path: tests/lib/Persistence/Cache/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateKey\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateKeyThrowsInvalidArgumentException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateTag\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:providerForTestGenerateTagThrowsInvalidArgumentException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateKey\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateKeyThrowsInvalidArgumentException\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateTag\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorTest\:\:testGenerateTagThrowsInvalidArgumentException\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierSanitizerTest\:\:providerForTestEscapeCacheKey\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierSanitizerTest\:\:testEscapeCacheKey\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/Identifier/CacheIdentifierSanitizerTest.php - - - - message: '#^Function Ibexa\\Core\\Persistence\\Cache\\InMemory\\microtime\(\) has parameter \$asFloat with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Cache/InMemory/InMemoryCacheTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:providerForTestConvertToPathIds\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:testConvertToPathIds\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\LocationPathConverterTest\:\:testConvertToPathIds\(\) has parameter \$resultArray with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/LocationPathConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\NotificationHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/NotificationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\ObjectStateHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testContentHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testContentLocationHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testContentTypeHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testLanguageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testObjectStateHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testSectionHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testTransactionHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testTrashHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testUrlAliasHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testUrlWildcardHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\PersistenceHandlerTest\:\:testUserHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/PersistenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SectionHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\SettingHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/SettingHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:testBeginTransactionStartsCacheTransaction\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:testCommitStopsCacheTransaction\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TransactionHandlerTest\:\:testRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:testDeleteTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:testEmptyTrash\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:testRecover\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\TrashHandlerTest\:\:testTrashSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' - identifier: argument.templateType - count: 3 - path: tests/lib/Persistence/Cache/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/URLHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/URLHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/URLHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\URLHandlerTest\:\:testUpdateUrlStatusIsUpdated\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/URLHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlAliasHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UrlWildcardHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:testAssignRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:testPublishNewRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserHandlerTest\:\:testPublishRoleDraftFromExistingRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Cache/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForCachedLoadMethodsHit\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForCachedLoadMethodsMiss\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Cache\\UserPreferenceHandlerTest\:\:providerForUnCachedMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Cache/UserPreferenceHandlerTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Persistence\\\\FieldType'' and Ibexa\\Contracts\\Core\\Persistence\\FieldType will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 3 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:getFieldTypeMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\FieldType but returns Ibexa\\Contracts\\Core\\FieldType\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:testGetFieldTypeInstance\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:testGetNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:testGetNotFoundBCException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:testGetNotInstance\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldTypeRegistryTest\:\:testRegister\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Parameter \#1 \$coreFieldTypes of class Ibexa\\Core\\Persistence\\FieldTypeRegistry constructor expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Parameter \#1 \$coreFieldTypes of class Ibexa\\Core\\Persistence\\FieldTypeRegistry constructor expects array\, array\ given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Parameter \#2 \$fieldType of method Ibexa\\Core\\Persistence\\FieldTypeRegistry\:\:register\(\) expects Ibexa\\Contracts\\Core\\FieldType\\FieldType, Ibexa\\Contracts\\Core\\Persistence\\FieldType given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldValue\\Converter\\ImageConverterTest\:\:dataProviderForTestToFieldDefinition\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\FieldValue\\Converter\\ImageConverterTest\:\:dataProviderForTestToStorageFieldDefinition\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/FieldValue/Converter/ImageConverterTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\:\:loadBookmarkDataById\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:dataProviderForLoadUserBookmarks\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:loadBookmark\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testCountUserBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testCountUserBookmarks\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testDeleteBookmark\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testInsertBookmark\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLoadBookmarkDataById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLoadBookmarkDataByUserIdAndLocationId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLoadUserBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLoadUserBookmarks\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\Gateway\\DoctrineDatabaseTest\:\:testLocationSwapped\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testLoadByUserIdAndLocationIdExistingBookmark\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testLoadByUserIdAndLocationIdNonExistingBookmark\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testLoadUserBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\HandlerTest\:\:testLocationSwapped\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\MapperTest\:\:testCreateBookmarkFromCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Bookmark\\MapperTest\:\:testExtractBookmarksFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Bookmark/MapperTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 9 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 15 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 8 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 16 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\SlugConverter\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getContentTypeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getRelationFixture\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:getTreeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testAddRelation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCopyAllVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCopySingleVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCopyThrowsNotFoundExceptionContentNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCopyThrowsNotFoundExceptionVersionNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testCreateDraftFromVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testDeleteContentWithLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testDeleteContentWithoutLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testDeleteVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testListVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoadContentInfoByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoadContentList\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoadDraftsForUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoadErrorNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testLoadReverseRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testPublish\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testPublishFirstVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testRemoveRawContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testRemoveRelation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testSetStatus\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testUpdateContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testUpdateMetadata\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:testUpdateMetadataUpdatesPathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$contentHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$contentTypeHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$fieldHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$locationGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$slugConverterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\SlugConverter\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$treeHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\TreeHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$typeGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ContentHandlerTest\:\:\$urlAliasGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateExistingFieldsInNewVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateNewFields\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertCreateNewFieldsForMainLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsExistingLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsForInitialLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:assertUpdateFieldsWithNewLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getFieldTypeMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\FieldType\\FieldType\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getFieldTypeRegistryMock\(\) should return Ibexa\\Core\\Persistence\\FieldTypeRegistry&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\FieldTypeRegistry\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:getStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateExistingFieldsInNewVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateExistingFieldsInNewVersionUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateNewFields\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateNewFieldsForMainLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateNewFieldsForMainLanguageUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testCreateNewFieldsUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testDeleteFields\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testLoadExternalFieldData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsExistingLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsExistingLanguagesUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsForInitialLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsForInitialLanguageUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsWithNewLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:testUpdateFieldsWithNewLanguageUpdatingStorageHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Offset int\<\-1, max\> might not exist on array\{\}\|array\{0\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}, 1\?\: array\{copy\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field, original\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\}\}\.$#' - identifier: offsetAccess.notFound - count: 2 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$value \(Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldValue\) does not accept null\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeMock \(Ibexa\\Contracts\\Core\\FieldType\\FieldType\) does not accept Ibexa\\Contracts\\Core\\Persistence\\FieldType&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeMock \(Ibexa\\Contracts\\Core\\FieldType\\FieldType\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$fieldTypeRegistryMock \(Ibexa\\Core\\Persistence\\FieldTypeRegistry\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldHandlerTest\:\:\$storageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Variable \$copyField might not be defined\.$#' - identifier: variable.undefined - count: 2 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Variable \$originalField might not be defined\.$#' - identifier: variable.undefined - count: 2 - path: tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php - - - - message: '#^Cannot access offset ''email'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Cannot access offset ''id'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Cannot access offset ''name'' on Ibexa\\Core\\FieldType\\Author\\Author\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:testToStorageFieldDefinitionDefaultCurrentUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:testToStorageFieldDefinitionDefaultEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\AuthorTest\:\:\$authors \(array\\) does not accept array\\>\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CheckboxTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CheckboxTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CheckboxTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CheckboxTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CheckboxTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:providerForTestToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:providerForTestToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldDefinitionMultiple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldDefinitionSingle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$dataText with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToFieldValue\(\) has parameter \$sortKeyString with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageFieldDefinitionMultiple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageFieldDefinitionSingle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$dataText with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$sortKey with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\CountryTest\:\:testToStorageValue\(\) has parameter \$sortKeyString with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php - - - - message: '#^Cannot access offset ''timestring'' on array\|bool\|float\|int\|string\|null\.$#' - identifier: offsetAccess.nonOffsetAccessible - count: 3 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:getXMLToDateIntervalMap\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testGenerateDateIntervalXML\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testGetDateIntervalFromXML\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToFieldDefinitionCurrentDate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToFieldDefinitionNoDefault\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToFieldDefinitionWithAdjustmentAndSeconds\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToFieldDefinitionWithAdjustmentNoSeconds\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToStorageFieldDefinitionCurrentDate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToStorageFieldDefinitionNoDefault\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToStorageFieldDefinitionWithAdjustment\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\DateAndTimeTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:providerForTestToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:testToFieldDefinition\(\) has parameter \$dataInt with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\ISBNTest\:\:testToFieldDefinition\(\) has parameter \$excpectedIsbn13Value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\KeywordTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\KeywordTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\KeywordTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\KeywordTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\MediaTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\MediaTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\MediaTest\:\:\$converter has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToFieldDefinitionMultiple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToFieldValueEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationListTest\:\:testToStorageValueEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationTest\:\:\$converter \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationConverter&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\RelationConverter\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToFieldDefinitionMultiple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToFieldDefinitionSingleEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToFieldValueEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToStorageFieldDefinitionMultiple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToStorageFieldDefinitionSingle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\SelectionTest\:\:testToStorageValueEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/SelectionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextBlockTest\:\:\$longText has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextLineTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextLineTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextLineTest\:\:testToStorageFieldDefinitionNoValidator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextLineTest\:\:testToStorageFieldDefinitionWithValidator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TextLineTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToFieldDefinitionDefaultCurrentTime\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToFieldDefinitionDefaultEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToStorageFieldDefinitionDefaultCurrentTime\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToStorageFieldDefinitionDefaultEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\TimeTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\UrlTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\UrlTest\:\:testToFieldValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\UrlTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\\UrlTest\:\:testToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Property Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageFieldValue\:\:\$sortKeyInt \(int\) does not accept false\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Property Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageFieldValue\:\:\$sortKeyString \(string\) does not accept false\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValueConverterRegistryTest\:\:testGetNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValueConverterRegistryTest\:\:testGetStorage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\FieldValueConverterRegistryTest\:\:testRegister\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertContentVersionAttributesLanguages\(\) has parameter \$expectation with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertValuesInRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:insertRelationFixture\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:storeFixture\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testCreateFixtureForMapperExtractContentFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testCreateFixtureForMapperExtractContentFromRowsMultipleVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteFields\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteFieldsWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteNames\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteNamesWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteRelation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteRelationsFrom\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteRelationsTo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteRelationsWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testDeleteVersionsWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testGetAllLocationIds\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testGetFieldIdsByType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testGetFieldIdsByTypeWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testGetLastVersionNumber\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testInsertContentObject\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testInsertNewAlwaysAvailableField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testInsertNewField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testInsertRelation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testInsertVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testListVersionNumbers\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testListVersionsForUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadNonExistentTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadRelationsByType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadRelationsByVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadRelationsNoResult\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadReverseRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadReverseRelationsWithType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadWithAllTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testLoadWithSingleTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testSetName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testSetStatus\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testSetStatusPublished\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testSetStatusUnknownVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testUpdateContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testUpdateField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testUpdateNonTranslatableField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:testUpdateVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Parameter \#2 \$expectedValues of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:assertValuesInRows\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 9 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getCacheIdentifierGeneratorMock\(\) should return Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getInnerLanguageHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getLanguageCacheMock\(\) should return Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testLoadByLanguageCode\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testLoadByLanguageCodeFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testLoadFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:testUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$cacheIdentifierGeneratorMock \(Ibexa\\Core\\Persistence\\Cache\\Identifier\\CacheIdentifierGeneratorInterface\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$innerHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageCacheMock \(Ibexa\\Core\\Persistence\\Cache\\InMemory\\InMemoryCache\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) does not accept Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\CachingLanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:testDeleteLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:testInsertLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:testLoadAllLanguagesData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:testLoadLanguageListData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\\DoctrineDatabase\:\:deleteLanguage\(\) \(void\) is used\.$#' - identifier: method.void - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 11 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 6 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testDeleteFail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testDeleteSuccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testLoadByLanguageCode\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testLoadByLanguageCodeFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testLoadFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:testUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\LanguageHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MapperTest\:\:testCreateLanguageFromCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MapperTest\:\:testExtractLanguagesFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:getLanguageIndicatorData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:isAlwaysAvailableProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:languageIdsFromMaskProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:removeAlwaysAvailableFlagProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testExtractLanguageIdsFromMask\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testExtractLanguageIdsFromMask\(\) has parameter \$expectedResult with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testGenerateLanguageIndicator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testIsAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testIsLanguageAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testIsLanguageAlwaysAvailableNoDefault\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testIsLanguageAlwaysAvailableOtherLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testRemoveAlwaysAvailableFlag\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testRemoveAlwaysAvailableFlag\(\) has parameter \$expectedResult with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGeneratorTest\:\:testRemoveAlwaysAvailableFlag\(\) has parameter \$langMask with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Offset string might not exist on array\{\}\|array\{eng\-US\?\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Language, eng\-GB\?\: Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\}\.$#' - identifier: offsetAccess.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextSearchConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$fieldNameGeneratorMock \(Ibexa\\Core\\Search\\Common\\FieldNameGenerator&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageMaskGenerator \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGenerator\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageAwareTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:delete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:loadList\(\) has parameter \$ids with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:update\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageHandlerMock\:\:\$languages has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/LanguageHandlerMock.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:assertLoadLocationProperties\(\) has parameter \$locationData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildContentTreeSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildGenericNodeSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:buildNodeAssignmentSelectContentWithParentQuery\(\) has parameter \$fields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getConvertNodeAssignmentsLocationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getCreateLocationReturnValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getCreateLocationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getLoadLocationValues\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getLocationGateway\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getNodeAssignmentValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:getUpdateLocationData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:providerForTestUpdatePathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testChangeMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignments\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignments\(\) has parameter \$field with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignments\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignmentsMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignmentsParentHidden\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignmentsParentInvisible\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testConvertNodeAssignmentsUpdateAssignment\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationNodeAssignmentCreation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationNodeAssignmentCreation\(\) has parameter \$expectedResult with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationNodeAssignmentCreationMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationReturnValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationReturnValues\(\) has parameter \$field with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationReturnValues\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationValues\(\) has parameter \$field with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testCreateLocationValues\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testDeleteNodeAssignment\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testDeleteNodeAssignmentWithSecondArgument\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testGetChildren\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testGetMainNodeId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testHideUnhideParentTree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testHideUnhidePartialSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testHideUnhideUpdateHidden\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testHideUpdateHidden\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadInvalidLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadLocationByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadLocationDataByContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadLocationDataByContentLimitSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadLocationList\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testLoadParentLocationDataForDraftContentAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testMoveHiddenDestinationUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testMoveHiddenSourceChildUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testMoveHiddenSourceUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testMoveSubtreeAssignmentUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testMoveSubtreePathUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testRemoveLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testSetSectionForSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testSwapLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocation\(\) has parameter \$field with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocation\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdateLocationsContentVersionNo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$expected with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$parentLocationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTest\:\:testUpdatePathIdentificationString\(\) has parameter \$text with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Parameter \#2 \$y of method Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder\:\:in\(\) expects array\\|string, array\ given\.$#' - identifier: argument.type - count: 11 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:getLoadTrashValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:getLocationGateway\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:getTrashValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:getUntrashedLocationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testCleanupTrash\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testCountLocationsByContentId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testCountTrashed\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListEmptyTrash\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListFullTrash\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashItem\(\) has parameter \$key with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashItem\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashLimited\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashSortedDepth\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testListTrashSortedPathStringDesc\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testLoadTrashByLocationId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testLoadTrashByLocationId\(\) has parameter \$field with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testLoadTrashByLocationId\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testRemoveElementFromTrash\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testTrashLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testTrashLocationUpdateTrashTable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashInvalidLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationDefault\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationDefault\(\) has parameter \$property with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationDefault\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationInvalidOldParent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationInvalidParent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:testUntrashLocationNewParent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\\DoctrineDatabaseTrashTest\:\:trashSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Parameter \#2 \$y of method Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder\:\:in\(\) expects array\\|string, array\ given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:testCreateLocationFromRow\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:testCreateLocationFromRowWithPrefix\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:testCreateLocationsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:testCreateTrashedFromRow\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:testGetLocationCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Parameter \#2 \$prefix of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:createLocationFromRow\(\) expects string, null given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationCreateStructValues type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationRow type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\MapperTest\:\:\$locationValues type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/MapperTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 31 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 8 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:getTrashHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testDeleteTrashItemStillHaveLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testFindTrashItemsWhenEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testFindTrashItemsWithLimits\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testLoadTrashItem\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testRecover\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testTrashSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testTrashSubtreeReturnsNull\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Location\\TrashHandlerTest\:\:testTrashSubtreeUpdatesMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 4 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 19 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 4 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 4 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:getLocationHandler\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:loadParentLocationsForDraftContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testChangeMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testCopySubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testCreateLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testHideUnhideUpdateHidden\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testHideUpdateHidden\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testLoadLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testLoadLocationByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testLoadLocationSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testLoadLocationsByContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testMoveSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testRemoveSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testSetSectionForSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testSwapLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LocationHandlerTest\:\:testUpdateLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php - - - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\Relation\\CreateStruct supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\:\:createCreateStructFromContent\(\) invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:extractContentInfoFromRowProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:extractVersionInfoFromRowProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getContentExtractFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getLanguageHandler\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getMapper\(\) has parameter \$valueConverter with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getMultipleVersionsNamesExtractFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getNamesExtractFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:getRelationExtractFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testConvertToStorageValue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentBasicProperties\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentBasicProperties\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldCount\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldsNoId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentFieldsNoId\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentParentLocationsEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentParentLocationsEmpty\(\) has parameter \$data with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateCreateStructFromContentWithPreserveOriginalLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateRelationFromCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testCreateVersionInfoForContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractContentFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractContentFromRowsMultipleVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractContentInfoFromRow\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractContentInfoFromRow\(\) has parameter \$fixtures with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:testExtractRelationsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\CreateStruct\:\:\$name \(array\\) does not accept string\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:\$languageHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\MapperTest\:\:\$valueConverterRegistryMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testDeleteObjectState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testDeleteObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testDeleteObjectStateLinks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testGetContentCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testInsertObjectState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testInsertObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testInsertObjectStateInEmptyGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateDataByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateDataForContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateGroupData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateGroupDataByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateGroupListData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testLoadObjectStateListData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testSetContentState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testUpdateObjectState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testUpdateObjectStateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testUpdateObjectStateLinks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:testUpdateObjectStatePriority\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateGroupRowsFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateGroupRowsFixture\(\) should return array\\> but returns array\\>\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateRowsFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:getObjectStateRowsFixture\(\) should return array\\> but returns array\\>\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateFromInputStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateGroupFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateGroupFromInputStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateGroupListFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\MapperTest\:\:testCreateObjectStateListFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 32 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 18 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Match expression does not handle remaining values\: int\\|int\<4, max\>$#' - identifier: match.unhandled - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testCreateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testDeleteGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testDeleteThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testGetContentCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testGetContentState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadAllGroups\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadGroupByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadGroupByIdentifierThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadGroupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadObjectStates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testLoadThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testSetContentState\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testSetPriority\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:testUpdateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\ObjectState\\ObjectStateHandlerTest\:\:\$objectStateHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\ObjectState\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testAssignSectionToContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testCountContentObjectsInSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testCountRoleAssignmentsUsingSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testDeleteSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testInsertSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testLoadAllSectionData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testLoadSectionData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testLoadSectionDataByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:testUpdateSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\\DoctrineDatabase\:\:assignSectionToContent\(\) \(void\) is used\.$#' - identifier: method.void - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 12 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testAssign\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testCountRoleAssignmentsUsingSection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testDeleteFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testLoadByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testPoliciesCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:testUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Section\\SectionHandlerTest\:\:\$sectionHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Section\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\StorageRegistryTest\:\:testGetNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\StorageRegistryTest\:\:testGetStorage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:getPartlyMockedTreeHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testChangeMainLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testChangeMainLocationToLocationWithoutContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testListVersions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testLoadContentInfoByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testLoadLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testRemoveRawContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testRemoveSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:testSetSectionForSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$contentMapper \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$fieldHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldHandler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$locationGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\TreeHandlerTest\:\:\$locationMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 35 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Mapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 21 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 6 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:getMapperMock\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:getPartlyMockedHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testAddFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testCopy\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testCreateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testCreateVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testDeleteGroupFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testDeleteGroupSuccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testDeleteSuccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testDeleteThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testGetContentCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testGetFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLink\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadAllGroups\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadContentTypes\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadDefaultVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadGroupByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testLoadNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testPublish\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testPublishNoOldType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testRemoveContentTypeTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testRemoveFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testUnlinkFailure\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testUnlinkSuccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testUpdate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testUpdateFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:testUpdateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$mapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$storageDispatcherMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\StorageDispatcherInterface&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentTypeHandlerTest\:\:\$updateHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Core\\\\Persistence\\\\Legacy\\\\Content\\\\Type\\\\ContentUpdater\\\\Action\\\\AddField'' and Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddField will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentFixture\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getContentStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldValueConverterMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getMockedAction\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testApplyMultipleVersionsMultipleTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testApplyMultipleVersionsSingleTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testApplySingleVersionMultipleTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testApplySingleVersionSingleTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testConstructor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testInsertExistingField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testInsertExistingFieldUpdating\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testInsertNewField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:testInsertNewFieldUpdating\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Parameter \#1 \$id of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldReference\(\) expects int, null given\.$#' - identifier: argument.type - count: 6 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Parameter \#1 \$id of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:getFieldReference\(\) expects int, string given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Field\:\:\$id \(int\) does not accept null\.$#' - identifier: assign.propertyType - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\AddFieldTest\:\:\$fieldValueConverterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\Converter\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentFixture\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentMapperMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:getContentStorageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:testApplyMultipleVersionsMultipleTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:testApplyMultipleVersionsSingleTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:testApplySingleVersionSingleTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveFieldTest\:\:\$removeFieldAction \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\\Action\\RemoveField\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:testApplyUpdates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:testDetermineActions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentGatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentMapperMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Mapper\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentStorageHandlerMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\StorageHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$contentUpdater \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdaterTest\:\:\$converterRegistryMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php - - - - message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\:\:countInstancesOfType\(\) invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:getTypeCreationContentClassNameExpectations\(\) should return array\\> but returns array\\|string\>\>\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:getTypeCreationExpectations\(\) should return array\\> but returns array\\>\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testCountGroupsForType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testCountInstancesOfTypeExist\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testCountInstancesOfTypeNotExist\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testCountTypesInGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteFieldDefinitionsForTypeExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteFieldDefinitionsForTypeNotExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteGroupAssignment\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteGroupAssignmentsForTypeExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteGroupAssignmentsForTypeNotExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteTypeExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testDeleteTypeNotExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertGroupAssignment\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertType\(\) has parameter \$column with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertType\(\) has parameter \$expectation with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertTypeContentClassName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertTypeContentClassName\(\) has parameter \$column with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testInsertTypeContentClassName\(\) has parameter \$expectation with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadAllGroupsData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadGroupData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadGroupDataByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadTypeData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadTypeDataByIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadTypeDataByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testLoadTypesDataForGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testPublishTypeAndFields\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateType\(\) has parameter \$expectedValue with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateType\(\) has parameter \$fieldName with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:testUpdateTypeName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\:\:\$description \(array\\) does not accept array\\.$#' - identifier: assign.propertyType - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\FieldDefinition\:\:\$defaultValue \(Ibexa\\Contracts\\Core\\Persistence\\Content\\FieldValue\) does not accept array\\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Result of method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\\DoctrineDatabase\:\:updateGroup\(\) \(void\) is used\.$#' - identifier: method.void - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\CreateStruct supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getLoadGroupFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getLoadTypeFixture\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:getMaskGeneratorMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testCreateGroupFromCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testCreateStructFromType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testExtractGroupsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testExtractTypesFromRowsSingle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testToFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testToStorageFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testTypeFromCreateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\MapperTest\:\:testTypeFromUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/MapperTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\:\:expects\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\:\:expects\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabase\:\:deleteOldType\(\) invoked with 2 parameters, 1 required\.$#' - identifier: arguments.count - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:testDeleteOldType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:testPublishNewType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:testUpdateContentObjects\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:\$contentUpdaterMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\ContentUpdater\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\Type\\Update\\Handler\\DoctrineDatabaseTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:getGateway\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabase but returns Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestArchiveUrlAliasesForDeletedTranslations\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestCleanupAfterPublishHistorize\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestCleanupAfterPublishRemovesLanguage\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestLoadPathData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:providerForTestLoadPathDataMultipleLanguages\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testArchiveUrlAliasesForDeletedTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$action with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$languageId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$parentId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishHistorize\(\) has parameter \$textMD5 with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$action with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$languageId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$parentId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testCleanupAfterPublishRemovesLanguage\(\) has parameter \$textMD5 with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testGetNextId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathData\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathData\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathDataMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathDataMultipleLanguages\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadPathDataMultipleLanguages\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlaliasData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlaliasDataMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlaliasDataNonExistent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testRemove\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testRemoveCustomAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testRemoveCustomAliasFails\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testRemoveWithId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:testReparent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/SlugConverterTest.php - - - - message: '#^Argument of an invalid type Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 4 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Persistence\\\\Content\\\\UrlAlias'' and Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:assertVirtualUrlAliasValid\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:assertVirtualUrlAliasValid\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:getHistoryAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:getPartlyMockedHandler\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForArchiveUrlAliasesForDeletedTranslations\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestLookupCustomLocationUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestLookupLocationMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestLookupLocationUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestLookupResourceUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestLookupVirtualUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestPublishUrlAliasForLocationComplex\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:providerForTestPublishUrlAliasForLocationSkipsReservedWord\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testArchiveUrlAliasesForDeletedTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasBehaviour\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasReusesHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasReusesLocationElement\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasReusesNopElement\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateCustomUrlAliasWithNonameParts\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreateGlobalUrlAliasBehaviour\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testCreatedCustomUrlAliasIsLoadable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testListGlobalURLAliases\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testListGlobalURLAliasesWithLanguageCode\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testListGlobalURLAliasesWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testListGlobalURLAliasesWithOffsetAndLimit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testListURLAliasesForLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadAutogeneratedUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadHistoryUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$destination with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadResourceUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadUrlAliasThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadVirtualUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadVirtualUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLoadVirtualUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationCopiedCopiedLocationAliasIsValid\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationCopiedCopiedSubtreeIsValid\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationCopiedHistoryNotCopied\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationCopiedSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationCopiedSubtreeHistoryNotCopied\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationDeleted\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedHistorize\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedHistorySubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedReparent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedReparentHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedReparentSubtree\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationMovedReparentSubtreeHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedMultipleLanguagesDifferentLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedMultipleLanguagesDifferentLanguagesSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedMultipleLanguagesSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedMultipleLanguagesUpdatesLocationPathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedMultipleLanguagesWithCompositeHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSameName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSameNameMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSameNameReverse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSimpleReverse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSimpleWithHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSiblingsSimpleWithHistoryReverse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSimpleWithConflict\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedSimpleWithHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedUpdatesLocationPathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedWithReusingExternalHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedWithReusingNopEntry\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$destination with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$destination with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupCustomLocationUrlAliasCaseCorrection\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationCaseCorrection\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationHistoryUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationMultipleLanguages\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$pathData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupLocationUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$destination with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$destination with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupResourceUrlAliasCaseInsensitive\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupUppercaseIri\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupVirtualUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupVirtualUrlAlias\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testLookupVirtualUrlAlias\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasCreatesUniqueAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$locationId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$pathData with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationComplex\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationDowngradesOldEntryToHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationRepublish\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusesCustomAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusesHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusingNopElement\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusingNopElementChangesCustomPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationReusingNopElementChangesCustomPathAndCreatesHistory\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSameAliasForMultipleLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSkipsReservedWord\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSkipsReservedWord\(\) has parameter \$alias with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationSkipsReservedWord\(\) has parameter \$text with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasForLocationUpdatesLocationPathIdentificationString\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasReuseAutogeneratedCleanup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasReuseHistoryCleanup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$languageHandler \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$languageMaskGenerator \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\MaskGenerator\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasHandlerTest\:\:\$locationGateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\Location\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:getExpectation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:providerForTestExtractUrlAliasFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:testExtractLanguageCodesFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:testExtractUrlAliasFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:testExtractUrlAliasFromData\(\) has parameter \$index with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:testExtractUrlAliasListFromData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlAlias\\UrlAliasMapperTest\:\:\$fixture has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testDeleteUrlWildcard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testInsertUrlWildcard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlWildcardData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlWildcardsData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlWildcardsDataWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:testLoadUrlWildcardsDataWithOffsetAndLimit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:\$fixtureData has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testLoadAllWithOffset\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testLoadAllWithOffsetAndLimit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testLoadThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:testRemove\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:\$fixtureData has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardHandlerTest\:\:\$urlWildcardHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlWildcard\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardMapperTest\:\:testCreateUrlWildcard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardMapperTest\:\:testExtractUrlWildcardFromRow\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\UrlWildcard\\UrlWildcardMapperTest\:\:testExtractUrlWildcardsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\FieldValue\\Converter\\ImageConverterTest\:\:fieldValueToXmlProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\FieldValue\\Converter\\ImageConverterTest\:\:xmlToFieldValueProvider\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/FieldValue/Converter/ImageConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:getBaseCriterionQueryBuilders\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\BaseCriterionVisitorQueryBuilderTestCase\:\:testVisitCriteriaProducesQuery\(\) has parameter \$expectedParameterValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - - - message: '#^Parameter \#1 \.\.\.\$arrays of function array_merge expects array, iterable given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - - - message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge expects array, iterable\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/Filter/BaseCriterionVisitorQueryBuilderTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\LanguageCodeQueryBuilderQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/LanguageCodeQueryBuilderQueryBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\Type\\ContentTypeGroupIdQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeGroupIdQueryBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Content\\Type\\ContentTypeQueryBuildersTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Content/Type/ContentTypeQueryBuildersTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\AncestorQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/AncestorQueryBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\LocationIdQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/LocationIdQueryBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\Location\\ParentLocationQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/Location/ParentLocationQueryBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Filter\\CriterionQueryBuilder\\LogicalOperatorQueryBuilderQueryBuilderTest\:\:getFilteringCriteriaQueryData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/Filter/CriterionQueryBuilder/LogicalOperatorQueryBuilderQueryBuilderTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Container\:\:get\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Persistence/Legacy/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testCountUserNotifications\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testCountUserPendingNotifications\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testGetNotificationById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testInsert\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\Gateway\\DoctrineDatabaseTest\:\:testUpdateNotification\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testCountNotifications\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testCountPendingNotifications\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testCreateNotification\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testDelete\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testGetNotificationById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\HandlerTest\:\:testUpdateNotification\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\MapperTest\:\:testCreateNotificationFromUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\MapperTest\:\:testExtractNotificationsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Notification\\MapperTest\:\:testExtractNotificationsFromRowsThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/Notification/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:getGatewayMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:\$gatewayMock \(Ibexa\\Core\\Persistence\\Legacy\\Setting\\Gateway\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\Setting\\SettingHandlerTest\:\:\$settingHandler \(Ibexa\\Core\\Persistence\\Legacy\\Setting\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/Setting/SettingHandlerTest.php - - - - message: '#^Generator expects value type Doctrine\\DBAL\\Connection\|PHPUnit\\Framework\\MockObject\\MockObject, array\ given\.$#' - identifier: generator.valueType - count: 1 - path: tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php - - - - message: '#^Parameter \#1 \$expected of static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/SharedGateway/GatewayFactoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertPropertiesCorrect\(\) has parameter \$properties with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertQueryResult\(\) has parameter \$expectation with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertStructsEqual\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:assertStructsEqual\(\) has parameter \$propertyNames with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:getPublicPropertyNames\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:getResultTextRepresentation\(\) has parameter \$result with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:\$db \(string\) does not accept string\|null\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TestCase\:\:\$dsn \(string\) does not accept string\|false\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/TestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:getContentTypeHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\MemoryCachingHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:getLanguageHandlerMock\(\) should return Ibexa\\Core\\Persistence\\Legacy\\Content\\Language\\CachingHandler&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:testBeginTransaction\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:testCommit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:testCommitException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:testRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:testRollbackException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$connectionMock \(Doctrine\\DBAL\\Connection&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$contentTypeHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$languageHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\TransactionHandlerTest\:\:\$transactionHandler \(Ibexa\\Core\\Persistence\\Legacy\\TransactionHandler\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/TransactionHandlerTest.php - - - - message: '#^Parameter \#1 \$url of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabase\:\:loadUrlDataByUrl\(\) expects int, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabaseTest\:\:\$fixtureData type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabaseTest\:\:\$gateway \(Ibexa\\Core\\Persistence\\Legacy\\URL\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/URL/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:getUrl\(\) has parameter \$urlAddr with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testFind\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testFindUsages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testLoadByIdWithUrlData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testLoadByIdWithoutUrlData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testLoadByUrlWithUrlData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testLoadByUrlWithoutUrlData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\HandlerTest\:\:testUpdateUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\URL\\URL\:\:\$url \(string\) does not accept Ibexa\\Contracts\\Core\\Persistence\\URL\\URL\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Persistence/Legacy/URL/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\MapperTest\:\:testCreateURLFromUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\MapperTest\:\:testExtractURLsFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/MapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:assertHandlerAcceptsCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:assertHandlerRejectsCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:testHandle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Parameter \#1 \$criterion of method Ibexa\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\:\:accept\(\) expects Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\Query\\Criterion, PHPUnit\\Framework\\MockObject\\Stub given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Parameter \#1 \$originalClassName of static method PHPUnit\\Framework\\TestCase\:\:createStub\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Unable to resolve the template type T in call to static method PHPUnit\\Framework\\TestCase\:\:createStub\(\)$#' - identifier: argument.templateType - count: 2 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\LogicalAndTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php - - - - message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\LogicalNotTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\LogicalOrTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php - - - - message: '#^Parameter \#2 \$queryBuilder of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\CriterionHandlerTestCase\:\:mockConverterForLogicalOperator\(\) expects Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\MockObject, Doctrine\\DBAL\\Query\\QueryBuilder&PHPUnit\\Framework\\MockObject\\Stub given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\MatchAllTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\MatchAllTest\:\:testHandle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\MatchNoneTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\MatchNoneTest\:\:testHandle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\PatternTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\PatternTest\:\:testHandle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\ValidityTest\:\:testAccept\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\URL\\Query\\CriterionHandler\\ValidityTest\:\:testHandle\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\User\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/User/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\Gateway\\DoctrineDatabaseTest\:\:\$databaseGateway \(Ibexa\\Core\\Persistence\\Legacy\\User\\Role\\Gateway\\DoctrineDatabase\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Persistence/Legacy/User/Role/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\LimitationConverterTest\:\:getLimitationConverter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\LimitationConverterTest\:\:testObjectStateToLegacy\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\Role\\LimitationConverterTest\:\:testObjectStateToSPI\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:createRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getDummyUser\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getGatewayReturnValue\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUserToken\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:getValidUserToken\(\) has parameter \$time with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddPolicyLimitationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddPolicyLimitations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddPolicyPolicyId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddPolicyToRoleLimitations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddRoleToUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddRoleToUserWithComplexLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testAddRoleToUserWithLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testCreateNewRoleRoleId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testCreateNewRoleWithoutPolicies\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testCreateRoleDraftWithoutPolicies\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testCreateUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeleteNonExistingUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeletePolicy\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeletePolicyLimitationValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeletePolicyLimitations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeleteRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testDeleteRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testExpireUserToken\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testImplicitlyCreatePolicies\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadComplexRoleAssignments\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadMultipleUsersByEmail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadMultipleUsersByLogin\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleAssignmentsByGroupId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleAssignmentsByGroupIdInherited\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleDraftByRoleId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleWithPolicies\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleWithPoliciesAndGroups\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoleWithPolicyLimitations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadRoles\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUnknownUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUserByEmail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUserByEmailNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUserByLogin\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUserByToken\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUserByTokenNotFound\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testLoadUsersByEmail\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testRemoveUserRoleAssociation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testRoleDraftOnlyHavePolicyDraft\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testUpdatePolicies\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testUpdateRole\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testUpdateUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testUpdateUserSettings\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:testUpdateUserToken\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Parameter \#1 \$handler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\User\\UserHandlerTest\:\:createTestRole\(\) expects Ibexa\\Core\\Persistence\\Legacy\\User\\Handler, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' - identifier: argument.type - count: 5 - path: tests/lib/Persistence/Legacy/User/UserHandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:loadUserPreference\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:loadUserPreference\(\) should return array but returns array\\|false\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:testCountUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:testInsert\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:testLoadUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\Gateway\\DoctrineDatabaseTest\:\:testUpdateUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\HandlerTest\:\:testCountUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\HandlerTest\:\:testLoadUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\HandlerTest\:\:testSetUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Legacy\\UserPreference\\MapperTest\:\:testExtractUserPreferencesFromRows\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/Legacy/UserPreference/MapperTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Limitation\\\\Target\\\\Builder\\\\VersionBuilder'' and Ibexa\\Contracts\\Core\\Limitation\\Target\\Builder\\VersionBuilder will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\Limitation\\Target\\Builder\\VersionBuilderTest\:\:providerForTestBuild\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/Limitation/Target/Builder/VersionBuilderTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:getProcessor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:testAllNormalizations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:testApplyAllLowercaseNormalizations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:testSimpleNormalizationLowercase\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorDefinitionBasedTest\:\:testSimpleNormalizationUppercase\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php - - - - message: '#^Class Ibexa\\Core\\Persistence\\TransformationProcessor\\DefinitionBased\\Parser constructor invoked with 1 parameter, 0 required\.$#' - identifier: arguments.count - count: 10 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:applyTransformations\(\) has parameter \$transformations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:applyTransformations\(\) should return string but returns string\|null\.$#' - identifier: return.type - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileMap\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileMapAscii\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileMapKeep\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileMapRemove\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileMapUnicode\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileModuloTranspose\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileReplace\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileTranspose\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileTransposeAsciiLowercase\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPcreCompilerTest\:\:testCompileTransposePlus\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Parameter \#3 \$subject of function preg_replace_callback expects array\\|string, string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPreprocessedBasedTest\:\:getProcessor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPreprocessedBasedTest\:\:testAllNormalizations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPreprocessedBasedTest\:\:testSimpleNormalizationLowercase\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Persistence\\TransformationProcessor\\TransformationProcessorPreprocessedBasedTest\:\:testSimpleNormalizationUppercase\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AbstractQueryTypeTestCase\:\:testGetQuery\(\) has parameter \$parameters with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/AbstractQueryTypeTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AncestorsQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\AncestorsQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/AncestorsQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\ChildrenQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\ChildrenQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/ChildrenQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\GeoLocationQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\GeoLocationQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/GeoLocationQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\RelatedToContentQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\RelatedToContentQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/RelatedToContentQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SiblingsQueryTypeTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SiblingsQueryTypeTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SiblingsQueryTypeTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerStub\:\:__construct\(\) has parameter \$tokens with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerStub.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerTest\:\:dataProviderForTokenize\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecLexerTest\:\:testTokenize\(\) has parameter \$expectedTokens with no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecLexerTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecParserTest\:\:dataProviderForParseSortDirection\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SortSpec\\SortSpecParserTest\:\:testParseSortDirection\(\) has parameter \$input with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SortSpec/SortSpecParserTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SubtreeQueryTest\:\:dataProviderForGetQuery\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\QueryType\\BuiltIn\\SubtreeQueryTest\:\:getExpectedSupportedParameters\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/QueryType/BuiltIn/SubtreeQueryTest.php - - - - message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Strategy\\ContentThumbnail\\Field\\FieldTypeBasedThumbnailStrategy@anonymous/tests/lib/Repository/ContentThumbnail/ContentFieldStrategyTest\.php\:24\:\:getThumbnail\(\) never returns null so it can be removed from the return type\.$#' - identifier: return.unusedType - count: 1 - path: tests/lib/Repository/ContentThumbnail/ContentFieldStrategyTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\ContentThumbnail\\StaticStrategyTest\:\:testStaticStrategy\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php - - - - message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:__construct\(\) has parameter \$validationReturn with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - - - message: '#^Method Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:validate\(\) has parameter \$context with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\ContentValidator\\ContentValidatorStrategyTest\:\:buildContentValidator\(\) has parameter \$validationReturn with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Validator\\ContentValidator@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\.php\:88\:\:\$validationReturn type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\BookmarkServiceDecoratorTest\:\:testCreateBookmarkDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\BookmarkServiceDecoratorTest\:\:testDeleteBookmarkDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\BookmarkServiceDecoratorTest\:\:testIsBookmarkedDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\BookmarkServiceDecoratorTest\:\:testLoadBookmarksDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\BookmarkServiceDecorator@anonymous/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\BookmarkService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testAddRelationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testCopyContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testCreateContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testCreateContentDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testDeleteContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testDeleteRelationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testDeleteTranslationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testDeleteTranslationFromDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testDeleteVersionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testHideContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentByContentInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentByRemoteIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentByVersionInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentInfoByRemoteIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentInfoListDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadContentListByContentInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadReverseRelationsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadVersionInfoByIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadVersionInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testLoadVersionsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testNewContentCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testNewContentMetadataUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testNewContentUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testPublishVersionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testRevealContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testUpdateContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentServiceDecoratorTest\:\:testUpdateContentMetadataDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Parameter \#2 \$locationCreateStructs of method Ibexa\\Contracts\\Core\\Repository\\ContentService\:\:createContent\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testAddFieldDefinitionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testAssignContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testCopyContentTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testCreateContentTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testCreateContentTypeDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testCreateContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testDeleteContentTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testDeleteContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testIsContentTypeUsedDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeByIdentifierDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeByRemoteIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeGroupByIdentifierDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeGroupsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypeListDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testLoadContentTypesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewContentTypeCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewContentTypeGroupCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewContentTypeGroupUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewContentTypeUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewFieldDefinitionCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testNewFieldDefinitionUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testPublishContentTypeDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testRemoveContentTypeTranslationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testRemoveFieldDefinitionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testUnassignContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testUpdateContentTypeDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testUpdateContentTypeGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ContentTypeServiceDecoratorTest\:\:testUpdateFieldDefinitionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$contentTypeIds of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:loadContentTypeList\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\ContentTypeServiceDecorator@anonymous/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest\.php\:31 constructor expects Ibexa\\Contracts\\Core\\Repository\\ContentTypeService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Parameter \#2 \$contentTypeGroups of method Ibexa\\Contracts\\Core\\Repository\\ContentTypeService\:\:createContentType\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\FieldTypeServiceDecoratorTest\:\:testGetFieldTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\FieldTypeServiceDecoratorTest\:\:testGetFieldTypesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\FieldTypeServiceDecoratorTest\:\:testHasFieldTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\FieldTypeServiceDecorator@anonymous/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest\.php\:20 constructor expects Ibexa\\Contracts\\Core\\Repository\\FieldTypeService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testCreateLanguageDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testDeleteLanguageDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testDisableLanguageDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testEnableLanguageDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testGetDefaultLanguageCodeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testLoadLanguageByIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testLoadLanguageDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testLoadLanguageListByCodeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testLoadLanguageListByIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testLoadLanguagesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testNewLanguageCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LanguageServiceDecoratorTest\:\:testUpdateLanguageNameDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\LanguageServiceDecorator@anonymous/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest\.php\:22 constructor expects Ibexa\\Contracts\\Core\\Repository\\LanguageService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$languageIds of method Ibexa\\Contracts\\Core\\Repository\\LanguageService\:\:loadLanguageListById\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testCopySubtreeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testCreateLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testDeleteLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testGetAllLocationsCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testGetLocationChildCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testHideLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadAllLocationsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadLocationByRemoteIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadLocationChildrenDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadLocationListDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadLocationsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testLoadParentLocationsForDraftContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testMoveSubtreeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testNewLocationCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testNewLocationUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testSwapLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testUnhideLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\LocationServiceDecoratorTest\:\:testUpdateLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\LocationServiceDecorator@anonymous/tests/lib/Repository/Decorator/LocationServiceDecoratorTest\.php\:29 constructor expects Ibexa\\Contracts\\Core\\Repository\\LocationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testCreateNotificationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testDeleteNotificationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testGetNotificationCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testGetNotificationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testGetPendingNotificationCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\NotificationServiceDecoratorTest\:\:testMarkNotificationAsReadDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\NotificationServiceDecorator@anonymous/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\NotificationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testCreateObjectStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testCreateObjectStateGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testDeleteObjectStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testDeleteObjectStateGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testGetContentCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testGetContentStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testLoadObjectStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testLoadObjectStateGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testLoadObjectStateGroupsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testLoadObjectStatesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testNewObjectStateCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testNewObjectStateGroupCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testNewObjectStateGroupUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testNewObjectStateUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testSetContentStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testSetPriorityOfObjectStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testUpdateObjectStateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\ObjectStateServiceDecoratorTest\:\:testUpdateObjectStateGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\ObjectStateServiceDecorator@anonymous/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest\.php\:27 constructor expects Ibexa\\Contracts\\Core\\Repository\\ObjectStateService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testAddPolicyByRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testAssignRoleToUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testAssignRoleToUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testCreateRoleDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testCreateRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testDeleteRoleDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testDeleteRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testGetLimitationTypeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testGetLimitationTypesByModuleFunctionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testGetRoleAssignmentsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testGetRoleAssignmentsForUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testGetRoleAssignmentsForUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRoleAssignmentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRoleByIdentifierDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRoleDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRoleDraftByRoleIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testLoadRolesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testNewPolicyCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testNewPolicyUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testNewRoleCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testNewRoleUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testPublishRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testRemovePolicyByRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testRemoveRoleAssignmentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testUpdatePolicyByRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\RoleServiceDecoratorTest\:\:testUpdateRoleDraftDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\RoleServiceDecorator@anonymous/tests/lib/Repository/Decorator/RoleServiceDecoratorTest\.php\:34 constructor expects Ibexa\\Contracts\\Core\\Repository\\RoleService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:getSearchEngineCapabilities\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:testFindContentDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:testFindContentInfoDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:testFindLocationsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:testFindSingleDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SearchServiceDecoratorTest\:\:testSuggestDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SearchServiceDecorator@anonymous/tests/lib/Repository/Decorator/SearchServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\SearchService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testAssignSectionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testAssignSectionToSubtreeDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testCountAssignedContentsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testCreateSectionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testDeleteSectionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testIsSectionUsedDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testLoadSectionByIdentifierDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testLoadSectionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testLoadSectionsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testNewSectionCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testNewSectionUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SectionServiceDecoratorTest\:\:testUpdateSectionDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SectionServiceDecorator@anonymous/tests/lib/Repository/Decorator/SectionServiceDecoratorTest\.php\:27 constructor expects Ibexa\\Contracts\\Core\\Repository\\SectionService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testCreateSettingDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testDeleteSettingDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testLoadSettingDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testNewSettingCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testNewSettingUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\SettingServiceDecoratorTest\:\:testUpdateSettingDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\SettingServiceDecorator@anonymous/tests/lib/Repository/Decorator/SettingServiceDecoratorTest\.php\:26 constructor expects Ibexa\\Contracts\\Core\\Repository\\SettingService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TranslationServiceDecoratorTest\:\:testTranslateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TranslationServiceDecoratorTest\:\:testTranslateStringDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\TranslationServiceDecorator@anonymous/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\TranslationService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testDeleteTrashItemDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testEmptyTrashDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testFindTrashItemsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testLoadTrashItemDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testRecoverDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\TrashServiceDecoratorTest\:\:testTrashDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\TrashServiceDecorator@anonymous/tests/lib/Repository/Decorator/TrashServiceDecoratorTest\.php\:23 constructor expects Ibexa\\Contracts\\Core\\Repository\\TrashService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testCreateGlobalUrlAliasDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testCreateUrlAliasDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testDeleteCorruptedUrlAliasesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testListGlobalAliasesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testListLocationAliasesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testLoadDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testLookupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testRefreshSystemUrlAliasesForLocationDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testRemoveAliasesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLAliasServiceDecoratorTest\:\:testReverseLookupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$aliasList of method Ibexa\\Contracts\\Core\\Repository\\URLAliasService\:\:removeAliases\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLAliasServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest\.php\:24 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLAliasService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testCreateUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testFindUrlsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testFindUsagesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testLoadByIdDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testLoadByUrlDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLServiceDecoratorTest\:\:testUpdateUrlDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLServiceDecoratorTest\.php\:23 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/URLServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLWildcardServiceDecoratorTest\:\:testCreateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLWildcardServiceDecoratorTest\:\:testLoadAllDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLWildcardServiceDecoratorTest\:\:testLoadDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLWildcardServiceDecoratorTest\:\:testRemoveDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\URLWildcardServiceDecoratorTest\:\:testTranslateDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\URLWildcardServiceDecorator@anonymous/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest\.php\:21 constructor expects Ibexa\\Contracts\\Core\\Repository\\URLWildcardService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserPreferenceServiceDecoratorTest\:\:testGetUserPreferenceCountDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserPreferenceServiceDecoratorTest\:\:testGetUserPreferenceDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserPreferenceServiceDecoratorTest\:\:testLoadUserPreferencesDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserPreferenceServiceDecoratorTest\:\:testSetUserPreferenceDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\UserPreferenceServiceDecorator@anonymous/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest\.php\:20 constructor expects Ibexa\\Contracts\\Core\\Repository\\UserPreferenceService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$userPreferenceSetStructs of method Ibexa\\Contracts\\Core\\Repository\\UserPreferenceService\:\:setUserPreference\(\) expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testAssignUserToUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testCheckUserCredentialsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testCreateUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testCreateUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testDeleteUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testDeleteUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testExpireUserTokenDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testIsUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testIsUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadSubUserGroupsDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUserByLoginDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUserByTokenDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUserGroupsOfUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUsersByEmailDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testLoadUsersOfUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testMoveUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testNewUserCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testNewUserGroupCreateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testNewUserGroupUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testNewUserUpdateStructDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testUnAssignUserFromUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testUpdateUserDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testUpdateUserGroupDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testUpdateUserTokenDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Decorator\\UserServiceDecoratorTest\:\:testValidatePasswordDecorator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Parameter \#1 \$innerService of class Ibexa\\Contracts\\Core\\Repository\\Decorator\\UserServiceDecorator@anonymous/tests/lib/Repository/Decorator/UserServiceDecoratorTest\.php\:37 constructor expects Ibexa\\Contracts\\Core\\Repository\\UserService, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Decorator/UserServiceDecoratorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Filtering\\TestContentProvider\:\:createContentDraft\(\) has parameter \$multilingualFields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Filtering/TestContentProvider.php - - - - message: '#^Parameter \#2 \$mainLanguageCode of method Ibexa\\Contracts\\Core\\Repository\\ContentService\:\:newContentCreateStruct\(\) expects string, int\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Filtering/TestContentProvider.php - - - - message: '#^Parameter \#2 \$parentLocationId of method Ibexa\\Tests\\Core\\Repository\\Filtering\\TestContentProvider\:\:createArticle\(\) expects int, int\|null given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Repository/Filtering/TestContentProvider.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\FieldType\\\\FieldType'' and Ibexa\\Contracts\\Core\\FieldType\\FieldType will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:getFieldTypeMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:testConstructor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:testGetFieldType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:testGetFieldTypeThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:testGetFieldTypeThrowsRuntimeExceptionIncorrectType\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Helper\\FieldTypeRegistryTest\:\:testGetFieldTypes\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Parameter \#1 \$fieldTypes of class Ibexa\\Core\\FieldType\\FieldTypeRegistry constructor expects array\, array\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Helper/FieldTypeRegistryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Iterator\\BatchIteratorTestAdapter\:\:__construct\(\) has parameter \$data with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Iterator/BatchIteratorTestAdapter.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Iterator\\BatchIteratorTestAdapter\:\:\$data type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Iterator/BatchIteratorTestAdapter.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:method\(\)\.$#' - identifier: method.notFound - count: 7 - path: tests/lib/Repository/LocationResolver/PermissionAwareLocationResolverTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:method\(\)\.$#' - identifier: method.notFound - count: 5 - path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - - - message: '#^Call to an undefined method Ibexa\\Core\\Repository\\Mapper\\ContentLocationMapper\\ContentLocationMapper\:\:expects\(\)\.$#' - identifier: method.notFound - count: 5 - path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - - - message: '#^Cannot access property \$locations on iterable\\.$#' - identifier: property.nonObject - count: 2 - path: tests/lib/Repository/Mapper/ContentLocationMapper/DecoratedLocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:compareArrays\(\) has parameter \$actual with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:compareArrays\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:evaluate\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\PHPUnitConstraint\\ContentItemEquals\:\:failureDescription\(\) has parameter \$content with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/PHPUnitConstraint/ContentItemEquals.php - - - - message: '#^Class Ibexa\\Tests\\Core\\Repository\\Parallel\\ParallelProcessList implements generic interface IteratorAggregate but does not specify its types\: TKey, TValue$#' - identifier: missingType.generics - count: 1 - path: tests/lib/Repository/Parallel/ParallelProcessList.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionCriterionResolverMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionCriterionResolverMock\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:providerForTestPermissionResolverPassTrough\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testGetPermissionsCriterionCaching\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testGetPermissionsCriterionPassTrough\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$expectedReturn with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:testPermissionResolverPassTrough\(\) has parameter \$method with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:\$permissionCriterionResolverMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\CachedPermissionServiceTest\:\:\$permissionResolverMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Permission/CachedPermissionServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getLimitationServiceMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getLimitationServiceMock\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getPermissionResolverMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$criterionMock with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$limitationCount with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:mockServices\(\) has parameter \$permissionSets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:providerForTestGetPermissionsCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:providerForTestGetPermissionsCriterionBooleanPermissionSets\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$criterionMock with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$expectedCriterion with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$limitationCount with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterion\(\) has parameter \$permissionSets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterionBooleanPermissionSets\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:testGetPermissionsCriterionBooleanPermissionSets\(\) has parameter \$permissionSets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:\$limitationServiceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Permission\\PermissionCriterionResolverTest\:\:\$permissionResolverMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Permission/PermissionCriterionResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getEventDispatcher\(\) should return PHPUnit\\Framework\\MockObject\\MockObject&Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface but returns Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getRelationProcessorMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:getRepository\(\) has parameter \$serviceSettings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Parameter \#1 \$className of method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\) expects class\-string\, string given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Parameter \#2 \$searchHandler of class Ibexa\\Core\\Repository\\Repository constructor expects Ibexa\\Contracts\\Core\\Search\\Handler, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$contentDomainMapperMock \(Ibexa\\Core\\Repository\\Mapper\\ContentDomainMapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$contentTypeDomainMapperMock \(Ibexa\\Core\\Repository\\Mapper\\ContentTypeDomainMapper&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$fieldTypeRegistryMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$fieldTypeServiceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$permissionServiceMock \(Ibexa\\Contracts\\Core\\Repository\\PermissionService&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$persistenceMock \(Ibexa\\Contracts\\Core\\Persistence\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$repositoryMock \(Ibexa\\Contracts\\Core\\Repository\\Repository&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\Base\:\:\$thumbnailStrategyMock \(Ibexa\\Contracts\\Core\\Repository\\Strategy\\ContentThumbnail\\ThumbnailStrategy&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\)$#' - identifier: argument.templateType - count: 1 - path: tests/lib/Repository/Service/Mock/Base.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:createBookmarkService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testCreateBookmark\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testCreateBookmarkThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testCreateBookmarkWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testDeleteBookmarkExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testDeleteBookmarkNonExisting\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testDeleteBookmarkWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testLoadBookmarks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testLocationShouldBeBookmarked\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:testLocationShouldNotBeBookmarked\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\BookmarkTest\:\:\$bookmarkHandler \(Ibexa\\Contracts\\Core\\Persistence\\Bookmark\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/BookmarkTest.php - - - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) with ''Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Location'' and Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getContentHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getLanguageHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:getTypeHandlerMock\(\) should return Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject but returns PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:providerForBuildLocationDomainObjectsOnSearchResult\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:providerForBuildVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$contentInfoList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$languageFilter with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationDomainObjectsOnSearchResult\(\) has parameter \$locationHits with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationWithContentForRootLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationWithContentIsAlignedWithBuildLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildLocationWithContentThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentDomainMapperTest\:\:testBuildVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Parameter \#2 \$locationHandler of class Ibexa\\Core\\Repository\\Mapper\\ContentDomainMapper constructor expects Ibexa\\Contracts\\Core\\Persistence\\Content\\Location\\Handler, PHPUnit\\Framework\\MockObject\\MockObject given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php - - - - message: '#^Access to an undefined property Ibexa\\Contracts\\Core\\FieldType\\Value\:\:\$value\.$#' - identifier: property.notFound - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForCreateContentContentValidationException\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestCreateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$existingFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$fieldDefinitions with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$allFieldErrors with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$existingFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForTestUpdateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$fieldDefinitions with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:assertForUpdateContentContentValidationException\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForCreate\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForCreate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForUpdate\(\) has parameter \$languageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:determineValuesForUpdate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:fixturesForTestCreateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:fixturesForTestUpdateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:getPartlyMockedContentService\(\) should return Ibexa\\Core\\Repository\\ContentService&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Repository\\ContentService\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:internalLoadContentProviderById\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:internalLoadContentProviderByRemoteId\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mapStructFieldsForCreate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mapStructFieldsForUpdate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockBuildContentDomainObject\(\) has parameter \$translations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockGetDefaultObjectStates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockPublishUrlAliasesForContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:mockSetDefaultObjectStates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$existingFields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$existingLanguageCodes with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:prepareContentForTestCreateAndUpdateContent\(\) has parameter \$fieldDefinitions with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$fieldDefinitions with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) has parameter \$structFields with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:provideCommonCreateContentObjects\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentNonRedundantFieldSet1\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentNonRedundantFieldSet2\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentThrowsContentFieldValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentThrowsContentValidationExceptionRequiredField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentThrowsContentValidationExceptionTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestCreateContentWithInvalidLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSet1\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSet2\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSet3\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSet4\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentNonRedundantFieldSetComplex\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentRequiredField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentThrowsContentFieldValidationException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentThrowsContentValidationExceptionTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:providerForTestUpdateContentWithInvalidLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:stubValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:stubValues\(\) has parameter \$fieldValues with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCopyContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCopyContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCopyContentWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCopyContentWithVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet1\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSet2\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentNonRedundantFieldSetComplex\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentObjectStates\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$identifier with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentFieldValidationException\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithInvalidLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithInvalidLanguage\(\) has parameter \$mainLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithInvalidLanguage\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithLocationsDuplicateUnderParent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testCreateContentWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testDeleteContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testDeleteContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testDeleteContentWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testDeleteVersionThrowsBadStateExceptionLastVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testInternalLoadContentById\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testInternalLoadContentByRemoteId\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testInternalLoadContentByRemoteId\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContent\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContentByContentInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContentByVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContentNonPublished\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContentNotPublishedStatusUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadContentUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfo\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoByIdAndVersionNumber\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoByIdNonPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoByIdPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoByIdThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet1\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet2\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet3\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSet4\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$spiFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentNonRedundantFieldSetComplex\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$identifier with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentRequiredField\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsBadStateException\(\) has parameter \$status with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$allFieldErrors with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$spiField with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentFieldValidationException\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionFieldDefinition\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsContentValidationExceptionTranslation\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentTransactionRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentWithInvalidLanguage\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentWithInvalidLanguage\(\) has parameter \$initialLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:testUpdateContentWithInvalidLanguage\(\) has parameter \$structFields with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Parameter \#1 \$languageHandlerMock of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:loadByLanguageCodeMock\(\) expects PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\Content\\Language\\Handler given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:addMethods\(\) expects list\, non\-empty\-list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, non\-empty\-list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Parameter \#1 \$singular of class Ibexa\\Core\\FieldType\\ValidationError constructor expects string, int given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Persistence\\Content\\MetadataUpdateStruct\:\:\$publicationDate \(int\) does not accept int\|null\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$contentTypeServiceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$locationServiceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$partlyMockedContentService \(Ibexa\\Core\\Repository\\ContentService\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\ContentTest\:\:\$relationProcessorMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/ContentTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\User\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 6 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\PermissionResolver&PHPUnit\\Framework\\MockObject\\MockObject\:\:sudo\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:createRole\(\) has parameter \$policiesData with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getPermissionResolverMock\(\) has parameter \$methods with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getPermissionSetsMock\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:getUserReferenceMock\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestCanUserComplex\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestCanUserSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsFalse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsInvalidArgumentValueException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsLimitationNotFoundException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsPermissionSets\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:providerForTestHasAccessReturnsTrue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$policyLimitationEvaluations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$roleLimitationEvaluations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserComplex\(\) has parameter \$userCan with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserSimple\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserSimple\(\) has parameter \$permissionSets with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserSimple\(\) has parameter \$result with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testCanUserWithoutLimitations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testGetCurrentUserReferenceReturnsAnonymousUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalse\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalse\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalse\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsFalseButSudoSoTrue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsInvalidArgumentValueException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsInvalidArgumentValueException\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsInvalidArgumentValueException\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsLimitationNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsLimitationNotFoundException\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsLimitationNotFoundException\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSets\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSets\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSets\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsPermissionSetsWithRoleLimitation\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsTrue\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsTrue\(\) has parameter \$roleAssignments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testHasAccessReturnsTrue\(\) has parameter \$roles with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:testSetAndGetCurrentUserReference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$limitationsPass\)\: Unexpected token "\$limitationsPass", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$policy \\Ibexa\\Contracts\\Core\\Persistence\\User\\Policy\)\: Unexpected token "\$policy", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$policy \\Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\)\: Unexpected token "\$policy", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$role \\Ibexa\\Contracts\\Core\\Persistence\\User\\Role\)\: Unexpected token "\$role", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$roleAssignments \\Ibexa\\Contracts\\Core\\Persistence\\User\\RoleAssignment\[\]\)\: Unexpected token "\$roleAssignments", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$userHandlerMock \\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\$userHandlerMock", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 6 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^PHPDoc tag @var has invalid value \(\$valueObject \\Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\)\: Unexpected token "\$valueObject", expected type at offset 9 on line 1$#' - identifier: phpDoc.parseError - count: 3 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Parameter \#1 \$userHandlerMock of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:mockLoadRoleSequence\(\) expects PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' - identifier: argument.type - count: 5 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$permissionResolverMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$repositoryMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$userReferenceMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Variable \$limitationsPass might not be defined\.$#' - identifier: variable.undefined - count: 1 - path: tests/lib/Repository/Service/Mock/PermissionTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\Content\\Location\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 3 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$expectedLocationIds with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$fieldRelations with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$type with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$contentId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$fieldDefinitionId with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$type with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:providerForTestAppendRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelations\(\) has parameter \$expected with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelations\(\) has parameter \$fieldRelations with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelationsLocationMappingWorks\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelationsLogsMissingLocations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testProcessFieldRelationsAddsRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testProcessFieldRelationsNoChanges\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testProcessFieldRelationsRemovesRelations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testProcessFieldRelationsWhenRelationFieldNoLongerExists\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Parameter \#5 \$fieldDefinitionId of method Ibexa\\Core\\Repository\\Helper\\RelationProcessor\:\:appendFieldRelations\(\) expects string, int given\.$#' - identifier: argument.type - count: 3 - path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RepositoryTest\:\:testBeginTransaction\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RepositoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RepositoryTest\:\:testCommit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RepositoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RepositoryTest\:\:testCommitThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RepositoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RepositoryTest\:\:testRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RepositoryTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RepositoryTest\:\:testRollbackThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RepositoryTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:getPartlyMockedRoleService\(\) has parameter \$settings with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:getPartlyMockedRoleService\(\) should return Ibexa\\Core\\Repository\\RoleService&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Repository\\RoleService\.$#' - identifier: return.type - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAddPolicyThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleGroupToUserThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUser\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserGroup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserGroupThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserGroupThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserGroupWithNullLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserGroupWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserThrowsBadStateException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserWithNullLimitation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testAssignRoleToUserWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testCreateRoleThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testRemovePolicyByRoleDraft\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testRemovePolicyByRoleDraftThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testRemovePolicyByRoleDraftWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:testUpdatePolicyThrowsLimitationValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' - identifier: varTag.nativeType - count: 6 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: varTag.nativeType - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' - identifier: varTag.nativeType - count: 3 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroup is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' - identifier: varTag.nativeType - count: 3 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:\$partlyMockedRoleService \(Ibexa\\Core\\Repository\\RoleService\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Service/Mock/RoleTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Search\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 7 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:providerForFindContentValidatesLocationCriteriaAndSortClauses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:providerForFindSingleValidatesLocationCriteria\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testConstructor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentNoPermissionsFilter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentThrowsHandlerException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentValidatesLocationCriteriaAndSortClauses\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentValidatesLocationCriteriaAndSortClauses\(\) has parameter \$exceptionMessage with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentValidatesLocationCriteriaAndSortClauses\(\) has parameter \$query with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentWhenDomainMapperThrowsException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentWithDefaultQueryValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentWithNoPermission\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentWithPermission\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindLocationsBackgroundIndexerWhenDomainMapperThrowsException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindLocationsThrowsHandlerException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindLocationsWithDefaultQueryValues\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindLocationsWithNoPermissionsFilter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindLocationsWithPermission\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleThrowsHandlerException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleValidatesLocationCriteria\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleValidatesLocationCriteria\(\) has parameter \$criterion with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleValidatesLocationCriteria\(\) has parameter \$exceptionMessage with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: varTag.nativeType - count: 5 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\\:\:\$searchHits \(list\\>\) does not accept array\, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchHit\\>\.$#' - identifier: assign.propertyType - count: 2 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\\:\:\$totalCount \(int\<0, max\>\|null\) does not accept int\<\-1, max\>\.$#' - identifier: assign.propertyType - count: 2 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$contentDomainMapperMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$permissionsCriterionResolverMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$repositoryMock has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/lib/Repository/Service/Mock/SearchTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:getPartlyMockedURLAliasServiceService\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:getSpiUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestLookup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestLookupThrowsNotFoundExceptionPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestLookupWithSharedTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestReverseLookup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:providerForTestReverseLookupAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:setConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:setConfiguration\(\) has parameter \$configuration with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testConstructor\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAliasForLocation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionResource\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAliasThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateGlobalUrlAliasWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateUrlAlias\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateUrlAliasThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateUrlAliasThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testCreateUrlAliasWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmptyCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListGlobalAliases\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListGlobalAliasesEmpty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListGlobalAliasesWithParameters\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListLocationAliasesWithShowAllTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListLocationAliasesWithShowAllTranslationsCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLoadThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLoadThrowsNotFoundExceptionPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$showAllTranslations with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$alwaysAvailable with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$languageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$showAllTranslations with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testRemoveAliases\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testRemoveAliasesThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testRemoveAliasesThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testRemoveAliasesWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupCustomConfiguration\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$paths with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$reverseLookupLanguageCode with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupWithShowAllTranslations\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' - identifier: argument.type - count: 12 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:\$urlAliasHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - - - message: '#^Cannot call method getTimestamp\(\) on DateTimeInterface\|null\.$#' - identifier: method.nonObject - count: 2 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configurePermissions\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configurePermissions\(\) has parameter \$permissions with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has parameter \$hasAccess with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has parameter \$object with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has parameter \$hasAccess with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has parameter \$object with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermissionForHasAccess\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermissionForHasAccess\(\) has parameter \$hasAccess with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:createUrlService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:dateProviderForFindUsages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has parameter \$id with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testCreateUpdateStruct\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUrls\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUrlsNonNumericLimit\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUrlsNonNumericOffset\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUrlsUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$limit with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$offset with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$usages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testLoadById\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testLoadByIdUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testLoadByUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testLoadByUrlUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testUpdateUrl\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testUpdateUrlNonUnique\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testUpdateUrlStatus\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testUpdateUrlUnauthorized\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$limit \(int\) does not accept string\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$offset \(int\) does not accept string\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:\$urlHandler \(Ibexa\\Contracts\\Core\\Repository\\URLService&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UrlTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestCreateThrowsContentValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestTranslate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestTranslateThrowsNotFoundException\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$destinationUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$sourceUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$destinationUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$forward with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$sourceUrl with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testLoad\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testLoadAll\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testLoadAllWithLimitAndOffset\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testLoadThrowsException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testRemove\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testRemoveThrowsUnauthorizedException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testRemoveWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$createArray with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$uri with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateThrowsNotFoundException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateThrowsNotFoundException\(\) has parameter \$createArray with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateThrowsNotFoundException\(\) has parameter \$url with no type specified\.$#' - identifier: missingType.parameter - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateUsesLongestMatchingWildcard\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:\$urlWildcardHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlWildcard\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:dateProviderForValidate\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:testValidate\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:testValidate\(\) has parameter \$constraints with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:testValidate\(\) has parameter \$expectedErrors with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:createAPIUserPreferenceService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testGetUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testGetUserPreferenceCount\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testLoadUserPreferences\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testSetUserPreference\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testSetUserPreferenceThrowsInvalidArgumentException\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:testSetUserPreferenceWithRollback\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:\$userSPIPreferenceHandler \(Ibexa\\Contracts\\Core\\Persistence\\UserPreference\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - - - message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\User\\Handler\:\:expects\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Repository/Service/Mock/UserTest.php - - - - message: '#^Parameter \#1 \$array of function array_values expects array\, array\\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Repository/Service/Mock/UserTest.php - - - - message: '#^Parameter \#6 \$userHandler of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserTest\:\:mockDeleteUserFlow\(\) expects Ibexa\\Contracts\\Core\\Persistence\\User\\Handler&PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' - identifier: argument.type - count: 2 - path: tests/lib/Repository/Service/Mock/UserTest.php - - - - message: '#^Call to an undefined method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:addWarning\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Call to method expects\(\) on an unknown class object\.$#' - identifier: class.notFound - count: 4 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:getAPIServiceClassName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:getSiteAccessAwareServiceClassName\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:testForLanguagesLookup\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:testForLanguagesPassTrough\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:testForPassTrough\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:testForPassTrough\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' - identifier: argument.named - count: 4 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:\$innerApiServiceMock \(object&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:\$innerApiServiceMock has unknown class object as its type\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\)$#' - identifier: argument.templateType - count: 1 - path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ContentServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentTypeServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentTypeServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:getDataForTestGetPrioritizedLanguages\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$configLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$expectedPrioritizedLanguagesList with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$forcedLanguages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LanguageServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LanguageServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php - - - - message: '#^Yield can be used only with these return types\: Generator, Iterator, Traversable, iterable\.$#' - identifier: generator.returnType - count: 1 - path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LocationServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LocationServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/LocationServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ObjectStateServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ObjectStateServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @var has invalid value \(\$limitationsPass\)\: Unexpected token "\$limitationsPass", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @var has invalid value \(\$policy \\Ibexa\\Contracts\\Core\\Persistence\\User\\Policy\)\: Unexpected token "\$policy", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @var has invalid value \(\$policy \\Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Policy\)\: Unexpected token "\$policy", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @var has invalid value \(\$role \\Ibexa\\Contracts\\Core\\Persistence\\User\\Role\)\: Unexpected token "\$role", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^PHPDoc tag @var has invalid value \(\$roleAssignments \\Ibexa\\Contracts\\Core\\Persistence\\User\\RoleAssignment\[\]\)\: Unexpected token "\$roleAssignments", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError count: 1 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Undefined variable\: \$this$#' - identifier: variable.undefined - count: 2 - path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php + message: '#^PHPDoc tag @var has invalid value \(\$userHandlerMock \\PHPUnit\\Framework\\MockObject\\MockObject\)\: Unexpected token "\$userHandlerMock", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError + count: 6 + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\TrashServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php + message: '#^PHPDoc tag @var has invalid value \(\$valueObject \\Ibexa\\Contracts\\Core\\Repository\\Values\\ValueObject\)\: Unexpected token "\$valueObject", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError + count: 3 + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\TrashServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php + message: '#^Parameter \#1 \$userHandlerMock of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:mockLoadRoleSequence\(\) expects PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' + identifier: argument.type + count: 5 + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Yield can be used only with these return types\: Generator, Iterator, Traversable, iterable\.$#' - identifier: generator.returnType + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$permissionResolverMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$repositoryMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\PermissionTest\:\:\$userReferenceMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Variable \$limitationsPass might not be defined\.$#' + identifier: variable.undefined count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/PermissionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\Content\\Location\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 3 + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$expectedLocationIds with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$fieldRelations with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:assertLocationHandlerExpectation\(\) has parameter \$type with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Undefined variable\: \$this$#' - identifier: variable.undefined - count: 2 - path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UserServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$contentId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/SiteAccessAware/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UserServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$fieldDefinitionId with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/SiteAccessAware/UserServiceTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Call to method expects\(\) on an unknown class PHPUnit_Framework_MockObject_MockObject\.$#' - identifier: class.notFound - count: 2 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Call to method method\(\) on an unknown class PHPUnit_Framework_MockObject_MockObject\.$#' - identifier: class.notFound + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:getStubbedRelation\(\) has parameter \$type with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit_Framework_MockObject_MockObject\) does not accept Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelations\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentHandler has unknown class PHPUnit_Framework_MockObject_MockObject as its type\.$#' - identifier: class.notFound + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RelationProcessorTest\:\:testAppendFieldRelations\(\) has parameter \$fieldRelations with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentTypeHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit_Framework_MockObject_MockObject\) does not accept Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' - identifier: assign.propertyType + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentTypeHandler has unknown class PHPUnit_Framework_MockObject_MockObject as its type\.$#' - identifier: class.notFound - count: 1 - path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + message: '#^Parameter \#5 \$fieldDefinitionId of method Ibexa\\Core\\Repository\\Helper\\RelationProcessor\:\:appendFieldRelations\(\) expects string, int given\.$#' + identifier: argument.type + count: 3 + path: tests/lib/Repository/Service/Mock/RelationProcessorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/lib/Repository/Values/Content/LanguageTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:getPartlyMockedRoleService\(\) has parameter \$settings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/Values/Content/LanguageTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:getPartlyMockedRoleService\(\) should return Ibexa\\Core\\Repository\\RoleService&PHPUnit\\Framework\\MockObject\\MockObject but returns Ibexa\\Core\\Repository\\RoleService\.$#' + identifier: return.type count: 1 - path: tests/lib/Repository/Values/Content/LanguageTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Values/Content/LanguageTest.php + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\Role is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' + identifier: varTag.nativeType + count: 6 + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\RoleCreateStruct is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: varTag.nativeType count: 1 - path: tests/lib/Repository/Values/Content/LanguageTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Repository/Values/Content/LocationTest.php + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\User is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' + identifier: varTag.nativeType + count: 3 + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LocationTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Values/Content/LocationTest.php + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\User\\UserGroup is not subtype of native type PHPUnit\\Framework\\MockObject\\Stub\.$#' + identifier: varTag.nativeType + count: 3 + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:\$id \(int\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Repository/Values/Content/LocationTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\Query\\Criterion\\DateMetadataTest\:\:testConstruction\(\) has parameter \$value with no type specified\.$#' - identifier: missingType.parameter + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\RoleTest\:\:\$partlyMockedRoleService \(Ibexa\\Core\\Repository\\RoleService\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php + path: tests/lib/Repository/Service/Mock/RoleTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Search\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound + count: 7 + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentValidatesLocationCriteriaAndSortClauses\(\) has parameter \$exceptionMessage with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindContentValidatesLocationCriteriaAndSortClauses\(\) has parameter \$query with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleValidatesLocationCriteria\(\) has parameter \$criterion with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:testFindSingleValidatesLocationCriteria\(\) has parameter \$exceptionMessage with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + message: '#^PHPDoc tag @var with type Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\Criterion is not subtype of native type PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: varTag.nativeType + count: 5 + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section\:\:\$id \(int\) in isset\(\) is not nullable\.$#' - identifier: isset.property - count: 1 - path: tests/lib/Repository/Values/Content/SectionTest.php + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\\:\:\$searchHits \(list\\>\) does not accept array\, Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchHit\\>\.$#' + identifier: assign.propertyType + count: 2 + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType - count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Search\\SearchResult\\:\:\$totalCount \(int\<0, max\>\|null\) does not accept int\<\-1, max\>\.$#' + identifier: assign.propertyType + count: 2 + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$contentDomainMapperMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$permissionsCriterionResolverMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\SearchTest\:\:\$repositoryMock has no type specified\.$#' + identifier: missingType.property count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/SearchTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:getPartlyMockedURLAliasServiceService\(\) has parameter \$prioritizedLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:testUnsetProperty\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:getSpiUrlAlias\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:\$id \(int\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:setConfiguration\(\) has no return type specified\.$#' + identifier: missingType.return count: 1 - path: tests/lib/Repository/Values/Content/TrashItemTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitions\(\) return type has no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:setConfiguration\(\) has parameter \$configuration with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitionsWith\(\) has parameter \$values with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitionsWith\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getComplexFilterTestData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Filter/FilterTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getFilters\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Filter/FilterTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getFiltersWithInvalidSliceData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Filter/FilterTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getInvalidSortClausesData\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Filter/FilterTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:testConstructorThrowsBadStateException\(\) has parameter \$sortClauses with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/Filter/FilterTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' - identifier: staticMethod.alreadyNarrowedType + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testGetMultiLanguageDefaultDescription\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testGetMultiLanguageDefaultName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testGetMultiLanguagePrioritizedDescription\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testGetMultiLanguagePrioritizedName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testNewClass\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroup\:\:\$defaultLanguageCode \(string\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testGetMultiLanguageDefaultDescription\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testGetMultiLanguageDefaultName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testGetMultiLanguagePrioritizedDescription\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testGetMultiLanguagePrioritizedName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testNewClass\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:testNewClass\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/PolicyTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\RoleTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/RoleTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testGetName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testIsPropertySet\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testMissingProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testNewClass\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testObjectProperties\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testReadOnlyProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:testUnsetProperty\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserGroupTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Repository/Values/User/UserTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Common\\FieldValueMapper\\RemoteIdentifierMapperTest\:\:getDataForTestCanMap\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Common\\FieldValueMapper\\RemoteIdentifierMapperTest\:\:getDataForTestMap\(\) return type has no value type specified in iterable type iterable\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:getMockedFieldNameResolver\(\) has parameter \$methods with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetFieldNames\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetFieldNamesReturnsEmptyArray\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetFieldNamesWithNamedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetFieldNamesWithTypedAndNamedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmptyCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetFieldNamesWithTypedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameCustomField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameDefaultMatchField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameDefaultMatchFieldThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameDefaultSortField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameDefaultSortFieldThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameNamedField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetIndexFieldNameNamedFieldThrowsRuntimeException\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetSortFieldName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:testGetSortFieldNameReturnsNull\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$contentTypeHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$fieldNameGeneratorMock \(Ibexa\\Core\\Search\\Common\\FieldNameGenerator&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$fieldRegistryMock \(Ibexa\\Core\\Search\\Common\\FieldRegistry&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/FieldNameResolverTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has parameter \$expectedIds with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has parameter \$searchResult with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testListAutogeneratedLocationAliasesWithLanguageCodePathCustomConfiguration\(\) has parameter \$spiUrlAliases with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getConverterRegistry\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getIds\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getIds\(\) has parameter \$searchResult with no type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:\$contentTypeHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookup\(\) has parameter \$showAllTranslations with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:\$converterRegistry \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/AbstractTestCase.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\SortClause\\Field constructor invoked with 4 parameters, 2\-3 required\.$#' - identifier: arguments.count + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testNoSorting\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$alwaysAvailable with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortContentName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$languageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortDateModified\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$prioritizedLanguageList with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortDatePublished\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testLookupWithSharedTranslation\(\) has parameter \$showAllTranslations with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortFieldNumeric\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortFieldText\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortSectionIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupAlwaysAvailablePath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:testSortSectionName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$paths with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$prioritizedLanguageCodes with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:\$fieldRegistry \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' - identifier: isset.property + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$reverseLookupLanguageCode with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:testReverseLookupPath\(\) has parameter \$spiUrlAliases with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentAndCombinatorFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$value of function count expects array\|Countable, iterable\ given\.$#' + identifier: argument.type + count: 12 + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php + + - + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlAliasTest\:\:\$urlAliasHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlAlias\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlAliasTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + message: '#^Cannot call method getTimestamp\(\) on DateTimeInterface\|null\.$#' + identifier: method.nonObject + count: 2 + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentIdFilterCount\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configurePermissions\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentNotCombinatorFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configurePermissions\(\) has parameter \$permissions with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentOrCombinatorFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentSubtreeFilterEq\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has parameter \$hasAccess with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentSubtreeFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlUpdatePermission\(\) has parameter \$object with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentTypeGroupFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentTypeIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has parameter \$hasAccess with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testContentTypeIdentifierFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermission\(\) has parameter \$object with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testDateMetadataFilterCreatedBetween\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermissionForHasAccess\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testDateMetadataFilterModifiedBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:configureUrlViewPermissionForHasAccess\(\) has parameter \$hasAccess with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testDateMetadataFilterModifiedGreater\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:createUrlService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testDateMetadataFilterModifiedGreaterOrEqual\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testDateMetadataFilterModifiedIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has parameter \$id with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:getApiUrl\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$limit with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterContainsPartial\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$offset with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterContainsSimple\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:testFindUsages\(\) has parameter \$usages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterContainsSimpleNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$limit \(int\) does not accept string\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URLQuery\:\:\$offset \(int\) does not accept string\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldFilterOr\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlTest\:\:\$urlHandler \(Ibexa\\Contracts\\Core\\Repository\\URLService&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterContainsArray\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestTranslate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterContainsArrayNotMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:providerForTestTranslateThrowsNotFoundException\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterContainsSingle\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$destinationUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterContainsSingleNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterInArray\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreate\(\) has parameter \$sourceUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFieldRelationFilterInArrayNotMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$destinationUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindContentWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$forward with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindSingle\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testCreateThrowsContentValidationException\(\) has parameter \$sourceUrl with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindSingleTooMany\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$createArray with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindSingleWithNonSearchableField\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$uri with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindSingleZero\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslate\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindWithOffsetToNonexistent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateThrowsNotFoundException\(\) has parameter \$createArray with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindWithZeroLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:testTranslateThrowsNotFoundException\(\) has parameter \$url with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFindWithoutOffsetLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$methods of method PHPUnit\\Framework\\MockObject\\MockBuilder\\:\:onlyMethods\(\) expects list\, list\ given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextDisabledWildcardFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UrlWildcardTest\:\:\$urlWildcardHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\UrlWildcard\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UrlWildcardTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:dateProviderForValidate\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextFilterInvalidStopwordThreshold\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:testValidate\(\) has parameter \$constraints with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextFilterNoStopwordRemoval\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPasswordValidatorTest\:\:testValidate\(\) has parameter \$expectedErrors with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextFilterStopwordRemoval\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:createAPIUserPreferenceService\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testFullTextWildcardFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserPreferenceTest\:\:\$userSPIPreferenceHandler \(Ibexa\\Contracts\\Core\\Persistence\\UserPreference\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserPreferenceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testLanguageCodeFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Persistence\\User\\Handler\:\:expects\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testLanguageCodeFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$array of function array_values expects array\, array\\|null given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/Service/Mock/UserTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testLanguageCodeFilterWithAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + message: '#^Parameter \#6 \$userHandler of method Ibexa\\Tests\\Core\\Repository\\Service\\Mock\\UserTest\:\:mockDeleteUserFlow\(\) expects Ibexa\\Contracts\\Core\\Persistence\\User\\Handler&PHPUnit\\Framework\\MockObject\\MockObject, Ibexa\\Contracts\\Core\\Persistence\\User\\Handler given\.$#' + identifier: argument.type + count: 2 + path: tests/lib/Repository/Service/Mock/UserTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testLocationIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to an undefined method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:addWarning\(\)\.$#' + identifier: method.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php + + - + message: '#^Call to method expects\(\) on an unknown class object\.$#' + identifier: class.notFound + count: 4 + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testLocationRemoteIdFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:getAPIServiceClassName\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testObjectStateIdFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:getSiteAccessAwareServiceClassName\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testObjectStateIdFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testParentLocationIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testRemoteIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testSectionFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testStatusFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterCreatorEqAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterCreatorInAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterEqGroupMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterEqGroupMemberNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterInGroupMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterInGroupMemberNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:testForPassTrough\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterOwnerAdministrator\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + message: '#^Method PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker\:\:with\(\) invoked with unpacked array with possibly string key, but it''s not allowed because of @no\-named\-arguments\.$#' + identifier: argument.named + count: 4 + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterOwnerEqAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:\$innerApiServiceMock \(object&PHPUnit\\Framework\\MockObject\\MockObject\) does not accept PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterOwnerInAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\AbstractServiceTestCase\:\:\$innerApiServiceMock has unknown class object as its type\.$#' + identifier: class.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testUserMetadataFilterOwnerWrongUserId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unable to resolve the template type T in call to method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\)$#' + identifier: argument.templateType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:testVisibilityFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/ContentServiceTest.php - - message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' - identifier: argument.type + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerContentTest.php + path: tests/lib/Repository/SiteAccessAware/ContentServiceTest.php - - message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\SortClause\\Field constructor invoked with 4 parameters, 2\-3 required\.$#' - identifier: arguments.count + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentTypeServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:getIds\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ContentTypeServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:getIds\(\) has parameter \$searchResult with no type specified\.$#' - identifier: missingType.parameter + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:getDataForTestGetPrioritizedLanguages\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testNoSorting\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$configLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortContentId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$expectedPrioritizedLanguagesList with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortContentName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\Language\\LanguageResolverTest\:\:testGetPrioritizedLanguages\(\) has parameter \$forcedLanguages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortDateModified\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LanguageServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortDatePublished\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LocationServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortFieldNumeric\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\LocationServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/LocationServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortFieldText\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ObjectStateServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortIsMainLocationAscending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\ObjectStateServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortIsMainLocationDescending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationDepth\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationDepthAndPath\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationPath\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationPriority\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationVisibilityAscending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortLocationVisibilityDescending\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortSectionIdentifier\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:testSortSectionName\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\SearchServiceTest\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' - identifier: argument.type - count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + message: '#^Undefined variable\: \$this$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Repository/SiteAccessAware/SearchServiceTest.php - - message: '#^Unreachable statement \- code above always terminates\.$#' - identifier: deadCode.unreachable + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\TrashServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php + path: tests/lib/Repository/SiteAccessAware/TrashServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterEq\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterGreaterThan\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterGreaterThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesLookupExpectedArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$arguments with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterLessThan\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) has parameter \$languages with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentDepthFilterLessThanOrEqual\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UrlAliasServiceTest\:\:setLanguagesPassTroughArguments\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentIdFilterEquals\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + message: '#^Undefined variable\: \$this$#' + identifier: variable.undefined + count: 2 + path: tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentIdFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UserServiceTest\:\:providerForLanguagesLookupMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentTypeGroupFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\SiteAccessAware\\UserServiceTest\:\:providerForPassTroughMethods\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/SiteAccessAware/UserServiceTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentTypeIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to method expects\(\) on an unknown class PHPUnit_Framework_MockObject_MockObject\.$#' + identifier: class.notFound + count: 2 + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php + + - + message: '#^Call to method method\(\) on an unknown class PHPUnit_Framework_MockObject_MockObject\.$#' + identifier: class.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testContentTypeIdentifierFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit_Framework_MockObject_MockObject\) does not accept Ibexa\\Contracts\\Core\\Persistence\\Content\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testDateMetadataFilterCreatedBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentHandler has unknown class PHPUnit_Framework_MockObject_MockObject as its type\.$#' + identifier: class.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testDateMetadataFilterModifiedBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentTypeHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit_Framework_MockObject_MockObject\) does not accept Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\.$#' + identifier: assign.propertyType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testDateMetadataFilterModifiedGreater\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Repository\\Validator\\TargetContentValidatorTest\:\:\$contentTypeHandler has unknown class PHPUnit_Framework_MockObject_MockObject as its type\.$#' + identifier: class.notFound count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Validator/TargetContentValidatorTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testDateMetadataFilterModifiedGreaterOrEqual\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LanguageTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/LanguageTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testDateMetadataFilterModifiedIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/LocationTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\LocationTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/LocationTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterBetween\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:\$id \(int\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/LocationTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterContainsPartial\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\Query\\Criterion\\DateMetadataTest\:\:testConstruction\(\) has parameter \$value with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/Query/Criterion/DateMetadataTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterContainsSimple\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterContainsSimpleNoMatch\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\SectionTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section\:\:\$id \(int\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/SectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldFilterOr\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/TrashItemTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterContainsArray\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Content\\TrashItemTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/TrashItemTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterContainsArrayNotMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:\$id \(int\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Content/TrashItemTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterContainsSingle\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitions\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterContainsSingleNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitionsWith\(\) has parameter \$values with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterInArray\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ContentType\\FieldDefinitionCollectionTest\:\:createFieldDefinitionsWith\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ContentType/FieldDefinitionCollectionTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFieldRelationFilterInArrayNotMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getComplexFilterTestData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Filter/FilterTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFindWithOffsetToNonexistent\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getFilters\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Filter/FilterTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFindWithZeroLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getFiltersWithInvalidSliceData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Filter/FilterTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFindWithoutOffsetLimit\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:getInvalidSortClausesData\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Filter/FilterTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextDisabledWildcardFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\Filter\\FilterTest\:\:testConstructorThrowsBadStateException\(\) has parameter \$sortClauses with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/Filter/FilterTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Call to static method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#' + identifier: staticMethod.alreadyNarrowedType count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextFilterInvalidStopwordThreshold\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroupTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextFilterNoStopwordRemoval\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Core\\Repository\\Values\\ObjectState\\ObjectStateGroup\:\:\$defaultLanguageCode \(string\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextFilterStopwordRemoval\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\ObjectState\\ObjectStateTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/ObjectState/ObjectStateTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testFullTextWildcardFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\PolicyTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/User/PolicyTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testIsMainLocationFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\RoleTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/User/RoleTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testIsNotMainLocationFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserGroupTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/User/UserGroupTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLanguageCodeFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Repository\\Values\\User\\UserTest\:\:assertPropertiesCorrect\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Repository/Values/User/UserTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLanguageCodeFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Common\\FieldValueMapper\\RemoteIdentifierMapperTest\:\:getDataForTestCanMap\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLanguageCodeFilterWithAlwaysAvailable\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Common\\FieldValueMapper\\RemoteIdentifierMapperTest\:\:getDataForTestMap\(\) return type has no value type specified in iterable type iterable\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Common/FieldValueMapper/RemoteIdentifierMapperTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationIdAndCombinatorFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:getMockedFieldNameResolver\(\) has parameter \$methods with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/FieldNameResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$contentTypeHandlerMock \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/FieldNameResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationIdParentLocationIdAndCombinatorFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$fieldNameGeneratorMock \(Ibexa\\Core\\Search\\Common\\FieldNameGenerator&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/FieldNameResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationNotCombinatorFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\FieldNameResolverTest\:\:\$fieldRegistryMock \(Ibexa\\Core\\Search\\Common\\FieldRegistry&PHPUnit\\Framework\\MockObject\\MockObject\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/FieldNameResolverTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationOrCombinatorFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationPriorityFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has parameter \$expectedIds with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testLocationRemoteIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:assertSearchResults\(\) has parameter \$searchResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testMatchAllFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getConverterRegistry\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testObjectStateIdFilter\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getIds\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testObjectStateIdFilterIn\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:getIds\(\) has parameter \$searchResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testParentLocationIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:\$contentTypeHandler \(Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testRemoteIdFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\AbstractTestCase\:\:\$converterRegistry \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/AbstractTestCase.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testSectionFilter\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\SortClause\\Field constructor invoked with 4 parameters, 2\-3 required\.$#' + identifier: arguments.count count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterCreatorEqAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterCreatorInAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterEqGroupMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Property Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentSortTest\:\:\$fieldRegistry \(Ibexa\\Core\\Persistence\\Legacy\\Content\\FieldValue\\ConverterRegistry\) in isset\(\) is not nullable\.$#' + identifier: isset.property count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterEqGroupMemberNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unreachable statement \- code above always terminates\.$#' + identifier: deadCode.unreachable count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterInGroupMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerContentTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterInGroupMemberNoMatch\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerContentTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterOwnerAdministrator\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Class Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Query\\SortClause\\Field constructor invoked with 4 parameters, 2\-3 required\.$#' + identifier: arguments.count count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterOwnerEqAMember\(\) has no return type specified\.$#' + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:getIds\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterOwnerInAMember\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationSortTest\:\:getIds\(\) has parameter \$searchResult with no type specified\.$#' + identifier: missingType.parameter count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testUserMetadataFilterOwnerWrongUserId\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Parameter \#1 \$contentTypeHandler of method Ibexa\\Tests\\Core\\Persistence\\Legacy\\Content\\LanguageAwareTestCase\:\:getFullTextMapper\(\) expects Ibexa\\Core\\Persistence\\Legacy\\Content\\Type\\Handler, Ibexa\\Contracts\\Core\\Persistence\\Content\\Type\\Handler given\.$#' + identifier: argument.type count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testVisibilityFilterHidden\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Unreachable statement \- code above always terminates\.$#' + identifier: deadCode.unreachable count: 1 - path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php + path: tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php - - message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:testVisibilityFilterVisible\(\) has no return type specified\.$#' - identifier: missingType.return + message: '#^Method Ibexa\\Tests\\Core\\Search\\Legacy\\Content\\HandlerLocationTest\:\:getContentSearchHandler\(\) has parameter \$fullTextSearchConfiguration with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/lib/Search/Legacy/Content/HandlerLocationTest.php diff --git a/tests/bundle/Core/ChainConfigResolverTest.php b/tests/bundle/Core/ChainConfigResolverTest.php index e455f378cc..70a99fff10 100644 --- a/tests/bundle/Core/ChainConfigResolverTest.php +++ b/tests/bundle/Core/ChainConfigResolverTest.php @@ -25,7 +25,7 @@ protected function setUp(): void $this->chainResolver = new ChainConfigResolver(); } - public function testPriority() + public function testPriority(): void { self::assertEquals([], $this->chainResolver->getAllResolvers()); @@ -47,7 +47,7 @@ public function testPriority() * Resolvers are supposed to be sorted only once. * This test will check that by trying to get all resolvers several times. */ - public function testSortResolvers() + public function testSortResolvers(): void { list($low, $medium, $high) = $this->createResolverMocks(); // We're using a mock here and not $this->chainResolver because we need to ensure that the sorting operation is done only once. @@ -77,7 +77,7 @@ public function testSortResolvers() /** * This test ensures that if a resolver is being added on the fly, the sorting is reset. */ - public function testReSortResolvers() + public function testReSortResolvers(): void { list($low, $medium, $high) = $this->createResolverMocks(); $highest = clone $high; @@ -111,14 +111,14 @@ public function testReSortResolvers() ); } - public function testGetDefaultNamespace() + public function testGetDefaultNamespace(): void { $this->expectException(\LogicException::class); $this->chainResolver->getDefaultNamespace(); } - public function testSetDefaultNamespace() + public function testSetDefaultNamespace(): void { $namespace = 'foo'; foreach ($this->createResolverMocks() as $i => $resolver) { @@ -132,7 +132,7 @@ public function testSetDefaultNamespace() $this->chainResolver->setDefaultNamespace($namespace); } - public function testGetParameterInvalid() + public function testGetParameterInvalid(): void { $this->expectException(ParameterNotFoundException::class); @@ -158,7 +158,7 @@ public function testGetParameterInvalid() * @param mixed $expectedValue */ #[DataProvider('getParameterProvider')] - public function testGetParameter($paramName, $namespace, $scope, $expectedValue) + public function testGetParameter($paramName, $namespace, $scope, $expectedValue): void { $resolver = $this->createMock(ConfigResolverInterface::class); $resolver @@ -171,7 +171,10 @@ public function testGetParameter($paramName, $namespace, $scope, $expectedValue) self::assertSame($expectedValue, $this->chainResolver->getParameter($paramName, $namespace, $scope)); } - public static function getParameterProvider() + /** + * @return array + */ + public static function getParameterProvider(): array { return [ ['foo', 'namespace', 'scope', 'someValue'], @@ -181,7 +184,7 @@ public static function getParameterProvider() ]; } - public function testHasParameterTrue() + public function testHasParameterTrue(): void { $paramName = 'foo'; $namespace = 'yetAnotherNamespace'; @@ -212,7 +215,7 @@ public function testHasParameterTrue() self::assertTrue($this->chainResolver->hasParameter($paramName, $namespace, $scope)); } - public function testHasParameterFalse() + public function testHasParameterFalse(): void { $paramName = 'foo'; $namespace = 'yetAnotherNamespace'; diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php index b9be5a7c9b..44dfc3d7c2 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ChainConfigResolverPassTest.php @@ -41,7 +41,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void * @param int $expectedPriority */ #[DataProvider('addResolverProvider')] - public function testAddResolver($declaredPriority, $expectedPriority) + public function testAddResolver($declaredPriority, $expectedPriority): void { $resolverDef = new Definition(); $serviceId = 'some_service_id'; @@ -62,7 +62,10 @@ public function testAddResolver($declaredPriority, $expectedPriority) ); } - public static function addResolverProvider() + /** + * @return array + */ + public static function addResolverProvider(): array { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php index 605e474a36..5116a841ce 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ChainRoutingPassTest.php @@ -41,7 +41,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void * @param int $expectedPriority */ #[DataProvider('addRouterProvider')] - public function testAddRouter($declaredPriority, $expectedPriority) + public function testAddRouter($declaredPriority, $expectedPriority): void { $resolverDef = new Definition(); $serviceId = 'some_service_id'; @@ -66,7 +66,7 @@ public function testAddRouter($declaredPriority, $expectedPriority) * @param int $expectedPriority */ #[DataProvider('addRouterProvider')] - public function testAddRouterWithDefaultRouter($declaredPriority, $expectedPriority) + public function testAddRouterWithDefaultRouter($declaredPriority, $expectedPriority): void { $defaultRouter = new Definition(); $this->setDefinition('router.default', $defaultRouter); @@ -98,7 +98,10 @@ public function testAddRouterWithDefaultRouter($declaredPriority, $expectedPrior ); } - public static function addRouterProvider() + /** + * @return array + */ + public static function addRouterProvider(): array { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php index 681887c8d9..a85c7f1324 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/FieldTypeParameterProviderRegistryPassTest.php @@ -35,7 +35,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void } #[DataProvider('tagsProvider')] - public function testRegisterFieldType(string $tag) + public function testRegisterFieldType(string $tag): void { $fieldTypeIdentifier = 'field_type_identifier'; $serviceId = 'service_id'; @@ -56,7 +56,7 @@ public function testRegisterFieldType(string $tag) * @param string $tag */ #[DataProvider('tagsProvider')] - public function testRegisterFieldTypeNoAlias(string $tag) + public function testRegisterFieldTypeNoAlias(string $tag): void { $this->expectException(\LogicException::class); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php index 6616520948..72c78331d0 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/FragmentPassTest.php @@ -24,7 +24,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new FragmentPass()); } - public function testProcess() + public function testProcess(): void { $inlineRendererDef = new Definition(InlineFragmentRenderer::class); $inlineRendererDef->addTag('kernel.fragment_renderer'); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php index eb87e94e90..a230b50584 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/NotificationRendererPassTest.php @@ -31,7 +31,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new NotificationRendererPass()); } - public function testAddRenderer() + public function testAddRenderer(): void { $definition = new Definition(); $definition->addTag(NotificationRendererPass::TAG_NAME, [ @@ -48,7 +48,7 @@ public function testAddRenderer() ); } - public function testAddRendererWithoutAliasThrowsLogicException() + public function testAddRendererWithoutAliasThrowsLogicException(): void { $this->expectException(\LogicException::class); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php index 9c174c56bd..fad1abddc1 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/PlaceholderProviderPassTest.php @@ -30,7 +30,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new PlaceholderProviderPass()); } - public function testAddProvider() + public function testAddProvider(): void { $definition = new Definition(); $definition->addTag(PlaceholderProviderPass::TAG_NAME, ['type' => self::PROVIDER_TYPE]); @@ -45,7 +45,7 @@ public function testAddProvider() ); } - public function testAddProviderWithoutType() + public function testAddProviderWithoutType(): void { $this->expectException(\LogicException::class); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php index 2b298c9b24..be60023985 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/RegisterStorageEnginePassTest.php @@ -34,7 +34,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new RegisterStorageEnginePass()); } - public function testRegisterStorageEngine() + public function testRegisterStorageEngine(): void { $storageEngineDef = new Definition(); $storageEngineIdentifier = 'i_am_a_storage_engine'; @@ -51,7 +51,7 @@ public function testRegisterStorageEngine() ); } - public function testRegisterDefaultStorageEngine() + public function testRegisterDefaultStorageEngine(): void { $storageEngineDef = new Definition(); $storageEngineIdentifier = 'i_am_a_storage_engine'; @@ -70,7 +70,7 @@ public function testRegisterDefaultStorageEngine() ); } - public function testRegisterStorageEngineNoAlias() + public function testRegisterStorageEngineNoAlias(): void { $this->expectException(\LogicException::class); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php index 766e5295d8..7533614880 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/SlugConverterConfigurationPassTest.php @@ -38,7 +38,7 @@ public function testMergeConfigurations( array $commandsToAdd, array $existingOldParameters, array $expectedCommands - ) { + ): void { $definition = new Definition(SlugConverter::class); $definition->setArgument(0, self::createStub(TransformationProcessor::class)); $definition->setArgument(1, $existingOldParameters); @@ -70,7 +70,10 @@ public function testMergeConfigurations( self::assertEquals('url_cleanup', $configuration['transformationGroups']['urlalias']['cleanupMethod']); } - public static function configurationProvider() + /** + * @return array + */ + public static function configurationProvider(): array { $injectedBySemanticCommands = [ 'new_command_to_add', diff --git a/tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php index 50a459809a..1ec5924d83 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/URLHandlerPassTest.php @@ -27,7 +27,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new URLHandlerPass()); } - public function testRegisterURLHandler() + public function testRegisterURLHandler(): void { $serviceId = 'service_id'; $scheme = 'http'; @@ -44,7 +44,7 @@ public function testRegisterURLHandler() ); } - public function testRegisterURLHandlerNoScheme() + public function testRegisterURLHandlerNoScheme(): void { $this->expectException(\LogicException::class); diff --git a/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php b/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php index 033d02be7e..fe5bcbcb80 100644 --- a/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php +++ b/tests/bundle/Core/DependencyInjection/Compiler/ViewProvidersPassTest.php @@ -35,7 +35,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void } #[DataProvider('addViewProviderProvider')] - public function testAddViewProvider($declaredPriority, $expectedPriority) + public function testAddViewProvider($declaredPriority, $expectedPriority): void { $def = new Definition(); @@ -57,7 +57,10 @@ public function testAddViewProvider($declaredPriority, $expectedPriority) ); } - public static function addViewProviderProvider() + /** + * @return array + */ + public static function addViewProviderProvider(): array { return [ [null, 0], diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php index 145ebc63fd..533c126b58 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingParserTest.php @@ -22,18 +22,21 @@ protected function setUp(): void } #[DataProvider('provideSettings')] - public function testContainsDynamicSettings($setting, $expected) + public function testContainsDynamicSettings($setting, $expected): void { self::assertEquals($expected[0], $this->parser->containsDynamicSettings($setting), 'string'); } #[DataProvider('provideSettings')] - public function testParseComplexSetting($setting, $expected) + public function testParseComplexSetting($setting, $expected): void { self::assertEquals($expected[1], $this->parser->parseComplexSetting($setting), 'string'); } - public static function provideSettings() + /** + * @return array + */ + public static function provideSettings(): array { // array( setting, array( isDynamicSetting, containsDynamicSettings ) ) return [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingValueResolverTest.php b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingValueResolverTest.php index 4afa862ff5..effa5c4085 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingValueResolverTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/ComplexSettings/ComplexSettingValueResolverTest.php @@ -12,7 +12,7 @@ class ComplexSettingValueResolverTest extends TestCase { - public function testGetArgumentValue() + public function testGetArgumentValue(): void { $resolver = new ComplexSettingValueResolver(); self::assertEquals( diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php index 20e27f7908..36ea0859fa 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/CommonTest.php @@ -26,7 +26,7 @@ protected function getMinimalConfiguration(): array return $this->minimalConfig = Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_minimal.yml')); } - public function testIndexPage() + public function testIndexPage(): void { $indexPage1 = '/Getting-Started'; $indexPage2 = '/Contact-Us'; @@ -43,7 +43,7 @@ public function testIndexPage() $this->assertConfigResolverParameterValue('index_page', null, self::EMPTY_SA_GROUP); } - public function testDefaultPage() + public function testDefaultPage(): void { $defaultPage1 = '/Getting-Started'; $defaultPage2 = '/Foo/bar'; @@ -63,7 +63,7 @@ public function testDefaultPage() /** * Test defaults. */ - public function testNonExistentSettings() + public function testNonExistentSettings(): void { $this->load(); $this->assertConfigResolverParameterValue('url_alias_router', true, 'ibexa_demo_site'); @@ -76,7 +76,7 @@ public function testNonExistentSettings() $this->assertConfigResolverParameterValue('index_page', null, 'ibexa_demo_site'); } - public function testMiscSettings() + public function testMiscSettings(): void { $cachePoolName = 'cache_foo'; $varDir = 'var/foo/bar'; @@ -117,7 +117,7 @@ public function testMiscSettings() $this->assertConfigResolverParameterValue('anonymous_user_id', $anonymousUserId, 'ibexa_demo_site'); } - public function testApiKeysSettings() + public function testApiKeysSettings(): void { $key = 'my_key'; $this->load( @@ -136,7 +136,7 @@ public function testApiKeysSettings() $this->assertConfigResolverParameterValue('api_keys.google_maps', $key, 'ibexa_demo_site'); } - public function testUserSettings() + public function testUserSettings(): void { $layout = 'somelayout.html.twig'; $loginTemplate = 'login_template.html.twig'; @@ -157,7 +157,7 @@ public function testUserSettings() $this->assertConfigResolverParameterValue('security.login_template', $loginTemplate, 'ibexa_demo_site'); } - public function testNoUserSettings() + public function testNoUserSettings(): void { $this->load(); $this->assertConfigResolverParameterValue( @@ -173,7 +173,7 @@ public function testNoUserSettings() } #[DataProvider('sessionSettingsProvider')] - public function testSessionSettings(array $inputParams, array $expected) + public function testSessionSettings(array $inputParams, array $expected): void { $this->load( [ @@ -186,7 +186,10 @@ public function testSessionSettings(array $inputParams, array $expected) $this->assertConfigResolverParameterValue('session', $expected['session'], 'ibexa_demo_site'); } - public static function sessionSettingsProvider() + /** + * @return array + */ + public static function sessionSettingsProvider(): array { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php index 6082a1ab30..d2540dd7cc 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ContentTest.php @@ -26,7 +26,7 @@ protected function getMinimalConfiguration(): array return Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_minimal.yml')); } - public function testDefaultContentSettings() + public function testDefaultContentSettings(): void { $this->load(); @@ -36,7 +36,7 @@ public function testDefaultContentSettings() } #[DataProvider('contentSettingsProvider')] - public function testContentSettings(array $config, array $expected) + public function testContentSettings(array $config, array $expected): void { $this->load( [ @@ -51,7 +51,10 @@ public function testContentSettings(array $config, array $expected) } } - public static function contentSettingsProvider() + /** + * @return array + */ + public static function contentSettingsProvider(): array { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php index 9e4d53f812..efcb76a35d 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/FieldType/ImageAssetTest.php @@ -25,7 +25,7 @@ protected function getContainerExtensions(): array ]; } - public function testDefaultImageAssetSettings() + public function testDefaultImageAssetSettings(): void { $this->load(); @@ -42,7 +42,7 @@ public function testDefaultImageAssetSettings() } #[DataProvider('imageAssetSettingsProvider')] - public function testImageAssetSettings(array $config, array $expected) + public function testImageAssetSettings(array $config, array $expected): void { $this->load( [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php index 2b2ea2a995..2c2992e897 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/IOTest.php @@ -36,7 +36,7 @@ protected function getMinimalConfiguration(): array return $this->minimalConfig = Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_minimal.yml')); } - public function testHandlersConfig() + public function testHandlersConfig(): void { $config = [ 'system' => [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php index 22bf92734c..ba06a2f6bb 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ImageTest.php @@ -44,7 +44,7 @@ protected function getContainerExtensions(): array ]; } - public function testVariations() + public function testVariations(): void { $this->load(); @@ -72,7 +72,7 @@ public function testVariations() ); } - public function testPrePostParameters() + public function testPrePostParameters(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php index 6a4508862e..bd3b753fa7 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/LanguagesTest.php @@ -23,7 +23,7 @@ protected function getMinimalConfiguration(): array return Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_minimal.yml')); } - public function testLanguagesSingleSiteaccess() + public function testLanguagesSingleSiteaccess(): void { $langDemoSite = ['eng-GB']; $langFre = ['fre-FR', 'eng-GB']; @@ -58,7 +58,7 @@ public function testLanguagesSingleSiteaccess() $this->assertConfigResolverParameterValue('languages', [], 'ibexa_demo_site_admin'); } - public function testLanguagesSiteaccessGroup() + public function testLanguagesSiteaccessGroup(): void { $langDemoSite = ['eng-US', 'eng-GB']; $config = [ @@ -83,7 +83,7 @@ public function testLanguagesSiteaccessGroup() $this->assertConfigResolverParameterValue('languages', [], 'ibexa_demo_site_admin'); } - public function testTranslationSiteAccesses() + public function testTranslationSiteAccesses(): void { $translationSAsDemoSite = ['foo', 'bar']; $translationSAsFre = ['foo2', 'bar2']; @@ -101,7 +101,7 @@ public function testTranslationSiteAccesses() $this->assertConfigResolverParameterValue('translation_siteaccesses', [], self::EMPTY_SA_GROUP); } - public function testTranslationSiteAccessesWithGroup() + public function testTranslationSiteAccessesWithGroup(): void { $translationSAsDemoSite = ['ibexa_demo_site', 'fre']; $config = [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php index 2907e3398b..e84c71cd6d 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/TemplatesTest.php @@ -32,7 +32,7 @@ protected function getMinimalConfiguration(): array return $this->config = Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_templates.yml')); } - public function testFieldTemplates() + public function testFieldTemplates(): void { $this->load(); $fixedUpConfig = $this->getExpectedConfigFieldTemplates($this->config); @@ -106,7 +106,7 @@ private function getExpectedConfigFieldTemplates(array $config) return $config; } - public function testFieldDefinitionSettingsTemplates() + public function testFieldDefinitionSettingsTemplates(): void { $this->load(); $fixedUpConfig = $this->getExpectedConfigFieldDefinitionSettingsTemplates($this->config); diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php index be7546142f..ee795a6f86 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Parser/ViewTest.php @@ -28,7 +28,7 @@ protected function getMinimalConfiguration(): array return $this->config = Yaml::parse(file_get_contents(__DIR__ . '/../../Fixtures/ezpublish_view.yml')); } - public function testLocationView() + public function testLocationView(): void { $this->load(); $expectedLocationView = $this->config['system']['ibexa_demo_frontend_group']['location_view']; @@ -50,7 +50,7 @@ public function testLocationView() $this->assertConfigResolverParameterValue('location_view', [], 'ibexa_demo_site_admin', false); } - public function testContentView() + public function testContentView(): void { $this->load(); $expectedContentView = $this->config['system']['ibexa_demo_frontend_group']['content_view']; diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php index ec7b4af269..7e5fc8f2d2 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ConfigurationProcessorTest.php @@ -16,7 +16,7 @@ class ConfigurationProcessorTest extends TestCase { - public function testConstruct() + public function testConstruct(): void { $namespace = 'ibexa_test'; $siteAccessNodeName = 'foo'; @@ -42,7 +42,7 @@ public function testConstruct() self::assertSame($groupsBySa, $contextualizer->getGroupsBySiteAccess()); } - public function testGetSetContextualizer() + public function testGetSetContextualizer(): void { $namespace = 'ibexa_test'; $siteAccessNodeName = 'foo'; @@ -59,7 +59,7 @@ public function testGetSetContextualizer() self::assertSame($newContextualizer, $processor->getContextualizer()); } - public function testMapConfigClosure() + public function testMapConfigClosure(): void { $namespace = 'ibexa_test'; $saNodeName = 'foo'; @@ -98,7 +98,7 @@ public function testMapConfigClosure() $processor->mapConfig($config, $mapperClosure); } - public function testMapConfigMapperObject() + public function testMapConfigMapperObject(): void { $namespace = 'ibexa_test'; $saNodeName = 'foo'; @@ -144,7 +144,7 @@ public function testMapConfigMapperObject() $processor->mapConfig($config, $mapper); } - public function testMapConfigHookableMapperObject() + public function testMapConfigHookableMapperObject(): void { $namespace = 'ibexa_test'; $saNodeName = 'foo'; @@ -198,7 +198,7 @@ public function testMapConfigHookableMapperObject() $processor->mapConfig($config, $mapper); } - public function testMapSetting() + public function testMapSetting(): void { $namespace = 'ibexa_test'; $saNodeName = 'foo'; @@ -234,7 +234,7 @@ public function testMapSetting() $processor->mapSetting('foo', $config); } - public function testMapConfigArray() + public function testMapConfigArray(): void { $namespace = 'ibexa_test'; $saNodeName = 'foo'; diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php index d191f0f81e..8593181b87 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/ContextualizerTest.php @@ -62,7 +62,7 @@ protected function setUp(): void } #[DataProvider('setContextualParameterProvider')] - public function testSetContextualParameter($parameterName, $scope, $value) + public function testSetContextualParameter($parameterName, $scope, $value): void { $this->container ->expects(self::once()) @@ -72,7 +72,10 @@ public function testSetContextualParameter($parameterName, $scope, $value) $this->contextualizer->setContextualParameter($parameterName, $scope, $value); } - public static function setContextualParameterProvider() + /** + * @return array + */ + public static function setContextualParameterProvider(): array { return [ ['my_parameter', 'sa1', 'foobar'], @@ -84,7 +87,7 @@ public static function setContextualParameterProvider() ]; } - public function testMapSetting() + public function testMapSetting(): void { $fooSa1 = 'bar'; $planetsSa1 = ['Earth']; @@ -132,7 +135,7 @@ public function testMapSetting() self::assertSame($boolSa2, $container->getParameter("$this->namespace.sa2.a_bool")); } - public function testMapConfigArray() + public function testMapConfigArray(): void { $containerBuilder = new ContainerBuilder(); $this->contextualizer->setContainer($containerBuilder); @@ -234,7 +237,7 @@ public function testMapConfigArray() ); } - public function testMapConfigArraySecondLevel() + public function testMapConfigArraySecondLevel(): void { $containerBuilder = new ContainerBuilder(); $this->contextualizer->setContainer($containerBuilder); @@ -344,7 +347,7 @@ public function testMapConfigArraySecondLevel() ); } - public function testMapConfigArrayUnique() + public function testMapConfigArrayUnique(): void { $containerBuilder = new ContainerBuilder(); $this->contextualizer->setContainer($containerBuilder); @@ -397,7 +400,7 @@ public function testMapConfigArrayUnique() ); } - public function testGetSetContainer() + public function testGetSetContainer(): void { self::assertSame($this->container, $this->contextualizer->getContainer()); $containerBuilder = new ContainerBuilder(); @@ -405,7 +408,7 @@ public function testGetSetContainer() self::assertSame($containerBuilder, $this->contextualizer->getContainer()); } - public function testGetSetSANodeName() + public function testGetSetSANodeName(): void { $nodeName = 'foobarbaz'; self::assertSame($this->saNodeName, $this->contextualizer->getSiteAccessNodeName()); @@ -413,7 +416,7 @@ public function testGetSetSANodeName() self::assertSame($nodeName, $this->contextualizer->getSiteAccessNodeName()); } - public function testGetSetNamespace() + public function testGetSetNamespace(): void { $ns = 'ibexa'; self::assertSame($this->namespace, $this->contextualizer->getNamespace()); @@ -421,7 +424,7 @@ public function testGetSetNamespace() self::assertSame($ns, $this->contextualizer->getNamespace()); } - public function testGetSetAvailableSiteAccesses() + public function testGetSetAvailableSiteAccesses(): void { self::assertSame($this->availableSAs, $this->contextualizer->getAvailableSiteAccesses()); $sa = ['foo', 'bar', 'baz']; @@ -429,7 +432,7 @@ public function testGetSetAvailableSiteAccesses() self::assertSame($sa, $this->contextualizer->getAvailableSiteAccesses()); } - public function testGetSetGroupsBySA() + public function testGetSetGroupsBySA(): void { self::assertSame($this->groupsBySA, $this->contextualizer->getGroupsBySiteAccess()); $groups = ['foo' => ['bar', 'baz'], 'group2' => ['some', 'thing']]; @@ -452,7 +455,7 @@ public function testFullMapConfigArray( $options, array $expected, $customSANodeKey = null - ) { + ): void { $this->contextualizer->setAvailableSiteAccesses($config['siteaccess']['list']); $this->contextualizer->setGroupsBySiteAccess([$siteaccess => $groups]); @@ -502,7 +505,10 @@ public function testFullMapConfigArray( $this->contextualizer->mapConfigArray($testId, $config, $options); } - public static function fullMapConfigArrayProvider() + /** + * @return array + */ + public static function fullMapConfigArrayProvider(): array { $testId = 'wizards'; $siteaccess = 'krondor'; diff --git a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php index 4d0ad5c9ab..78977edef3 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/SiteAccessAware/DynamicSettingParserTest.php @@ -14,13 +14,16 @@ class DynamicSettingParserTest extends TestCase { #[DataProvider('isDynamicSettingProvider')] - public function testIsDynamicSetting($setting, $expected) + public function testIsDynamicSetting($setting, $expected): void { $parser = new DynamicSettingParser(); self::assertSame($expected, $parser->isDynamicSetting($setting)); } - public static function isDynamicSettingProvider() + /** + * @return array + */ + public static function isDynamicSettingProvider(): array { return [ ['foo', false], @@ -39,7 +42,7 @@ public static function isDynamicSettingProvider() ]; } - public function testParseDynamicSettingFail() + public function testParseDynamicSettingFail(): void { $this->expectException(\OutOfBoundsException::class); @@ -48,13 +51,16 @@ public function testParseDynamicSettingFail() } #[DataProvider('parseDynamicSettingProvider')] - public function testParseDynamicSetting($setting, array $expected) + public function testParseDynamicSetting($setting, array $expected): void { $parser = new DynamicSettingParser(); self::assertSame($expected, $parser->parseDynamicSetting($setting)); } - public static function parseDynamicSettingProvider() + /** + * @return array + */ + public static function parseDynamicSettingProvider(): array { return [ [ diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Collector/SuggestionCollectorTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Collector/SuggestionCollectorTest.php index abfdf4e7a8..97cbc9233c 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Collector/SuggestionCollectorTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Collector/SuggestionCollectorTest.php @@ -13,7 +13,7 @@ class SuggestionCollectorTest extends TestCase { - public function testAddHasGetSuggestions() + public function testAddHasGetSuggestions(): void { $collector = new SuggestionCollector(); $suggestions = [new ConfigSuggestion(), new ConfigSuggestion(), new ConfigSuggestion()]; diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php index b16db5268a..591f4c60f6 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/ConfigSuggestionTest.php @@ -12,7 +12,7 @@ class ConfigSuggestionTest extends TestCase { - public function testEmptyConstructor() + public function testEmptyConstructor(): void { $suggestion = new ConfigSuggestion(); self::assertNull($suggestion->getMessage()); @@ -20,7 +20,7 @@ public function testEmptyConstructor() self::assertFalse($suggestion->isMandatory()); } - public function testConfigSuggestion() + public function testConfigSuggestion(): void { $message = 'some message'; $configArray = ['foo' => 'bar']; diff --git a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php index c818e73bda..cf4b1ce7a7 100644 --- a/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php +++ b/tests/bundle/Core/DependencyInjection/Configuration/Suggestion/Formatter/YamlSuggestionFormatterTest.php @@ -13,7 +13,7 @@ class YamlSuggestionFormatterTest extends TestCase { - public function testFormat() + public function testFormat(): void { $message = <<format($suggestion))); } - public function testFormatNoSuggestion() + public function testFormatNoSuggestion(): void { $message = 'This is a message'; $suggestion = new ConfigSuggestion($message); diff --git a/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php b/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php index 5667148729..612ea53716 100644 --- a/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php +++ b/tests/bundle/Core/DependencyInjection/IbexaCoreExtensionTest.php @@ -89,7 +89,7 @@ protected function getMinimalConfiguration(): array return $this->minimalConfig = Yaml::parse(file_get_contents(__DIR__ . '/Fixtures/ezpublish_minimal_no_siteaccess.yml')); } - public function testSiteAccessConfiguration() + public function testSiteAccessConfiguration(): void { $this->load($this->siteaccessConfig); $this->assertContainerBuilderHasParameter( @@ -122,7 +122,7 @@ public function testSiteAccessConfiguration() } } - public function testSiteAccessNoConfiguration() + public function testSiteAccessNoConfiguration(): void { $this->load(); $this->assertContainerBuilderHasParameter('ibexa.site_access.list', ['setup']); @@ -132,7 +132,7 @@ public function testSiteAccessNoConfiguration() $this->assertContainerBuilderHasParameter('ibexa.site_access.match_config', null); } - public function testImageMagickConfigurationBasic() + public function testImageMagickConfigurationBasic(): void { if (!isset($_ENV['imagemagickConvertPath']) || !is_executable($_ENV['imagemagickConvertPath'])) { self::markTestSkipped('Missing or mis-configured Imagemagick convert path.'); @@ -187,7 +187,7 @@ public static function translationsConfigurationProvider(): iterable ]; } - public function testImageMagickConfigurationFilters() + public function testImageMagickConfigurationFilters(): void { if (!isset($_ENV['imagemagickConvertPath']) || !is_executable($_ENV['imagemagickConvertPath'])) { self::markTestSkipped('Missing or mis-configured Imagemagick convert path.'); @@ -214,7 +214,7 @@ public function testImageMagickConfigurationFilters() self::assertSame($customFilters['wow'], $filters['wow']); } - public function testImagePlaceholderConfiguration() + public function testImagePlaceholderConfiguration(): void { $this->load([ 'image_placeholder' => [ @@ -249,7 +249,7 @@ public function testImagePlaceholderConfiguration() ], $this->container->getParameter('ibexa.io.images.alias.placeholder_provider')); } - public function testRoutingConfiguration() + public function testRoutingConfiguration(): void { $this->load(); $this->assertContainerBuilderHasAlias('router', ChainRouter::class); @@ -266,14 +266,17 @@ public function testRoutingConfiguration() * @param string $expectedPurgeType */ #[DataProvider('cacheConfigurationProvider')] - public function testCacheConfiguration(array $customCacheConfig, $expectedPurgeType) + public function testCacheConfiguration(array $customCacheConfig, $expectedPurgeType): void { $this->load($customCacheConfig); $this->assertContainerBuilderHasParameter('ibexa.http_cache.purge_type', $expectedPurgeType); } - public static function cacheConfigurationProvider() + /** + * @return array + */ + public static function cacheConfigurationProvider(): array { return [ [[], 'local'], @@ -310,7 +313,7 @@ public static function cacheConfigurationProvider() ]; } - public function testCacheConfigurationCustomPurgeService() + public function testCacheConfigurationCustomPurgeService(): void { $serviceId = 'foobar'; $this->setDefinition($serviceId, new Definition()); @@ -323,7 +326,7 @@ public function testCacheConfigurationCustomPurgeService() $this->assertContainerBuilderHasParameter('ibexa.http_cache.purge_type', 'foobar'); } - public function testLocaleConfiguration() + public function testLocaleConfiguration(): void { $this->load(['locale_conversion' => ['foo' => 'bar']]); $conversionMap = $this->container->getParameter('ibexa.locale.conversion_map'); @@ -331,7 +334,7 @@ public function testLocaleConfiguration() self::assertSame('bar', $conversionMap['foo']); } - public function testRepositoriesConfiguration() + public function testRepositoriesConfiguration(): void { $repositories = [ 'main' => [ @@ -382,7 +385,7 @@ public function testRepositoriesConfiguration() } #[DataProvider('repositoriesConfigurationFieldGroupsProvider')] - public function testRepositoriesConfigurationFieldGroups($repositories, $expectedRepositories) + public function testRepositoriesConfigurationFieldGroups($repositories, $expectedRepositories): void { $this->load(['repositories' => $repositories]); self::assertTrue($this->container->hasParameter('ibexa.repositories')); @@ -397,7 +400,10 @@ public function testRepositoriesConfigurationFieldGroups($repositories, $expecte } } - public static function repositoriesConfigurationFieldGroupsProvider() + /** + * @return array + */ + public static function repositoriesConfigurationFieldGroupsProvider(): array { return [ //empty config @@ -517,7 +523,7 @@ public static function repositoriesConfigurationFieldGroupsProvider() ]; } - public function testRepositoriesConfigurationEmpty() + public function testRepositoriesConfigurationEmpty(): void { $repositories = [ 'main' => null, @@ -553,7 +559,7 @@ public function testRepositoriesConfigurationEmpty() ); } - public function testRepositoriesConfigurationStorageEmpty() + public function testRepositoriesConfigurationStorageEmpty(): void { $repositories = [ 'main' => [ @@ -594,7 +600,7 @@ public function testRepositoriesConfigurationStorageEmpty() ); } - public function testRepositoriesConfigurationSearchEmpty() + public function testRepositoriesConfigurationSearchEmpty(): void { $repositories = [ 'main' => [ @@ -635,7 +641,7 @@ public function testRepositoriesConfigurationSearchEmpty() ); } - public function testRepositoriesConfigurationCompatibility() + public function testRepositoriesConfigurationCompatibility(): void { $repositories = [ 'main' => [ @@ -706,7 +712,7 @@ public function testRepositoriesConfigurationCompatibility() ); } - public function testRepositoriesConfigurationCompatibility2() + public function testRepositoriesConfigurationCompatibility2(): void { $repositories = [ 'main' => [ @@ -745,7 +751,7 @@ public function testRepositoriesConfigurationCompatibility2() ); } - public function testRegisteredPolicies() + public function testRegisteredPolicies(): void { $this->load(); $this->assertContainerBuilderHasParameter('ibexa.api.role.policy_map'); @@ -797,7 +803,7 @@ public function testRegisteredPolicies() self::assertEquals($expectedPolicies, $this->container->getParameter('ibexa.api.role.policy_map')); } - public function testUrlAliasConfiguration() + public function testUrlAliasConfiguration(): void { $configuration = [ 'transformation' => 'urlalias_lowercase', diff --git a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php index d1cc154842..b86e1f1574 100644 --- a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php +++ b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/PoliciesConfigBuilderTest.php @@ -56,7 +56,7 @@ public static function policiesConfigProvider(): array ]; } - public function testAddResource() + public function testAddResource(): void { $containerBuilder = new ContainerBuilder(); $configBuilder = new PoliciesConfigBuilder($containerBuilder); diff --git a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php index 74285ddb49..cfc0a9fefd 100644 --- a/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php +++ b/tests/bundle/Core/DependencyInjection/Security/PolicyProvider/YamlPolicyProviderTest.php @@ -14,7 +14,7 @@ class YamlPolicyProviderTest extends TestCase { - public function testSingleYaml() + public function testSingleYaml(): void { $files = [__DIR__ . '/../../Fixtures/policies1.yml']; $provider = new StubYamlPolicyProvider($files); @@ -44,7 +44,7 @@ public function testSingleYaml() $provider->addPolicies($configBuilder); } - public function testMultipleYaml() + public function testMultipleYaml(): void { $file1 = __DIR__ . '/../../Fixtures/policies1.yml'; $file2 = __DIR__ . '/../../Fixtures/policies2.yml'; diff --git a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php index 74cc42b516..db49415e91 100644 --- a/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php +++ b/tests/bundle/Core/EventListener/BackgroundIndexingTerminateListenerTest.php @@ -48,7 +48,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [ @@ -60,7 +60,10 @@ public function testGetSubscribedEvents() ); } - public static function indexingProvider() + /** + * @return array + */ + public static function indexingProvider(): array { $info = new ContentInfo(['id' => 33]); $location = new Location(['id' => 44, 'contentId' => 33]); @@ -82,7 +85,7 @@ public static function indexingProvider() * @param \Psr\Log\LoggerInterface|\PHPUnit\Framework\MockObject\MockObject|null $logger */ #[DataProvider('indexingProvider')] - public function testIndexing(?array $values = null, $logger = null) + public function testIndexing(?array $values = null, $logger = null): void { $contentHandlerMock = $this->createMock(Content\Handler::class); $this->persistenceMock @@ -140,7 +143,10 @@ public function testIndexing(?array $values = null, $logger = null) $this->listener->reindex(); } - public static function indexDeleteProvider() + /** + * @return array + */ + public static function indexDeleteProvider(): array { $location = new Location(['id' => 44, 'contentId' => 33]); $info = new ContentInfo(['id' => 33, 'currentVersionNo' => 2, 'status' => ContentInfo::STATUS_PUBLISHED]); diff --git a/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php b/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php index 0bc012b211..04d148d940 100644 --- a/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php +++ b/tests/bundle/Core/EventListener/ConfigScopeListenerTest.php @@ -38,7 +38,7 @@ protected function setUp(): void ]; } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [ @@ -49,7 +49,7 @@ public function testGetSubscribedEvents() ); } - public function testOnConfigScopeChange() + public function testOnConfigScopeChange(): void { $siteAccess = new SiteAccess('test'); $event = new ScopeChangeEvent($siteAccess); diff --git a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php index fa4670a2bc..8da45863df 100644 --- a/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php +++ b/tests/bundle/Core/EventListener/ConsoleCommandListenerTest.php @@ -56,7 +56,7 @@ protected function setUp(): void $this->command = self::createStub(Command::class); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [ @@ -66,7 +66,7 @@ public function testGetSubscribedEvents() ); } - public function testInvalidSiteAccessDev() + public function testInvalidSiteAccessDev(): void { $this->expectException(InvalidSiteAccessException::class); $this->expectExceptionMessageMatches('/^Invalid SiteAccess \'foo\', matched by .+\\. Valid SiteAccesses are/'); @@ -79,7 +79,7 @@ public function testInvalidSiteAccessDev() $this->listener->onConsoleCommand($event); } - public function testInvalidSiteAccessProd() + public function testInvalidSiteAccessProd(): void { $this->expectException(InvalidSiteAccessException::class); $this->expectExceptionMessageMatches('/^Invalid SiteAccess \'foo\', matched by .+\\.$/'); @@ -92,7 +92,7 @@ public function testInvalidSiteAccessProd() $this->listener->onConsoleCommand($event); } - public function testValidSiteAccess() + public function testValidSiteAccess(): void { $this->dispatcher->expects(self::once()) ->method('dispatch'); @@ -102,7 +102,7 @@ public function testValidSiteAccess() self::assertEquals(new SiteAccess('site1', 'cli'), $this->siteAccess); } - public function testDefaultSiteAccess() + public function testDefaultSiteAccess(): void { $this->dispatcher->expects(self::once()) ->method('dispatch'); diff --git a/tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php b/tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php index d33fa227d8..ff5528a4a2 100644 --- a/tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php +++ b/tests/bundle/Core/EventListener/ContentDownloadRouteReferenceListenerTest.php @@ -30,7 +30,7 @@ protected function setUp(): void $this->translationHelperMock = $this->createMock(TranslationHelper::class); } - public function testIgnoresOtherRoutes() + public function testIgnoresOtherRoutes(): void { $routeReference = new RouteReference('some_route'); $event = new RouteReferenceGenerationEvent($routeReference, new Request()); @@ -41,7 +41,7 @@ public function testIgnoresOtherRoutes() self::assertEquals('some_route', $routeReference->getRoute()); } - public function testThrowsExceptionOnBadContentParameter() + public function testThrowsExceptionOnBadContentParameter(): void { $this->expectException(\InvalidArgumentException::class); @@ -58,7 +58,7 @@ public function testThrowsExceptionOnBadContentParameter() $eventListener->onRouteReferenceGeneration($event); } - public function testThrowsExceptionOnBadFieldIdentifier() + public function testThrowsExceptionOnBadFieldIdentifier(): void { $this->expectException(\InvalidArgumentException::class); @@ -86,7 +86,7 @@ public function testThrowsExceptionOnBadFieldIdentifier() $eventListener->onRouteReferenceGeneration($event); } - public function testGeneratesCorrectRouteReference() + public function testGeneratesCorrectRouteReference(): void { $content = $this->getCompleteContent(); @@ -112,7 +112,7 @@ public function testGeneratesCorrectRouteReference() self::assertEquals('Test-file.pdf', $routeReference->get(ContentDownloadRouteReferenceListener::OPT_DOWNLOAD_NAME)); } - public function testDownloadNameOverrideWorks() + public function testDownloadNameOverrideWorks(): void { $content = $this->getCompleteContent(); diff --git a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php index fcc03c4763..071fcb85e4 100644 --- a/tests/bundle/Core/EventListener/IndexRequestListenerTest.php +++ b/tests/bundle/Core/EventListener/IndexRequestListenerTest.php @@ -54,7 +54,7 @@ protected function setUp(): void ); } - public function testSubscribedEvents() + public function testSubscribedEvents(): void { self::assertSame( [ @@ -67,7 +67,7 @@ public function testSubscribedEvents() } #[DataProvider('indexPageProvider')] - public function testOnKernelRequestIndexOnIndexPage($requestPath, $configuredIndexPath, $expectedIndexPath) + public function testOnKernelRequestIndexOnIndexPage($requestPath, $configuredIndexPath, $expectedIndexPath): void { $this->configResolver ->expects(self::once()) @@ -80,7 +80,10 @@ public function testOnKernelRequestIndexOnIndexPage($requestPath, $configuredInd self::assertTrue($this->request->attributes->get('needsRedirect')); } - public static function indexPageProvider() + /** + * @return array + */ + public static function indexPageProvider(): array { return [ ['/', '/foo', '/foo'], @@ -93,7 +96,7 @@ public static function indexPageProvider() ]; } - public function testOnKernelRequestIndexNotOnIndexPage() + public function testOnKernelRequestIndexNotOnIndexPage(): void { $this->request->attributes->set('semanticPathinfo', '/anyContent'); $this->indexRequestEventListener->onKernelRequestIndex($this->event); diff --git a/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php b/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php index 2fcd374750..db61740c8f 100644 --- a/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php +++ b/tests/bundle/Core/EventListener/OriginalRequestListenerTest.php @@ -17,7 +17,7 @@ class OriginalRequestListenerTest extends TestCase { - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [ @@ -27,7 +27,7 @@ public function testGetSubscribedEvents() ); } - public function testOnKernelRequestNotMaster() + public function testOnKernelRequestNotMaster(): void { $request = new Request(); $event = new RequestEvent( @@ -41,7 +41,7 @@ public function testOnKernelRequestNotMaster() self::assertFalse($request->attributes->has('_ez_original_request')); } - public function testOnKernelRequestNoOriginalRequest() + public function testOnKernelRequestNoOriginalRequest(): void { $request = new Request(); $event = new RequestEvent( @@ -55,7 +55,7 @@ public function testOnKernelRequestNoOriginalRequest() self::assertFalse($request->attributes->has('_ez_original_request')); } - public function testOnKernelRequestWithOriginalRequest() + public function testOnKernelRequestWithOriginalRequest(): void { ClockMock::withClockMock(true); diff --git a/tests/bundle/Core/EventListener/RequestEventListenerTest.php b/tests/bundle/Core/EventListener/RequestEventListenerTest.php index 7de15c6a23..6edce24604 100644 --- a/tests/bundle/Core/EventListener/RequestEventListenerTest.php +++ b/tests/bundle/Core/EventListener/RequestEventListenerTest.php @@ -65,7 +65,7 @@ protected function setUp(): void ); } - public function testSubscribedEvents() + public function testSubscribedEvents(): void { self::assertSame( [ @@ -78,7 +78,7 @@ public function testSubscribedEvents() ); } - public function testOnKernelRequestForwardSubRequest() + public function testOnKernelRequestForwardSubRequest(): void { $this->httpKernel ->expects(self::never()) @@ -88,7 +88,7 @@ public function testOnKernelRequestForwardSubRequest() $this->requestEventListener->onKernelRequestForward($event); } - public function testOnKernelRequestForward() + public function testOnKernelRequestForward(): void { ClockMock::withClockMock(true); @@ -119,14 +119,14 @@ public function testOnKernelRequestForward() ClockMock::withClockMock(false); } - public function testOnKernelRequestRedirectSubRequest() + public function testOnKernelRequestRedirectSubRequest(): void { $event = new RequestEvent($this->httpKernel, new Request(), HttpKernelInterface::SUB_REQUEST); $this->requestEventListener->onKernelRequestRedirect($event); self::assertFalse($event->hasResponse()); } - public function testOnKernelRequestRedirect() + public function testOnKernelRequestRedirect(): void { $queryParameters = ['some' => 'thing']; $cookieParameters = ['cookie' => 'value']; @@ -147,7 +147,7 @@ public function testOnKernelRequestRedirect() self::assertTrue($event->isPropagationStopped()); } - public function testOnKernelRequestRedirectWithLocationId() + public function testOnKernelRequestRedirectWithLocationId(): void { $queryParameters = ['some' => 'thing']; $cookieParameters = ['cookie' => 'value']; @@ -170,7 +170,7 @@ public function testOnKernelRequestRedirectWithLocationId() self::assertTrue($event->isPropagationStopped()); } - public function testOnKernelRequestRedirectPrependSiteaccess() + public function testOnKernelRequestRedirectPrependSiteaccess(): void { $queryParameters = ['some' => 'thing']; $cookieParameters = ['cookie' => 'value']; diff --git a/tests/bundle/Core/EventListener/RoutingListenerTest.php b/tests/bundle/Core/EventListener/RoutingListenerTest.php index 76663ac22f..9252ac101e 100644 --- a/tests/bundle/Core/EventListener/RoutingListenerTest.php +++ b/tests/bundle/Core/EventListener/RoutingListenerTest.php @@ -37,7 +37,7 @@ protected function setUp(): void $this->urlAliasGenerator = $this->createMock(UrlAliasGenerator::class); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { $listener = new RoutingListener($this->configResolver, $this->urlAliasRouter, $this->urlAliasGenerator); self::assertSame( @@ -48,7 +48,7 @@ public function testGetSubscribedEvents() ); } - public function testOnSiteAccessMatch() + public function testOnSiteAccessMatch(): void { $rootLocationId = 123; $excludedUriPrefixes = ['/foo/bar', '/baz']; diff --git a/tests/bundle/Core/EventListener/SiteAccessListenerTest.php b/tests/bundle/Core/EventListener/SiteAccessListenerTest.php index b57a481726..254949578c 100644 --- a/tests/bundle/Core/EventListener/SiteAccessListenerTest.php +++ b/tests/bundle/Core/EventListener/SiteAccessListenerTest.php @@ -33,7 +33,7 @@ protected function setUp(): void $this->listener = new SiteAccessListener($this->defaultSiteaccess); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [ @@ -43,7 +43,10 @@ public function testGetSubscribedEvents() ); } - public static function siteAccessMatchProvider() + /** + * @return array + */ + public static function siteAccessMatchProvider(): array { return [ ['/foo/bar', '/foo/bar', '', []], @@ -67,7 +70,7 @@ public function testOnSiteAccessMatchMasterRequest( $expectedSemanticPathinfo, $expectedVPString, array $expectedVPArray - ) { + ): void { $uri = rawurldecode($uri); $semanticPathinfoPos = strpos($uri, $expectedSemanticPathinfo); if ($semanticPathinfoPos !== 0) { @@ -97,7 +100,7 @@ public function testOnSiteAccessMatchMasterRequest( } #[DataProvider('siteAccessMatchProvider')] - public function testOnSiteAccessMatchSubRequest($uri, $semanticPathinfo, $vpString, $expectedViewParameters) + public function testOnSiteAccessMatchSubRequest($uri, $semanticPathinfo, $vpString, $expectedViewParameters): void { $siteAccess = new SiteAccess('test', 'test', self::createStub(SiteAccess\Matcher::class)); $request = Request::create($uri); diff --git a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php index dfd1f3886c..d9d752e36e 100644 --- a/tests/bundle/Core/EventListener/ViewControllerListenerTest.php +++ b/tests/bundle/Core/EventListener/ViewControllerListenerTest.php @@ -74,7 +74,7 @@ protected function setUp(): void $this->viewBuilderMock = $this->createMock(ViewBuilder::class); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [KernelEvents::CONTROLLER => ['getController', 10]], @@ -82,7 +82,7 @@ public function testGetSubscribedEvents() ); } - public function testGetControllerNoBuilder() + public function testGetControllerNoBuilder(): void { $initialController = 'Foo::bar'; $this->request->attributes->set('_controller', $initialController); @@ -96,7 +96,7 @@ public function testGetControllerNoBuilder() $this->controllerListener->getController($this->event); } - public function testGetControllerWithClosure() + public function testGetControllerWithClosure(): void { $initialController = static function () {}; $this->request->attributes->set('_controller', $initialController); @@ -110,7 +110,7 @@ public function testGetControllerWithClosure() $this->controllerListener->getController($this->event); } - public function testGetControllerMatchedView() + public function testGetControllerMatchedView(): void { $contentId = 12; $locationId = 123; diff --git a/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php b/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php index 40336440ad..a412c60df8 100644 --- a/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php +++ b/tests/bundle/Core/EventSubscriber/CrowdinRequestLocaleSubscriberTest.php @@ -17,7 +17,7 @@ class CrowdinRequestLocaleSubscriberTest extends TestCase { #[DataProvider('provideSetRequests')] - public function testSetLocale(Request $request, $shouldHaveCustomLocale) + public function testSetLocale(Request $request, $shouldHaveCustomLocale): void { $event = new RequestEvent( $this->getMockBuilder(HttpKernelInterface::class)->getMock(), @@ -35,7 +35,10 @@ public function testSetLocale(Request $request, $shouldHaveCustomLocale) ); } - public static function provideSetRequests() + /** + * @return array + */ + public static function provideSetRequests(): array { return [ 'with_ez_in_context_translation_cookie' => [ diff --git a/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php b/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php index cd012dd8c0..de3ac52692 100644 --- a/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php +++ b/tests/bundle/Core/Fragment/FragmentListenerFactoryTest.php @@ -19,7 +19,7 @@ class FragmentListenerFactoryTest extends TestCase { #[DataProvider('buildFragmentListenerProvider')] - public function testBuildFragmentListener($requestUri, $isFragmentCandidate) + public function testBuildFragmentListener($requestUri, $isFragmentCandidate): void { $listenerClass = FragmentListener::class; $uriSigner = new UriSigner('my_precious_secret'); @@ -42,7 +42,10 @@ public function testBuildFragmentListener($requestUri, $isFragmentCandidate) } } - public static function buildFragmentListenerProvider() + /** + * @return array + */ + public static function buildFragmentListenerProvider(): array { return [ ['/foo/bar', false], @@ -54,7 +57,7 @@ public static function buildFragmentListenerProvider() ]; } - public function testBuildFragmentListenerNoRequest() + public function testBuildFragmentListenerNoRequest(): void { $factory = new FragmentListenerFactory(); $factory->setRequestStack(new RequestStack()); diff --git a/tests/bundle/Core/Imagine/AliasCleanerTest.php b/tests/bundle/Core/Imagine/AliasCleanerTest.php index 596e2381f2..6b281c7cbe 100644 --- a/tests/bundle/Core/Imagine/AliasCleanerTest.php +++ b/tests/bundle/Core/Imagine/AliasCleanerTest.php @@ -26,7 +26,7 @@ protected function setUp(): void $this->aliasCleaner = new AliasCleaner($this->resolver); } - public function testRemoveAliases() + public function testRemoveAliases(): void { $originalPath = 'foo/bar/test.jpg'; $this->resolver diff --git a/tests/bundle/Core/Imagine/BinaryLoaderTest.php b/tests/bundle/Core/Imagine/BinaryLoaderTest.php index feddb12766..bde37f2ce2 100644 --- a/tests/bundle/Core/Imagine/BinaryLoaderTest.php +++ b/tests/bundle/Core/Imagine/BinaryLoaderTest.php @@ -33,7 +33,7 @@ protected function setUp(): void $this->binaryLoader = new BinaryLoader($this->ioService, new MimeTypes()); } - public function testFindNotFound() + public function testFindNotFound(): void { $this->expectException(\Liip\ImagineBundle\Exception\Binary\Loader\NotLoadableException::class); @@ -47,7 +47,7 @@ public function testFindNotFound() $this->binaryLoader->find($path); } - public function testFindMissing() + public function testFindMissing(): void { $this->expectException(\Liip\ImagineBundle\Exception\Binary\Loader\NotLoadableException::class); @@ -61,7 +61,7 @@ public function testFindMissing() $this->binaryLoader->find($path); } - public function testFindBadPathRoot() + public function testFindBadPathRoot(): void { $path = 'var/site/storage/images/1/2/3/123-name/name.png'; $this->ioService diff --git a/tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php b/tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php index 0f53eea8d3..62293b8754 100644 --- a/tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php +++ b/tests/bundle/Core/Imagine/Cache/Resolver/ProxyResolverTest.php @@ -30,7 +30,7 @@ protected function setUp(): void $this->filter = 'medium'; } - public function testResolveUsingProxyHostWithTrailingSlash() + public function testResolveUsingProxyHostWithTrailingSlash(): void { $hosts = ['http://ezplatform.com/']; $proxyResolver = new ProxyResolver($this->resolver, $hosts); @@ -48,7 +48,7 @@ public function testResolveUsingProxyHostWithTrailingSlash() self::assertEquals($expected, $proxyResolver->resolve($this->path, $this->filter)); } - public function testResolveAndRemovePortUsingProxyHost() + public function testResolveAndRemovePortUsingProxyHost(): void { $hosts = ['http://ibexa.co']; $proxyResolver = new ProxyResolver($this->resolver, $hosts); @@ -66,7 +66,7 @@ public function testResolveAndRemovePortUsingProxyHost() self::assertEquals($expected, $proxyResolver->resolve($this->path, $this->filter)); } - public function testResolveAndRemovePortUsingProxyHostWithTrailingSlash() + public function testResolveAndRemovePortUsingProxyHostWithTrailingSlash(): void { $hosts = ['http://ibexa.co']; $proxyResolver = new ProxyResolver($this->resolver, $hosts); diff --git a/tests/bundle/Core/Imagine/Cache/Resolver/RelativeResolverTest.php b/tests/bundle/Core/Imagine/Cache/Resolver/RelativeResolverTest.php index 1d41a4f323..f3f72f075b 100644 --- a/tests/bundle/Core/Imagine/Cache/Resolver/RelativeResolverTest.php +++ b/tests/bundle/Core/Imagine/Cache/Resolver/RelativeResolverTest.php @@ -22,7 +22,7 @@ protected function setUp(): void $this->liipResolver = $this->getMockBuilder(ResolverInterface::class)->getMock(); } - public function testResolve() + public function testResolve(): void { $resolver = new RelativeResolver($this->liipResolver); diff --git a/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php b/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php index 93842e0a7e..e61931307f 100644 --- a/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php +++ b/tests/bundle/Core/Imagine/Cache/ResolverFactoryTest.php @@ -38,7 +38,7 @@ protected function setUp(): void ); } - public function testCreateProxyCacheResolver() + public function testCreateProxyCacheResolver(): void { $this->configResolver ->expects(self::once()) @@ -59,7 +59,7 @@ public function testCreateProxyCacheResolver() self::assertEquals($expected, $this->factory->createCacheResolver()); } - public function testCreateRelativeCacheResolver() + public function testCreateRelativeCacheResolver(): void { $this->configResolver ->expects(self::once()) diff --git a/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php b/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php index d3c134037f..9b2acc7040 100644 --- a/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php +++ b/tests/bundle/Core/Imagine/Filter/AbstractFilterTest.php @@ -27,7 +27,7 @@ protected function getFilter() return $this->getMockForAbstractClass(AbstractFilter::class); } - public function testGetSetOptions() + public function testGetSetOptions(): void { self::assertSame([], $this->filter->getOptions()); $options = ['foo' => 'bar', 'some' => ['thing']]; @@ -36,7 +36,7 @@ public function testGetSetOptions() } #[DataProvider('getSetOptionNoDefaulValueProvider')] - public function testGetSetOptionNoDefaultValue($optionName, $value) + public function testGetSetOptionNoDefaultValue($optionName, $value): void { self::assertFalse($this->filter->hasOption($optionName)); self::assertNull($this->filter->getOption($optionName)); @@ -45,7 +45,10 @@ public function testGetSetOptionNoDefaultValue($optionName, $value) self::assertSame($value, $this->filter->getOption($optionName)); } - public static function getSetOptionNoDefaulValueProvider() + /** + * @return array + */ + public static function getSetOptionNoDefaulValueProvider(): array { return [ ['foo', 'bar'], @@ -58,7 +61,7 @@ public static function getSetOptionNoDefaulValueProvider() } #[DataProvider('getSetOptionWithDefaulValueProvider')] - public function testGetSetOptionWithDefaultValue($optionName, $value, $defaultValue) + public function testGetSetOptionWithDefaultValue($optionName, $value, $defaultValue): void { self::assertFalse($this->filter->hasOption($optionName)); self::assertSame($defaultValue, $this->filter->getOption($optionName, $defaultValue)); @@ -67,7 +70,10 @@ public function testGetSetOptionWithDefaultValue($optionName, $value, $defaultVa self::assertSame($value, $this->filter->getOption($optionName)); } - public static function getSetOptionWithDefaulValueProvider() + /** + * @return array + */ + public static function getSetOptionWithDefaulValueProvider(): array { return [ ['foo', 'bar', 'default'], diff --git a/tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php b/tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php index fe9cf8af97..41b7831f26 100644 --- a/tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php +++ b/tests/bundle/Core/Imagine/Filter/FilterConfigurationTest.php @@ -27,7 +27,7 @@ protected function setUp(): void $this->filterConfiguration->setConfigResolver($this->configResolver); } - public function testGetOnlyImagineFilters() + public function testGetOnlyImagineFilters(): void { $fooConfig = ['fooconfig']; $barConfig = ['barconfig']; @@ -44,7 +44,7 @@ public function testGetOnlyImagineFilters() self::assertSame($barConfig, $this->filterConfiguration->get('bar')); } - public function testGetNoEzVariationInvalidImagineFilter() + public function testGetNoEzVariationInvalidImagineFilter(): void { $this->expectException(\RuntimeException::class); @@ -90,7 +90,7 @@ public function testGetWithEzVariationNullConfiguration(): void ); } - public function testGetEzVariationNoReference() + public function testGetEzVariationNoReference(): void { $fooConfig = ['fooconfig']; $barConfig = ['barconfig']; @@ -119,7 +119,7 @@ public function testGetEzVariationNoReference() ); } - public function testGetEzVariationWithReference() + public function testGetEzVariationWithReference(): void { $fooConfig = ['fooconfig']; $barConfig = ['barconfig']; @@ -149,7 +149,7 @@ public function testGetEzVariationWithReference() ); } - public function testGetEzVariationImagineFilters() + public function testGetEzVariationImagineFilters(): void { $filters = ['some_filter' => []]; $imagineConfig = ['filters' => $filters]; @@ -177,7 +177,7 @@ public function testGetEzVariationImagineFilters() ); } - public function testGetEzVariationImagineOptions() + public function testGetEzVariationImagineOptions(): void { $imagineConfig = [ 'foo_option' => 'foo', @@ -210,7 +210,7 @@ public function testGetEzVariationImagineOptions() ); } - public function testAll() + public function testAll(): void { $fooConfig = ['fooconfig']; $barConfig = ['barconfig']; diff --git a/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php index 98e7727f27..4e7f7faef8 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/BorderFilterLoaderTest.php @@ -20,7 +20,7 @@ class BorderFilterLoaderTest extends TestCase { #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); @@ -28,7 +28,10 @@ public function testLoadInvalidOptions(array $options) $loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -37,7 +40,7 @@ public static function loadInvalidProvider() ]; } - public function testLoadDefaultColor() + public function testLoadDefaultColor(): void { $image = $this->createMock(ImageInterface::class); $options = [10, 10]; @@ -82,7 +85,7 @@ public function testLoadDefaultColor() } #[DataProvider('loadProvider')] - public function testLoad($thickX, $thickY, $color) + public function testLoad($thickX, $thickY, $color): void { $image = $this->createMock(ImageInterface::class); $options = [$thickX, $thickY, $color]; @@ -126,7 +129,10 @@ public function testLoad($thickX, $thickY, $color) self::assertSame($image, $loader->load($image, $options)); } - public static function loadProvider() + /** + * @return array + */ + public static function loadProvider(): array { return [ [10, 10, '#fff'], diff --git a/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php index 612c48a419..2512ce83be 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/CropFilterLoaderTest.php @@ -31,14 +31,17 @@ protected function setUp(): void } #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -49,7 +52,7 @@ public static function loadInvalidProvider() ]; } - public function testLoad() + public function testLoad(): void { $width = 123; $height = 789; diff --git a/tests/bundle/Core/Imagine/Filter/Loader/GrayscaleFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/GrayscaleFilterLoaderTest.php index eaa18287ba..3dfdb86762 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/GrayscaleFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/GrayscaleFilterLoaderTest.php @@ -14,7 +14,7 @@ class GrayscaleFilterLoaderTest extends TestCase { - public function testLoad() + public function testLoad(): void { $image = $this->createMock(ImageInterface::class); $effects = $this->createMock(EffectsInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php index f4154bc585..6e1876491e 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ReduceNoiseFilterLoaderTest.php @@ -28,7 +28,7 @@ protected function setUp(): void $this->loader = new ReduceNoiseFilterLoader($this->filter); } - public function testLoadInvalidDriver() + public function testLoadInvalidDriver(): void { $this->expectException(NotSupportedException::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php index ced5d3d814..79912dd4ab 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleDownOnlyFilterLoaderTest.php @@ -31,14 +31,17 @@ protected function setUp(): void } #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -47,7 +50,7 @@ public static function loadInvalidProvider() ]; } - public function testLoad() + public function testLoad(): void { $options = [123, 456]; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php index c891812ed2..3f656e07be 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleExactFilterLoaderTest.php @@ -31,14 +31,17 @@ protected function setUp(): void } #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -47,7 +50,7 @@ public static function loadInvalidProvider() ]; } - public function testLoad() + public function testLoad(): void { $options = [123, 456]; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php index cfd424ac51..af0222e409 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleFilterLoaderTest.php @@ -32,14 +32,17 @@ protected function setUp(): void } #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -48,7 +51,7 @@ public static function loadInvalidProvider() ]; } - public function testLoadHeighten() + public function testLoadHeighten(): void { $width = 900; $height = 400; @@ -71,7 +74,7 @@ public function testLoadHeighten() self::assertSame($image, $this->loader->load($image, [$width, $height])); } - public function testLoadWiden() + public function testLoadWiden(): void { $width = 900; $height = 600; diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php index 42b78a61d8..6b7cb56c78 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightDownOnlyFilterLoaderTest.php @@ -29,14 +29,14 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - public function testLoadInvalid() + public function testLoadInvalid(): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), []); } - public function testLoad() + public function testLoad(): void { $height = 123; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php index 05b9fa4558..76865c8716 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleHeightFilterLoaderTest.php @@ -29,14 +29,14 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - public function testLoadFail() + public function testLoadFail(): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class, [])); } - public function testLoad() + public function testLoad(): void { $height = 123; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php index 449896cb66..6b6f85f535 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScalePercentFilterLoaderTest.php @@ -32,14 +32,17 @@ protected function setUp(): void } #[DataProvider('loadInvalidProvider')] - public function testLoadInvalidOptions(array $options) + public function testLoadInvalidOptions(array $options): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), $options); } - public static function loadInvalidProvider() + /** + * @return array + */ + public static function loadInvalidProvider(): array { return [ [[]], @@ -48,7 +51,7 @@ public static function loadInvalidProvider() ]; } - public function testLoad() + public function testLoad(): void { $widthPercent = 40; $heightPercent = 125; diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php index 31e071e240..60d8473065 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthDownOnlyFilterLoaderTest.php @@ -29,14 +29,14 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - public function testLoadInvalid() + public function testLoadInvalid(): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class), []); } - public function testLoad() + public function testLoad(): void { $width = 123; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php index ddc67e154a..1acee8120b 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/ScaleWidthFilterLoaderTest.php @@ -29,14 +29,14 @@ protected function setUp(): void $this->loader->setInnerLoader($this->innerLoader); } - public function testLoadFail() + public function testLoadFail(): void { $this->expectException(InvalidArgumentException::class); $this->loader->load(self::createStub(ImageInterface::class, [])); } - public function testLoad() + public function testLoad(): void { $width = 123; $image = self::createStub(ImageInterface::class); diff --git a/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php b/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php index 16b18031ad..4427550f80 100644 --- a/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php +++ b/tests/bundle/Core/Imagine/Filter/Loader/SwirlFilterLoaderTest.php @@ -28,7 +28,7 @@ protected function setUp(): void $this->loader = new SwirlFilterLoader($this->filter); } - public function testLoadNoOption() + public function testLoadNoOption(): void { $image = self::createStub(ImageInterface::class); $this->filter @@ -45,7 +45,7 @@ public function testLoadNoOption() } #[DataProvider('loadWithOptionProvider')] - public function testLoadWithOption($degrees) + public function testLoadWithOption($degrees): void { $image = self::createStub(ImageInterface::class); $this->filter @@ -62,7 +62,10 @@ public function testLoadWithOption($degrees) self::assertSame($image, $this->loader->load($image, [$degrees])); } - public static function loadWithOptionProvider() + /** + * @return array + */ + public static function loadWithOptionProvider(): array { return [ [10], diff --git a/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php b/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php index 1318e8d544..0588c664a4 100644 --- a/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php +++ b/tests/bundle/Core/Imagine/Filter/UnsupportedFilterTest.php @@ -13,7 +13,7 @@ class UnsupportedFilterTest extends AbstractFilterTest { - public function testLoad() + public function testLoad(): void { $this->expectException(NotSupportedException::class); diff --git a/tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php b/tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php index dac3ff147d..f7c4da28f7 100644 --- a/tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php +++ b/tests/bundle/Core/Imagine/ImageAsset/AliasGeneratorTest.php @@ -46,7 +46,7 @@ protected function setUp(): void ); } - public function testGetVariationOfImageAsset() + public function testGetVariationOfImageAsset(): void { $assetField = new Field([ 'value' => new ImageAsset\Value(486), @@ -96,7 +96,7 @@ public function testGetVariationOfImageAsset() self::assertEquals($expectedVariation, $actualVariation); } - public function testGetVariationOfNonImageAsset() + public function testGetVariationOfNonImageAsset(): void { $imageField = new Field([ 'value' => new Image\Value([ @@ -134,7 +134,7 @@ public function testGetVariationOfNonImageAsset() self::assertEquals($expectedVariation, $actualVariation); } - public function testSupport() + public function testSupport(): void { self::assertTrue($this->aliasGenerator->supportsValue(new ImageAsset\Value())); self::assertFalse($this->aliasGenerator->supportsValue(new Image\Value())); diff --git a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php index fe77f6d860..d94600895c 100644 --- a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorConfiguratorTest.php @@ -24,7 +24,7 @@ class PlaceholderAliasGeneratorConfiguratorTest extends TestCase 'c' => 'C', ]; - public function testConfigure() + public function testConfigure(): void { $configResolver = $this->createMock(ConfigResolverInterface::class); $configResolver diff --git a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php index 11faad99ad..c051b972b2 100644 --- a/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderAliasGeneratorTest.php @@ -65,7 +65,7 @@ protected function setUp(): void ); } - public function testGetVariationWrongValue() + public function testGetVariationWrongValue(): void { $this->expectException(\InvalidArgumentException::class); @@ -82,7 +82,7 @@ public function testGetVariationWrongValue() } #[DataProvider('getVariationProvider')] - public function testGetVariationSkipsPlaceholderGeneration(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) + public function testGetVariationSkipsPlaceholderGeneration(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters): void { $expectedVariation = self::createStub(ImageVariation::class); @@ -113,7 +113,7 @@ public function testGetVariationSkipsPlaceholderGeneration(Field $field, APIVers } #[DataProvider('getVariationProvider')] - public function testGetVariationOriginalFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) + public function testGetVariationOriginalFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters): void { $expectedVariation = self::createStub(ImageVariation::class); @@ -144,7 +144,7 @@ public function testGetVariationOriginalFound(Field $field, APIVersionInfo $vers } #[DataProvider('getVariationProvider')] - public function testGetVariationOriginalNotFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters) + public function testGetVariationOriginalNotFound(Field $field, APIVersionInfo $versionInfo, string $variationName, array $parameters): void { $placeholderPath = '/tmp/placeholder.jpg'; $binaryCreateStruct = new BinaryFileCreateStruct(); @@ -265,7 +265,7 @@ public function testGetVariationReturnsPlaceholderIfBinaryDataIsNotAvailable( } #[DataProvider('supportsValueProvider')] - public function testSupportsValue(Value $value, bool $isSupported) + public function testSupportsValue(Value $value, bool $isSupported): void { self::assertSame($isSupported, $this->aliasGenerator->supportsValue($value)); } diff --git a/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php b/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php index d027045af6..aa09e5df7a 100644 --- a/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderProvider/GenericProviderTest.php @@ -21,7 +21,7 @@ class GenericProviderTest extends TestCase { #[DataProvider('getPlaceholderDataProvider')] - public function testGetPlaceholder(ImageValue $value, $expectedText, array $options = []) + public function testGetPlaceholder(ImageValue $value, $expectedText, array $options = []): void { $font = $this->createMock(AbstractFont::class); @@ -69,7 +69,10 @@ public function testGetPlaceholder(ImageValue $value, $expectedText, array $opti $provider->getPlaceholder($value, $options); } - public static function getPlaceholderDataProvider() + /** + * @return array + */ + public static function getPlaceholderDataProvider(): array { return [ [ diff --git a/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php b/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php index 2366bc6894..b4d40cbf1f 100644 --- a/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php +++ b/tests/bundle/Core/Imagine/PlaceholderProviderRegistryTest.php @@ -20,7 +20,7 @@ class PlaceholderProviderRegistryTest extends TestCase private const BAR = 'bar'; #[Depends('testGetProviderKnown')] - public function testConstructor() + public function testConstructor(): void { $providers = [ self::FOO => $this->getPlaceholderProviderMock(), @@ -44,7 +44,7 @@ public function testAddProvider(): void self::assertSame($provider, $registry->getProvider(self::FOO)); } - public function testSupports() + public function testSupports(): void { $registry = new PlaceholderProviderRegistry([ 'supported' => $this->getPlaceholderProviderMock(), @@ -54,7 +54,7 @@ public function testSupports() self::assertFalse($registry->supports('unsupported')); } - public function testGetProviderKnown() + public function testGetProviderKnown(): void { $provider = $this->getPlaceholderProviderMock(); @@ -65,7 +65,7 @@ public function testGetProviderKnown() self::assertEquals($provider, $registry->getProvider(self::FOO)); } - public function testGetProviderUnknown() + public function testGetProviderUnknown(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/tests/bundle/Core/Imagine/VariationPathGenerator/AliasDirectoryVariationPathGeneratorTest.php b/tests/bundle/Core/Imagine/VariationPathGenerator/AliasDirectoryVariationPathGeneratorTest.php index fa6ecbec97..45b8288d21 100644 --- a/tests/bundle/Core/Imagine/VariationPathGenerator/AliasDirectoryVariationPathGeneratorTest.php +++ b/tests/bundle/Core/Imagine/VariationPathGenerator/AliasDirectoryVariationPathGeneratorTest.php @@ -12,7 +12,7 @@ class AliasDirectoryVariationPathGeneratorTest extends TestCase { - public function testGetVariationPath() + public function testGetVariationPath(): void { $generator = new AliasDirectoryVariationPathGenerator(); diff --git a/tests/bundle/Core/Imagine/VariationPathGenerator/OriginalDirectoryVariationPathGeneratorTest.php b/tests/bundle/Core/Imagine/VariationPathGenerator/OriginalDirectoryVariationPathGeneratorTest.php index 88edae38c2..5c3dcc9f87 100644 --- a/tests/bundle/Core/Imagine/VariationPathGenerator/OriginalDirectoryVariationPathGeneratorTest.php +++ b/tests/bundle/Core/Imagine/VariationPathGenerator/OriginalDirectoryVariationPathGeneratorTest.php @@ -12,7 +12,7 @@ class OriginalDirectoryVariationPathGeneratorTest extends TestCase { - public function testGetVariationPath() + public function testGetVariationPath(): void { $generator = new OriginalDirectoryVariationPathGenerator(); self::assertEquals( diff --git a/tests/bundle/Core/Routing/UrlAliasRouterTest.php b/tests/bundle/Core/Routing/UrlAliasRouterTest.php index e3eb1d401e..4445c4a705 100644 --- a/tests/bundle/Core/Routing/UrlAliasRouterTest.php +++ b/tests/bundle/Core/Routing/UrlAliasRouterTest.php @@ -61,7 +61,7 @@ protected function resetConfigResolver() $this->router->setConfigResolver($this->configResolver); } - public function testMatchRequestDeactivatedUrlAlias() + public function testMatchRequestDeactivatedUrlAlias(): void { $this->expectException(ResourceNotFoundException::class); @@ -79,7 +79,7 @@ public function testMatchRequestDeactivatedUrlAlias() $this->router->matchRequest($this->getRequestByPathInfo('/foo')); } - public function testMatchRequestWithRootLocation() + public function testMatchRequestWithRootLocation(): void { $rootLocationId = 123; $this->resetConfigResolver(); @@ -135,7 +135,7 @@ public function testMatchRequestWithRootLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationCaseRedirectWithRootLocation() + public function testMatchRequestLocationCaseRedirectWithRootLocation(): void { $rootLocationId = 123; $this->resetConfigResolver(); @@ -193,7 +193,7 @@ public function testMatchRequestLocationCaseRedirectWithRootLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationCaseRedirectWithRootRootLocation() + public function testMatchRequestLocationCaseRedirectWithRootRootLocation(): void { $rootLocationId = 123; $this->resetConfigResolver(); @@ -251,7 +251,7 @@ public function testMatchRequestLocationCaseRedirectWithRootRootLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestResourceCaseRedirectWithRootLocation() + public function testMatchRequestResourceCaseRedirectWithRootLocation(): void { $rootLocationId = 123; $this->resetConfigResolver(); @@ -299,7 +299,7 @@ public function testMatchRequestResourceCaseRedirectWithRootLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestVirtualCaseRedirectWithRootLocation() + public function testMatchRequestVirtualCaseRedirectWithRootLocation(): void { $rootLocationId = 123; $this->resetConfigResolver(); @@ -345,7 +345,7 @@ public function testMatchRequestVirtualCaseRedirectWithRootLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestWithRootLocationAndExclusion() + public function testMatchRequestWithRootLocationAndExclusion(): void { $this->resetConfigResolver(); $this->configResolver diff --git a/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php b/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php index 38fafaad75..39b2016219 100644 --- a/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php +++ b/tests/bundle/Core/SiteAccess/MatcherBuilderTest.php @@ -27,7 +27,7 @@ protected function setUp(): void $this->siteAccessMatcherRegistry = $this->createMock(SiteAccessMatcherRegistryInterface::class); } - public function testBuildMatcherNoService() + public function testBuildMatcherNoService(): void { $this->siteAccessMatcherRegistry ->expects(self::never()) @@ -38,7 +38,7 @@ public function testBuildMatcherNoService() self::assertInstanceOf(get_class($matcher), $builtMatcher); } - public function testBuildMatcherServiceWrongInterface() + public function testBuildMatcherServiceWrongInterface(): void { $this->expectException(\TypeError::class); @@ -52,7 +52,7 @@ public function testBuildMatcherServiceWrongInterface() $matcherBuilder->buildMatcher("@$serviceId", [], new SimplifiedRequest()); } - public function testBuildMatcherService() + public function testBuildMatcherService(): void { $serviceId = 'foo'; $matcher = $this->createMock(CoreMatcher::class); diff --git a/tests/bundle/Core/URLChecker/URLCheckerTest.php b/tests/bundle/Core/URLChecker/URLCheckerTest.php index e0d6be90ec..cb0aa4709f 100644 --- a/tests/bundle/Core/URLChecker/URLCheckerTest.php +++ b/tests/bundle/Core/URLChecker/URLCheckerTest.php @@ -43,7 +43,7 @@ protected function setUp(): void $this->logger = $this->createMock(LoggerInterface::class); } - public function testCheck() + public function testCheck(): void { $query = new URLQuery(); $groups = $this->createGroupedUrls(['http', 'https']); @@ -74,7 +74,7 @@ public function testCheck() $urlChecker->check($query); } - public function testCheckUnsupported() + public function testCheckUnsupported(): void { $query = new URLQuery(); $groups = $this->createGroupedUrls(['http', 'https'], 10); diff --git a/tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php b/tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php index 01cda5dd7e..ab50e09cc4 100644 --- a/tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php +++ b/tests/bundle/Debug/Collector/IbexaCoreCollectorTest.php @@ -25,7 +25,7 @@ protected function setUp(): void $this->mainCollector = new IbexaCoreCollector(); } - public function testAddGetCollector() + public function testAddGetCollector(): void { $collector = $this->getDataCollectorMock(); $name = 'foobar'; @@ -38,7 +38,7 @@ public function testAddGetCollector() self::assertSame($collector, $this->mainCollector->getCollector($name)); } - public function testGetInvalidCollector() + public function testGetInvalidCollector(): void { $this->expectException(\InvalidArgumentException::class); @@ -47,7 +47,7 @@ public function testGetInvalidCollector() self::assertSame($collector, $this->mainCollector->getCollector('foo')); } - public function testGetAllCollectors() + public function testGetAllCollectors(): void { $collector1 = $this->getDataCollectorMock(); $nameCollector1 = 'collector1'; @@ -74,7 +74,7 @@ public function testGetAllCollectors() self::assertSame($allCollectors, $this->mainCollector->getAllCollectors()); } - public function testGetToolbarTemplateNothing() + public function testGetToolbarTemplateNothing(): void { $collector = $this->getDataCollectorMock(); $name = 'foobar'; @@ -86,7 +86,7 @@ public function testGetToolbarTemplateNothing() self::assertNull($this->mainCollector->getToolbarTemplate($name)); } - public function testGetToolbarTemplate() + public function testGetToolbarTemplate(): void { $collector = $this->getDataCollectorMock(); $name = 'foobar'; @@ -100,7 +100,7 @@ public function testGetToolbarTemplate() self::assertSame($toolbarTemplate, $this->mainCollector->getToolbarTemplate($name)); } - public function testGetPanelTemplateNothing() + public function testGetPanelTemplateNothing(): void { $collector = $this->getDataCollectorMock(); $name = 'foobar'; @@ -112,7 +112,7 @@ public function testGetPanelTemplateNothing() self::assertNull($this->mainCollector->getPanelTemplate($name)); } - public function testGetPanelTemplate() + public function testGetPanelTemplate(): void { $collector = $this->getDataCollectorMock(); $name = 'foobar'; @@ -126,7 +126,7 @@ public function testGetPanelTemplate() self::assertSame($panelTemplate, $this->mainCollector->getPanelTemplate($name)); } - public function testCollect() + public function testCollect(): void { $collector1 = $this->getDataCollectorMock(); $nameCollector1 = 'collector1'; diff --git a/tests/bundle/Debug/DependencyInjection/Compiler/DataCollectorPassTest.php b/tests/bundle/Debug/DependencyInjection/Compiler/DataCollectorPassTest.php index ea85c51778..800657e474 100644 --- a/tests/bundle/Debug/DependencyInjection/Compiler/DataCollectorPassTest.php +++ b/tests/bundle/Debug/DependencyInjection/Compiler/DataCollectorPassTest.php @@ -27,7 +27,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new DataCollectorPass()); } - public function testAddCollector() + public function testAddCollector(): void { $defA = new Definition(); $defA->addTag('ibexa.debug.data_collector', [ diff --git a/tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php b/tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php index ea3f5356b2..984e4f1d9c 100644 --- a/tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php +++ b/tests/bundle/IO/DependencyInjection/IbexaIOExtensionTest.php @@ -31,7 +31,7 @@ protected function getContainerExtensions(): array return [$extension]; } - public function testParametersWithoutConfiguration() + public function testParametersWithoutConfiguration(): void { $this->load(); @@ -39,7 +39,7 @@ public function testParametersWithoutConfiguration() $this->assertContainerBuilderHasParameter('ibexa.io.binarydata_handlers', []); } - public function testParametersWithMetadataHandler() + public function testParametersWithMetadataHandler(): void { $config = [ 'metadata_handlers' => [ @@ -55,7 +55,7 @@ public function testParametersWithMetadataHandler() ); } - public function testParametersWithBinarydataHandler() + public function testParametersWithBinarydataHandler(): void { $config = [ 'binarydata_handlers' => [ diff --git a/tests/integration/Core/Repository/BookmarkServiceTest.php b/tests/integration/Core/Repository/BookmarkServiceTest.php index 15ebc005d8..450720074e 100644 --- a/tests/integration/Core/Repository/BookmarkServiceTest.php +++ b/tests/integration/Core/Repository/BookmarkServiceTest.php @@ -30,7 +30,7 @@ class BookmarkServiceTest extends BaseTestCase public const LOCATION_ID_BOOKMARKED = 5; public const LOCATION_ID_NOT_BOOKMARKED = 44; - public function testIsBookmarked() + public function testIsBookmarked(): void { $repository = $this->getRepository(); @@ -42,7 +42,7 @@ public function testIsBookmarked() self::assertTrue($isBookmarked); } - public function testIsNotBookmarked() + public function testIsNotBookmarked(): void { $repository = $this->getRepository(); @@ -54,7 +54,7 @@ public function testIsNotBookmarked() self::assertFalse($isBookmarked); } - public function testCreateBookmark() + public function testCreateBookmark(): void { $repository = $this->getRepository(); @@ -73,7 +73,7 @@ public function testCreateBookmark() } #[Depends('testCreateBookmark')] - public function testCreateBookmarkThrowsInvalidArgumentException() + public function testCreateBookmarkThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -88,7 +88,7 @@ public function testCreateBookmarkThrowsInvalidArgumentException() /* END: Use Case */ } - public function testDeleteBookmark() + public function testDeleteBookmark(): void { $repository = $this->getRepository(); @@ -108,7 +108,7 @@ public function testDeleteBookmark() } #[Depends('testDeleteBookmark')] - public function testDeleteBookmarkThrowsInvalidArgumentException() + public function testDeleteBookmarkThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -123,7 +123,7 @@ public function testDeleteBookmarkThrowsInvalidArgumentException() /* END: Use Case */ } - public function testLoadBookmarks() + public function testLoadBookmarks(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php index 0cf94ffdfb..c50dfb5249 100644 --- a/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentServiceAuthorizationTest.php @@ -69,7 +69,7 @@ public function setUp(): void * Test for the createContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] - public function testCreateContentThrowsUnauthorizedException() + public function testCreateContentThrowsUnauthorizedException(): void { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -93,7 +93,7 @@ public function testCreateContentThrowsUnauthorizedException() * Test for the createContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testCreateContent')] - public function testCreateContentThrowsUnauthorizedExceptionWithSecondParameter() + public function testCreateContentThrowsUnauthorizedExceptionWithSecondParameter(): void { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -107,7 +107,7 @@ public function testCreateContentThrowsUnauthorizedExceptionWithSecondParameter( * Test for the loadContentInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] - public function testLoadContentInfoThrowsUnauthorizedException() + public function testLoadContentInfoThrowsUnauthorizedException(): void { $contentId = $this->generateId('object', 10); $this->setRestrictedEditorUser(); @@ -123,7 +123,7 @@ public function testLoadContentInfoThrowsUnauthorizedException() * Test for the sudo() method. */ #[Depends('testLoadContentInfoThrowsUnauthorizedException')] - public function testSudo() + public function testSudo(): void { $repository = $this->getRepository(); $contentId = $this->generateId('object', 10); @@ -143,7 +143,7 @@ public function testSudo() * Test for the loadContentInfoList() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfoList')] - public function testLoadContentInfoListSkipsUnauthorizedItems() + public function testLoadContentInfoListSkipsUnauthorizedItems(): void { $contentId = $this->generateId('object', 10); $this->setRestrictedEditorUser(); @@ -155,7 +155,7 @@ public function testLoadContentInfoListSkipsUnauthorizedItems() * Test for the loadContentInfoByRemoteId() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfoByRemoteId')] - public function testLoadContentInfoByRemoteIdThrowsUnauthorizedException() + public function testLoadContentInfoByRemoteIdThrowsUnauthorizedException(): void { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -171,7 +171,7 @@ public function testLoadContentInfoByRemoteIdThrowsUnauthorizedException() * Test for the loadVersionInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfo')] - public function testLoadVersionInfoThrowsUnauthorizedException() + public function testLoadVersionInfoThrowsUnauthorizedException(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -187,7 +187,7 @@ public function testLoadVersionInfoThrowsUnauthorizedException() * Test for the loadVersionInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoWithSecondParameter')] - public function testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParameter(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -203,7 +203,7 @@ public function testLoadVersionInfoThrowsUnauthorizedExceptionWithSecondParamete * Test for the loadVersionInfoById() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoById')] - public function testLoadVersionInfoByIdThrowsUnauthorizedException() + public function testLoadVersionInfoByIdThrowsUnauthorizedException(): void { $anonymousUserId = $this->generateId('user', 10); $this->setRestrictedEditorUser(); @@ -218,7 +218,7 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedException() * Test for the loadVersionInfoById() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoByIdWithSecondParameter')] - public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondParameter(): void { $anonymousUserId = $this->generateId('user', 10); $this->setRestrictedEditorUser(); @@ -233,7 +233,7 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionWithSecondPara * Test for the loadVersionInfoById() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersionInfoById')] - public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft() + public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft(): void { $contentDraft = $this->createContentDraftVersion1(); @@ -253,7 +253,7 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionForFirstDraft( * Test for the loadContentByContentInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfo')] - public function testLoadContentByContentInfoThrowsUnauthorizedException() + public function testLoadContentByContentInfoThrowsUnauthorizedException(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -269,7 +269,7 @@ public function testLoadContentByContentInfoThrowsUnauthorizedException() * Test for the loadContentByContentInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfoWithLanguageParameters')] - public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecondParameter(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -285,7 +285,7 @@ public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithSecon * Test for the loadContentByContentInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByContentInfoWithVersionNumberParameter')] - public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThirdParameter() + public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThirdParameter(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -301,7 +301,7 @@ public function testLoadContentByContentInfoThrowsUnauthorizedExceptionWithThird * Test for the loadContentByVersionInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByVersionInfo')] - public function testLoadContentByVersionInfoThrowsUnauthorizedException() + public function testLoadContentByVersionInfoThrowsUnauthorizedException(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -319,7 +319,7 @@ public function testLoadContentByVersionInfoThrowsUnauthorizedException() * Test for the loadContentByVersionInfo() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByVersionInfoWithSecondParameter')] - public function testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecondParameter(): void { $contentInfo = $this->getContentInfoForAnonymousUser(); @@ -337,7 +337,7 @@ public function testLoadContentByVersionInfoThrowsUnauthorizedExceptionWithSecon * Test for the loadContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] - public function testLoadContentThrowsUnauthorizedException() + public function testLoadContentThrowsUnauthorizedException(): void { $anonymousUserId = $this->generateId('user', 10); $this->setRestrictedEditorUser(); @@ -352,7 +352,7 @@ public function testLoadContentThrowsUnauthorizedException() * Test for the loadContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentWithPrioritizedLanguages')] - public function testLoadContentThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadContentThrowsUnauthorizedExceptionWithSecondParameter(): void { $anonymousUserId = $this->generateId('user', 10); $this->setRestrictedEditorUser(); @@ -367,7 +367,7 @@ public function testLoadContentThrowsUnauthorizedExceptionWithSecondParameter() * Test for the loadContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentWithThirdParameter')] - public function testLoadContentThrowsUnauthorizedExceptionWithThirdParameter() + public function testLoadContentThrowsUnauthorizedExceptionWithThirdParameter(): void { $anonymousUserId = $this->generateId('user', 10); $this->setRestrictedEditorUser(); @@ -382,7 +382,7 @@ public function testLoadContentThrowsUnauthorizedExceptionWithThirdParameter() * Test for the loadContent() method on a draft. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] - public function testLoadContentThrowsUnauthorizedExceptionOnDrafts() + public function testLoadContentThrowsUnauthorizedExceptionOnDrafts(): void { $editorUser = $this->createUserVersion1(); @@ -407,7 +407,7 @@ public function testLoadContentThrowsUnauthorizedExceptionOnDrafts() * This test the version permission on loading archived versions */ #[DependsExternal(ContentServiceTest::class, 'testLoadContent')] - public function testLoadContentThrowsUnauthorizedExceptionsOnArchives() + public function testLoadContentThrowsUnauthorizedExceptionsOnArchives(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -449,7 +449,7 @@ public function testLoadContentThrowsUnauthorizedExceptionsOnArchives() * Test for the loadContentByRemoteId() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteId')] - public function testLoadContentByRemoteIdThrowsUnauthorizedException() + public function testLoadContentByRemoteIdThrowsUnauthorizedException(): void { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -465,7 +465,7 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedException() * Test for the loadContentByRemoteId() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteIdWithSecondParameter')] - public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondParameter() + public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondParameter(): void { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -481,7 +481,7 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithSecondPa * Test for the loadContentByRemoteId() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentByRemoteIdWithThirdParameter')] - public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdParameter() + public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdParameter(): void { $anonymousRemoteId = 'faaeb9be3bd98ed09f606fc16d144eca'; @@ -497,7 +497,7 @@ public function testLoadContentByRemoteIdThrowsUnauthorizedExceptionWithThirdPar * Test for the updateContentMetadata() method. */ #[DependsExternal(ContentServiceTest::class, 'testUpdateContentMetadata')] - public function testUpdateContentMetadataThrowsUnauthorizedException() + public function testUpdateContentMetadataThrowsUnauthorizedException(): void { $content = $this->createContentVersion1(); @@ -526,7 +526,7 @@ public function testUpdateContentMetadataThrowsUnauthorizedException() * Test for the deleteContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testDeleteContent')] - public function testDeleteContentThrowsUnauthorizedException() + public function testDeleteContentThrowsUnauthorizedException(): void { $contentVersion2 = $this->createContentVersion2(); @@ -588,7 +588,7 @@ public function testDeleteContentWithLanguageLimitation(): void * Test for the createContentDraft() method. */ #[DependsExternal(ContentServiceTest::class, 'testCreateContentDraft')] - public function testCreateContentDraftThrowsUnauthorizedException() + public function testCreateContentDraftThrowsUnauthorizedException(): void { $content = $this->createContentVersion1(); @@ -606,7 +606,7 @@ public function testCreateContentDraftThrowsUnauthorizedException() * Test for the createContentDraft() method. */ #[DependsExternal(ContentServiceTest::class, 'testCreateContentDraftWithSecondParameter')] - public function testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParameter() + public function testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParameter(): void { $content = $this->createContentVersion1(); @@ -624,7 +624,7 @@ public function testCreateContentDraftThrowsUnauthorizedExceptionWithSecondParam /** * Test for the countContentDrafts() method. */ - public function testCountContentDraftsReturnZero() + public function testCountContentDraftsReturnZero(): void { $this->permissionResolver->setCurrentUserReference($this->anonymousUser); @@ -657,7 +657,7 @@ public function testLoadContentDraftListReturnsEmptyListForUserWithoutVersionRea * Test for the updateContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testUpdateContent')] - public function testUpdateContentThrowsUnauthorizedException() + public function testUpdateContentThrowsUnauthorizedException(): void { $draftVersion2 = $this->createContentDraftVersion2(); @@ -683,7 +683,7 @@ public function testUpdateContentThrowsUnauthorizedException() * Test for the publishVersion() method. */ #[DependsExternal(ContentServiceTest::class, 'testPublishVersion')] - public function testPublishVersionThrowsUnauthorizedException() + public function testPublishVersionThrowsUnauthorizedException(): void { $draft = $this->createContentDraftVersion1(); @@ -699,7 +699,7 @@ public function testPublishVersionThrowsUnauthorizedException() * Test for the deleteVersion() method. */ #[DependsExternal(ContentServiceTest::class, 'testDeleteVersion')] - public function testDeleteVersionThrowsUnauthorizedException() + public function testDeleteVersionThrowsUnauthorizedException(): void { $draft = $this->createContentDraftVersion1(); @@ -715,7 +715,7 @@ public function testDeleteVersionThrowsUnauthorizedException() * Test for the loadVersions() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadVersions')] - public function testLoadVersionsThrowsUnauthorizedException() + public function testLoadVersionsThrowsUnauthorizedException(): void { $contentVersion2 = $this->createContentVersion2(); @@ -733,7 +733,7 @@ public function testLoadVersionsThrowsUnauthorizedException() * Test for the copyContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testCopyContent')] - public function testCopyContentThrowsUnauthorizedException() + public function testCopyContentThrowsUnauthorizedException(): void { $parentLocationId = $this->generateId('location', 52); @@ -767,7 +767,7 @@ public function testCopyContentThrowsUnauthorizedException() * Test for the copyContent() method. */ #[DependsExternal(ContentServiceTest::class, 'testCopyContentWithGivenVersion')] - public function testCopyContentThrowsUnauthorizedExceptionWithGivenVersion() + public function testCopyContentThrowsUnauthorizedExceptionWithGivenVersion(): void { $parentLocationId = $this->generateId('location', 52); @@ -838,7 +838,7 @@ public function testLoadRelationsForDraftVersionReturnsEmptyListForUserWithoutVe * Test for the loadReverseRelations() method. */ #[DependsExternal(ContentServiceTest::class, 'testLoadReverseRelations')] - public function testLoadReverseRelationsThrowsUnauthorizedException() + public function testLoadReverseRelationsThrowsUnauthorizedException(): void { $mediaEditor = $this->createMediaUserVersion1(); @@ -858,7 +858,7 @@ public function testLoadReverseRelationsThrowsUnauthorizedException() * Test for the addRelation() method. */ #[DependsExternal(ContentServiceTest::class, 'testAddRelation')] - public function testAddRelationThrowsUnauthorizedException() + public function testAddRelationThrowsUnauthorizedException(): void { $mediaRemoteId = 'a6e35cbcb7cd6ae4b691f3eee30cd262'; @@ -883,7 +883,7 @@ public function testAddRelationThrowsUnauthorizedException() * Test for the deleteRelation() method. */ #[DependsExternal(ContentServiceTest::class, 'testDeleteRelation')] - public function testDeleteRelationThrowsUnauthorizedException() + public function testDeleteRelationThrowsUnauthorizedException(): void { $mediaRemoteId = 'a6e35cbcb7cd6ae4b691f3eee30cd262'; $demoDesignRemoteId = '8b8b22fe3c6061ed500fbd2b377b885f'; @@ -940,7 +940,7 @@ private function createAnonymousWithEditorRole() * would instead expose the non-readable related object(s) as unauthorized list items. */ #[DependsExternal(ContentServiceTest::class, 'testAddRelation')] - public function testLoadRelationsWithUnauthorizedRelations() + public function testLoadRelationsWithUnauthorizedRelations(): void { $mainLanguage = 'eng-GB'; @@ -1116,7 +1116,7 @@ public function testLoadRelationsWithUnauthorizedRelations() /** * Test copying Content to the authorized Location (limited by policies). */ - public function testCopyContentToAuthorizedLocation() + public function testCopyContentToAuthorizedLocation(): void { $locationService = $this->repository->getLocationService(); $roleService = $this->repository->getRoleService(); @@ -1160,7 +1160,7 @@ public function testCopyContentToAuthorizedLocation() /** * Test copying Content to the authorized Location (limited by policies). */ - public function testCopyContentToAuthorizedLocationWithSubtreeLimitation() + public function testCopyContentToAuthorizedLocationWithSubtreeLimitation(): void { $locationService = $this->repository->getLocationService(); diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index 67dcf8a63d..f6e75a0b23 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -99,7 +99,7 @@ public function setUp(): void #[DependsExternal(ContentTypeServiceTest::class, 'testLoadContentTypeByIdentifier')] #[Group('user')] #[Group('field-type')] - public function testNewContentCreateStruct() + public function testNewContentCreateStruct(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); $contentType = $contentTypeService->loadContentTypeByIdentifier(self::FORUM_IDENTIFIER); @@ -210,7 +210,7 @@ public function testCreateContentSetsContentInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentSetsContentInfo')] - public function testCreateContentSetsExpectedContentInfo($content) + public function testCreateContentSetsExpectedContentInfo($content): void { $permissionResolver = $this->getRepository()->getPermissionResolver(); @@ -264,7 +264,7 @@ public function testCreateContentSetsVersionInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentSetsVersionInfo')] - public function testCreateContentSetsExpectedVersionInfo($content) + public function testCreateContentSetsExpectedVersionInfo($content): void { $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -293,7 +293,7 @@ public function testCreateContentSetsExpectedVersionInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContent')] - public function testCreateContentSetsExpectedContentType($content) + public function testCreateContentSetsExpectedContentType($content): void { $contentType = $content->getContentType(); @@ -342,7 +342,7 @@ public function testCreateContentWithContentTypeDefaultOptions(): void * Test for the createContent() method. */ #[Depends('testCreateContent')] - public function testCreateContentThrowsInvalidArgumentException() + public function testCreateContentThrowsInvalidArgumentException(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -371,7 +371,7 @@ public function testCreateContentThrowsInvalidArgumentException() * Test for the createContent() method. */ #[Depends('testCreateContent')] - public function testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() + public function testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAccept(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -389,7 +389,7 @@ public function testCreateContentThrowsInvalidArgumentExceptionOnFieldTypeNotAcc * Test for the createContent() method. */ #[Depends('testCreateContent')] - public function testCreateContentThrowsContentFieldValidationException() + public function testCreateContentThrowsContentFieldValidationException(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -410,7 +410,7 @@ public function testCreateContentThrowsContentFieldValidationException() * Test for the createContent() method. */ #[Depends('testCreateContent')] - public function testCreateContentRequiredFieldMissing() + public function testCreateContentRequiredFieldMissing(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); $contentType = $contentTypeService->loadContentTypeByIdentifier(self::FORUM_IDENTIFIER); @@ -433,7 +433,7 @@ public function testCreateContentRequiredFieldMissing() */ #[Depends('testCreateContent')] #[Group('user')] - public function testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately() + public function testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately(): void { $this->createContentDraftVersion1(); @@ -447,7 +447,7 @@ public function testCreateContentWithLocationCreateParameterDoesNotCreateLocatio * Test for the createContent() method. */ #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] - public function testCreateContentThrowsInvalidArgumentExceptionWithLocationCreateParameter() + public function testCreateContentThrowsInvalidArgumentExceptionWithLocationCreateParameter(): void { $parentLocationId = $this->generateId('location', 56); // $parentLocationId is a valid location ID @@ -519,7 +519,7 @@ public function testLoadContentInfo() * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ #[Depends('testLoadContentInfo')] - public function testLoadContentInfoSetsExpectedContentInfo(ContentInfo $contentInfo) + public function testLoadContentInfoSetsExpectedContentInfo(ContentInfo $contentInfo): void { $this->assertPropertiesCorrectUnsorted( $this->getExpectedMediaContentInfoProperties(), @@ -591,7 +591,7 @@ public function testLoadContentInfoSetsExpectedOwnerProxy(ContentInfo $contentIn * Test for the loadContentInfo() method. */ #[Depends('testLoadContentInfo')] - public function testLoadContentInfoThrowsNotFoundException() + public function testLoadContentInfoThrowsNotFoundException(): void { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -603,7 +603,7 @@ public function testLoadContentInfoThrowsNotFoundException() /** * Test for the loadContentInfoList() method. */ - public function testLoadContentInfoList() + public function testLoadContentInfoList(): void { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); $list = iterator_to_array($this->contentService->loadContentInfoList([$mediaFolderId])); @@ -620,7 +620,7 @@ public function testLoadContentInfoList() * Test for the loadContentInfoList() method. */ #[Depends('testLoadContentInfoList')] - public function testLoadContentInfoListSkipsNotFoundItems() + public function testLoadContentInfoListSkipsNotFoundItems(): void { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); $list = $this->contentService->loadContentInfoList([$nonExistentContentId]); @@ -649,7 +649,7 @@ public function testLoadContentInfoByRemoteId() * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ #[Depends('testLoadContentInfoByRemoteId')] - public function testLoadContentInfoByRemoteIdSetsExpectedContentInfo(ContentInfo $contentInfo) + public function testLoadContentInfoByRemoteIdSetsExpectedContentInfo(ContentInfo $contentInfo): void { $this->assertPropertiesCorrectUnsorted( [ @@ -675,7 +675,7 @@ public function testLoadContentInfoByRemoteIdSetsExpectedContentInfo(ContentInfo * Test for the loadContentInfoByRemoteId() method. */ #[Depends('testLoadContentInfoByRemoteId')] - public function testLoadContentInfoByRemoteIdThrowsNotFoundException() + public function testLoadContentInfoByRemoteIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -687,7 +687,7 @@ public function testLoadContentInfoByRemoteIdThrowsNotFoundException() */ #[Depends('testLoadContentInfo')] #[Group('user')] - public function testLoadVersionInfo() + public function testLoadVersionInfo(): void { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); // $mediaFolderId contains the ID of the "Media" folder @@ -731,7 +731,7 @@ public function testLoadVersionInfoById() * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ #[Depends('testLoadVersionInfoById')] - public function testLoadVersionInfoByIdSetsExpectedVersionInfo(VersionInfo $versionInfo) + public function testLoadVersionInfoByIdSetsExpectedVersionInfo(VersionInfo $versionInfo): void { $this->assertPropertiesCorrect( [ @@ -799,7 +799,7 @@ public function testLoadVersionInfoByIdGetLanguages(VersionInfo $versionInfo): v * Test for the loadVersionInfoById() method. */ #[Depends('testLoadVersionInfoById')] - public function testLoadVersionInfoByIdThrowsNotFoundException() + public function testLoadVersionInfoByIdThrowsNotFoundException(): void { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -812,7 +812,7 @@ public function testLoadVersionInfoByIdThrowsNotFoundException() * Test for the loadContentByContentInfo() method. */ #[Depends('testLoadContentInfo')] - public function testLoadContentByContentInfo() + public function testLoadContentByContentInfo(): void { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); // $mediaFolderId contains the ID of the "Media" folder @@ -833,7 +833,7 @@ public function testLoadContentByContentInfo() * Test for the loadContentByVersionInfo() method. */ #[Depends('testLoadVersionInfo')] - public function testLoadContentByVersionInfo() + public function testLoadContentByVersionInfo(): void { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); // $mediaFolderId contains the ID of the "Media" folder @@ -858,7 +858,7 @@ public function testLoadContentByVersionInfo() */ #[Group('user')] #[Group('field-type')] - public function testLoadContent() + public function testLoadContent(): void { $mediaFolderId = $this->generateId('object', self::MEDIA_CONTENT_ID); // $mediaFolderId contains the ID of the "Media" folder @@ -876,7 +876,7 @@ public function testLoadContent() * Test for the loadContent() method. */ #[Depends('testLoadContent')] - public function testLoadContentThrowsNotFoundException() + public function testLoadContentThrowsNotFoundException(): void { $nonExistentContentId = $this->generateId('object', self::DB_INT_MAX); @@ -890,7 +890,7 @@ public function testLoadContentThrowsNotFoundException() * * @return array */ - public static function contentRemoteIdVersionLanguageProvider() + public static function contentRemoteIdVersionLanguageProvider(): array { return [ ['f5c88a2209584891056f987fd965b0ba', null, null], @@ -914,7 +914,7 @@ public static function contentRemoteIdVersionLanguageProvider() * @param int $versionNo */ #[DataProvider('contentRemoteIdVersionLanguageProvider')] - public function testLoadContentByRemoteId($remoteId, $languages, $versionNo) + public function testLoadContentByRemoteId($remoteId, $languages, $versionNo): void { $content = $this->contentService->loadContentByRemoteId($remoteId, $languages, $versionNo); @@ -934,7 +934,7 @@ public function testLoadContentByRemoteId($remoteId, $languages, $versionNo) * Test for the loadContentByRemoteId() method. */ #[Depends('testLoadContentByRemoteId')] - public function testLoadContentByRemoteIdThrowsNotFoundException() + public function testLoadContentByRemoteIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -977,7 +977,7 @@ public function testPublishVersion() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testPublishVersion')] - public function testPublishVersionSetsExpectedContentInfo($content) + public function testPublishVersionSetsExpectedContentInfo($content): void { $userReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1016,7 +1016,7 @@ public function testPublishVersionSetsExpectedContentInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testPublishVersion')] - public function testPublishVersionSetsExpectedVersionInfo($content) + public function testPublishVersionSetsExpectedVersionInfo($content): void { $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1053,7 +1053,7 @@ public function testPublishVersionSetsExpectedVersionInfo($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testPublishVersion')] - public function testPublishVersionSetsExpectedContentType($content) + public function testPublishVersionSetsExpectedContentType($content): void { $contentType = $content->getContentType(); @@ -1097,7 +1097,7 @@ public function testPublishVersionCreatesLocationsDefinedOnCreate(): array * Test for the publishVersion() method. */ #[Depends('testPublishVersionCreatesLocationsDefinedOnCreate')] - public function testCreateContentWithLocationCreateParameterCreatesExpectedLocation(array $testData) + public function testCreateContentWithLocationCreateParameterCreatesExpectedLocation(array $testData): void { /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Location $location */ @@ -1128,7 +1128,7 @@ public function testCreateContentWithLocationCreateParameterCreatesExpectedLocat * Test for the publishVersion() method. */ #[Depends('testPublishVersion')] - public function testPublishVersionThrowsBadStateException() + public function testPublishVersionThrowsBadStateException(): void { $draft = $this->createContentDraftVersion1(); @@ -1144,7 +1144,7 @@ public function testPublishVersionThrowsBadStateException() /** * Test that publishVersion() does not affect publishedDate (assuming previous version exists). */ - public function testPublishVersionDoesNotChangePublishedDate() + public function testPublishVersionDoesNotChangePublishedDate(): void { $publishedContent = $this->createContentVersion1(); @@ -1192,7 +1192,7 @@ public function testCreateContentDraft() /** * Test for the createContentDraft() method with given language for new draft. */ - public function testCreateContentDraftInOtherLanguage() + public function testCreateContentDraftInOtherLanguage(): void { $content = $this->createContentVersion1(); @@ -1218,7 +1218,7 @@ public function testCreateContentDraftInOtherLanguage() */ #[Depends('testPublishVersion')] #[Group('user')] - public function testCreateContentDraftAndLoadAccess() + public function testCreateContentDraftAndLoadAccess(): void { $user = $this->createUserVersion1(); @@ -1240,7 +1240,7 @@ public function testCreateContentDraftAndLoadAccess() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft */ #[Depends('testCreateContentDraft')] - public function testCreateContentDraftSetsExpectedProperties($draft) + public function testCreateContentDraftSetsExpectedProperties($draft): void { self::assertEquals( [ @@ -1260,7 +1260,7 @@ public function testCreateContentDraftSetsExpectedProperties($draft) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft */ #[Depends('testCreateContentDraft')] - public function testCreateContentDraftSetsContentInfo($draft) + public function testCreateContentDraftSetsContentInfo($draft): void { $contentInfo = $draft->contentInfo; $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1293,7 +1293,7 @@ public function testCreateContentDraftSetsContentInfo($draft) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $draft */ #[Depends('testCreateContentDraft')] - public function testCreateContentDraftSetsVersionInfo($draft) + public function testCreateContentDraftSetsVersionInfo($draft): void { $versionInfo = $draft->getVersionInfo(); $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1326,7 +1326,7 @@ public function testCreateContentDraftSetsVersionInfo($draft) */ #[Depends('testCreateContentDraft')] #[Depends('testLoadVersionInfo')] - public function testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion($draft) + public function testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion($draft): void { $content = $this->createContentVersion1(); @@ -1344,7 +1344,7 @@ public function testCreateContentDraftLoadVersionInfoStillLoadsPublishedVersion( */ #[Depends('testLoadContent')] #[Depends('testCreateContentDraft')] - public function testCreateContentDraftLoadContentStillLoadsPublishedVersion() + public function testCreateContentDraftLoadContentStillLoadsPublishedVersion(): void { $content = $this->createContentVersion1(); @@ -1362,7 +1362,7 @@ public function testCreateContentDraftLoadContentStillLoadsPublishedVersion() */ #[Depends('testLoadContentByRemoteId')] #[Depends('testCreateContentDraft')] - public function testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVersion() + public function testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVersion(): void { $content = $this->createContentVersion1(); @@ -1380,7 +1380,7 @@ public function testCreateContentDraftLoadContentByRemoteIdStillLoadsPublishedVe */ #[Depends('testLoadContentByContentInfo')] #[Depends('testCreateContentDraft')] - public function testCreateContentDraftLoadContentByContentInfoStillLoadsPublishedVersion() + public function testCreateContentDraftLoadContentByContentInfoStillLoadsPublishedVersion(): void { $content = $this->createContentVersion1(); @@ -1397,7 +1397,7 @@ public function testCreateContentDraftLoadContentByContentInfoStillLoadsPublishe * Test for the newContentUpdateStruct() method. */ #[Group('user')] - public function testNewContentUpdateStruct() + public function testNewContentUpdateStruct(): void { $updateStruct = $this->contentService->newContentUpdateStruct(); @@ -1475,7 +1475,7 @@ public function testUpdateContentWithDifferentUser() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContent')] - public function testUpdateContentSetsExpectedFields($content) + public function testUpdateContentSetsExpectedFields($content): void { $actual = $this->normalizeFields($content->getFields()); @@ -1507,7 +1507,7 @@ public function testUpdateContentSetsExpectedFields($content) * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentThrowsBadStateException() + public function testUpdateContentThrowsBadStateException(): void { $content = $this->createContentVersion1(); @@ -1531,7 +1531,7 @@ public function testUpdateContentThrowsBadStateException() * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoesNotAccept() + public function testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoesNotAccept(): void { $draft = $this->createContentDraftVersion1(); @@ -1552,7 +1552,7 @@ public function testUpdateContentThrowsInvalidArgumentExceptionWhenFieldTypeDoes * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentWhenMandatoryFieldIsEmpty() + public function testUpdateContentWhenMandatoryFieldIsEmpty(): void { $draft = $this->createContentDraftVersion1(); @@ -1576,7 +1576,7 @@ public function testUpdateContentWhenMandatoryFieldIsEmpty() * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentThrowsContentFieldValidationException() + public function testUpdateContentThrowsContentFieldValidationException(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); $contentType = $contentTypeService->loadContentTypeByIdentifier('folder'); @@ -1600,7 +1600,7 @@ public function testUpdateContentThrowsContentFieldValidationException() * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLanguages() + public function testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLanguages(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); $contentType = $contentTypeService->loadContentTypeByIdentifier('folder'); @@ -1639,7 +1639,7 @@ public function testUpdateContentValidatorIgnoresRequiredFieldsOfNotUpdatedLangu * Test for the updateContent() method. */ #[Depends('testUpdateContent')] - public function testUpdateContentWithNotUpdatingMandatoryField() + public function testUpdateContentWithNotUpdatingMandatoryField(): void { $draft = $this->createContentDraftVersion1(); @@ -1671,7 +1671,7 @@ public function testUpdateContentWithNotUpdatingMandatoryField() * Test for the createContentDraft() method. */ #[Depends('testUpdateContent')] - public function testCreateContentDraftWithSecondParameter() + public function testCreateContentDraftWithSecondParameter(): void { $contentVersion2 = $this->createContentVersion2(); @@ -1687,7 +1687,7 @@ public function testCreateContentDraftWithSecondParameter() /** * Test for the createContentDraft() method with third parameter. */ - public function testCreateContentDraftWithThirdParameter() + public function testCreateContentDraftWithThirdParameter(): void { $content = $this->contentService->loadContent(4); $user = $this->createUserVersion1(); @@ -1709,7 +1709,7 @@ public function testCreateContentDraftWithThirdParameter() */ #[Depends('testPublishVersion')] #[Depends('testUpdateContent')] - public function testPublishVersionFromContentDraft() + public function testPublishVersionFromContentDraft(): void { $contentVersion2 = $this->createContentVersion2(); @@ -1734,7 +1734,7 @@ public function testPublishVersionFromContentDraft() * Test for the publishVersion() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testPublishVersionFromContentDraftArchivesOldVersion() + public function testPublishVersionFromContentDraftArchivesOldVersion(): void { $contentVersion2 = $this->createContentVersion2(); @@ -1759,7 +1759,7 @@ public function testPublishVersionFromContentDraftArchivesOldVersion() * Test for the publishVersion() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersion() + public function testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersion(): void { $contentVersion2 = $this->createContentVersion2(); @@ -1770,7 +1770,7 @@ public function testPublishVersionFromContentDraftUpdatesContentInfoCurrentVersi * Test for the publishVersion() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testPublishVersionFromOldContentDraftArchivesNewerVersionNo() + public function testPublishVersionFromOldContentDraftArchivesNewerVersionNo(): void { $content = $this->createContentVersion1(); @@ -1859,7 +1859,7 @@ public function testPublishVersionNotCreatingUnlimitedArchives(): void * Test for the newContentMetadataUpdateStruct() method. */ #[Group('user')] - public function testNewContentMetadataUpdateStruct() + public function testNewContentMetadataUpdateStruct(): void { // Creates a new metadata update struct $metadataUpdate = $this->contentService->newContentMetadataUpdateStruct(); @@ -1919,7 +1919,7 @@ public function testUpdateContentMetadata() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentMetadata')] - public function testUpdateContentMetadataSetsExpectedProperties($content) + public function testUpdateContentMetadataSetsExpectedProperties($content): void { $contentInfo = $content->contentInfo; $currentUserReference = $this->getRepository()->getPermissionResolver()->getCurrentUserReference(); @@ -1956,7 +1956,7 @@ public function testUpdateContentMetadataSetsExpectedProperties($content) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentMetadata')] - public function testUpdateContentMetadataNotUpdatesContentVersion($content) + public function testUpdateContentMetadataNotUpdatesContentVersion($content): void { self::assertEquals(1, $content->getVersionInfo()->versionNo); } @@ -1965,7 +1965,7 @@ public function testUpdateContentMetadataNotUpdatesContentVersion($content) * Test for the updateContentMetadata() method. */ #[Depends('testUpdateContentMetadata')] - public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplicateRemoteId() + public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplicateRemoteId(): void { $content = $this->createContentVersion1(); @@ -1984,7 +1984,7 @@ public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnDuplica /** * Test for the updateContentMetadata() method. */ - public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnNoMetadataPropertiesSet() + public function testUpdateContentMetadataThrowsInvalidArgumentExceptionOnNoMetadataPropertiesSet(): void { $contentInfo = $this->contentService->loadContentInfo(4); $contentMetadataUpdateStruct = $this->contentService->newContentMetadataUpdateStruct(); @@ -2083,7 +2083,7 @@ public function testUpdateContentMainTranslation(): void * Test for the deleteContent() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testDeleteContent() + public function testDeleteContent(): void { $contentVersion2 = $this->createContentVersion2(); @@ -2107,7 +2107,7 @@ public function testDeleteContent() * "contentService: Unable to delete a content with an empty file attribute" */ #[Depends('testPublishVersionFromContentDraft')] - public function testDeleteContentWithEmptyBinaryField() + public function testDeleteContentWithEmptyBinaryField(): void { $contentVersion = $this->createContentVersion1EmptyBinaryField(); @@ -2169,7 +2169,7 @@ public function testCountContentDraftsForUsers(): void self::assertSame(0, $previousUserDrafts); } - public function testLoadContentDraftsReturnsEmptyArrayByDefault() + public function testLoadContentDraftsReturnsEmptyArrayByDefault(): void { $contentDrafts = $this->contentService->loadContentDraftList(); @@ -2218,7 +2218,7 @@ public function testLoadContentDraftList(): void ); } - public function testLoadContentDraftsWithFirstParameter() + public function testLoadContentDraftsWithFirstParameter(): void { $user = $this->createUserVersion1(); @@ -2337,7 +2337,7 @@ public function testLoadAllContentDraftList(): void * Test for the loadVersionInfo() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testLoadVersionInfoWithSecondParameter() + public function testLoadVersionInfoWithSecondParameter(): void { $publishedContent = $this->createContentVersion1(); @@ -2359,7 +2359,7 @@ public function testLoadVersionInfoWithSecondParameter() * Test for the loadVersionInfo() method. */ #[Depends('testLoadVersionInfoWithSecondParameter')] - public function testLoadVersionInfoThrowsNotFoundExceptionWithSecondParameter() + public function testLoadVersionInfoThrowsNotFoundExceptionWithSecondParameter(): void { $draft = $this->createContentDraftVersion1(); @@ -2404,7 +2404,7 @@ public function testLoadVersionInfoByIdWithSecondParameter() * @param array $data */ #[Depends('testLoadVersionInfoByIdWithSecondParameter')] - public function testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo(array $data) + public function testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInfo(array $data): void { /** @var \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $versionInfo */ $versionInfo = $data['versionInfo']; @@ -2449,7 +2449,7 @@ public function testLoadVersionInfoByIdWithSecondParameterSetsExpectedVersionInf /** * Test for the loadVersionInfoById() method. */ - public function testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParameter() + public function testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParameter(): void { $content = $this->createContentVersion1(); @@ -2464,7 +2464,7 @@ public function testLoadVersionInfoByIdThrowsNotFoundExceptionWithSecondParamete */ #[Depends('testCreateContent')] #[Depends('testLoadContentByVersionInfo')] - public function testLoadContentByVersionInfoWithSecondParameter() + public function testLoadContentByVersionInfoWithSecondParameter(): void { $sectionId = $this->generateId('section', 1); $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -2537,7 +2537,7 @@ static function ($field1, $field2): int { * Test for the loadContentByContentInfo() method. */ #[Depends('testLoadContentByContentInfo')] - public function testLoadContentByContentInfoWithLanguageParameters() + public function testLoadContentByContentInfoWithLanguageParameters(): void { $sectionId = $this->generateId('section', 1); $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -2644,7 +2644,7 @@ public function testLoadContentByContentInfoWithLanguageParameters() * Test for the loadContentByContentInfo() method. */ #[Depends('testLoadContentByContentInfo')] - public function testLoadContentByContentInfoWithVersionNumberParameter() + public function testLoadContentByContentInfoWithVersionNumberParameter(): void { $publishedContent = $this->createContentVersion1(); @@ -2673,7 +2673,7 @@ public function testLoadContentByContentInfoWithVersionNumberParameter() * Test for the loadContentByContentInfo() method. */ #[Depends('testLoadContentByContentInfoWithVersionNumberParameter')] - public function testLoadContentByContentInfoThrowsNotFoundExceptionWithVersionNumberParameter() + public function testLoadContentByContentInfoThrowsNotFoundExceptionWithVersionNumberParameter(): void { $content = $this->createContentVersion1(); @@ -2706,7 +2706,7 @@ public function testLoadContentWithPrioritizedLanguages() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ #[Depends('testLoadContentWithPrioritizedLanguages')] - public function testLoadContentWithPrioritizedLanguagesThrowsNotFoundException(Content $contentDraft) + public function testLoadContentWithPrioritizedLanguagesThrowsNotFoundException(Content $contentDraft): void { $this->expectException(NotFoundException::class); @@ -2733,7 +2733,7 @@ public function testLoadContentPassTroughPrioritizedLanguagesToContentType(Conte * Test for the loadContent() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testLoadContentWithThirdParameter() + public function testLoadContentWithThirdParameter(): void { $publishedContent = $this->createContentVersion1(); @@ -2755,7 +2755,7 @@ public function testLoadContentWithThirdParameter() * Test for the loadContent() method. */ #[Depends('testLoadContentWithThirdParameter')] - public function testLoadContentThrowsNotFoundExceptionWithThirdParameter() + public function testLoadContentThrowsNotFoundExceptionWithThirdParameter(): void { $content = $this->createContentVersion1(); @@ -2769,7 +2769,7 @@ public function testLoadContentThrowsNotFoundExceptionWithThirdParameter() * Test for the loadContentByRemoteId() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testLoadContentByRemoteIdWithSecondParameter() + public function testLoadContentByRemoteIdWithSecondParameter(): void { $draft = $this->createMultipleLanguageDraftVersion1(); @@ -2790,7 +2790,7 @@ public function testLoadContentByRemoteIdWithSecondParameter() * Test for the loadContentByRemoteId() method. */ #[Depends('testPublishVersionFromContentDraft')] - public function testLoadContentByRemoteIdWithThirdParameter() + public function testLoadContentByRemoteIdWithThirdParameter(): void { $publishedContent = $this->createContentVersion1(); @@ -2816,7 +2816,7 @@ public function testLoadContentByRemoteIdWithThirdParameter() * Test for the loadContentByRemoteId() method. */ #[Depends('testLoadContentByRemoteIdWithThirdParameter')] - public function testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParameter() + public function testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParameter(): void { $content = $this->createContentVersion1(); @@ -2837,7 +2837,7 @@ public function testLoadContentByRemoteIdThrowsNotFoundExceptionWithThirdParamet * @param string[]|null $languageCodes */ #[DataProvider('getPrioritizedLanguageList')] - public function testLoadContentWithPrioritizedLanguagesList($languageCodes) + public function testLoadContentWithPrioritizedLanguagesList($languageCodes): void { $content = $this->createContentVersion2(); @@ -2857,7 +2857,7 @@ public function testLoadContentWithPrioritizedLanguagesList($languageCodes) /** * @return array */ - public static function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList(): array { return [ [[self::ENG_US]], @@ -2874,7 +2874,7 @@ public static function getPrioritizedLanguageList() #[Depends('testCreateContent')] #[Depends('testPublishVersion')] #[Depends('testCreateContentDraft')] - public function testDeleteVersion() + public function testDeleteVersion(): void { $content = $this->createContentVersion1(); @@ -2903,7 +2903,7 @@ public function testDeleteVersion() #[Depends('testLoadContent')] #[Depends('testCreateContent')] #[Depends('testPublishVersion')] - public function testDeleteVersionThrowsBadStateExceptionOnPublishedVersion() + public function testDeleteVersionThrowsBadStateExceptionOnPublishedVersion(): void { $content = $this->createContentVersion1(); @@ -2919,7 +2919,7 @@ public function testDeleteVersionThrowsBadStateExceptionOnPublishedVersion() #[Depends('testLoadContent')] #[Depends('testCreateContent')] #[Depends('testPublishVersion')] - public function testDeleteVersionWorksIfOnlyVersionIsDraft() + public function testDeleteVersionWorksIfOnlyVersionIsDraft(): void { $draft = $this->createContentDraftVersion1(); @@ -2965,7 +2965,7 @@ public function testLoadVersions() * @param \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo[] $versions */ #[Depends('testLoadVersions')] - public function testLoadVersionsSetsExpectedVersionInfo(array $versions) + public function testLoadVersionsSetsExpectedVersionInfo(array $versions): void { self::assertCount(2, $versions); @@ -3014,7 +3014,7 @@ public function testLoadVersionsSetsExpectedVersionInfo(array $versions) */ #[Depends('testPublishVersionFromContentDraft')] #[Group('field-type')] - public function testCopyContent() + public function testCopyContent(): void { $parentLocationId = $this->generateId('location', 56); @@ -3073,7 +3073,7 @@ public function testCopyContent() */ #[Depends('testPublishVersionFromContentDraft')] #[Group('field-type')] - public function testCopyContentWithNewOwner() + public function testCopyContentWithNewOwner(): void { $parentLocationId = $this->generateId('location', 56); @@ -3130,7 +3130,7 @@ public function testCopyContentWithNewOwner() * Test for the copyContent() method. */ #[Depends('testCopyContent')] - public function testCopyContentWithGivenVersion() + public function testCopyContentWithGivenVersion(): void { $parentLocationId = $this->generateId('location', 56); @@ -3214,7 +3214,7 @@ public function testAddRelation(): array * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations */ #[Depends('testAddRelation')] - public function testAddRelationAddsRelationToContent($relations) + public function testAddRelationAddsRelationToContent($relations): void { self::assertCount( 1, @@ -3249,7 +3249,7 @@ protected function assertExpectedRelations($relations) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations */ #[Depends('testAddRelation')] - public function testAddRelationSetsExpectedRelations($relations) + public function testAddRelationSetsExpectedRelations($relations): void { $this->assertExpectedRelations($relations); } @@ -3304,7 +3304,7 @@ public function testCreateContentDraftWithRelationsCreatesRelations(array $relat * @param \Ibexa\Contracts\Core\Repository\Values\Content\Relation[] $relations */ #[Depends('testCreateContentDraftWithRelationsCreatesRelations')] - public function testCreateContentDraftWithRelationsCreatesExpectedRelations($relations) + public function testCreateContentDraftWithRelationsCreatesExpectedRelations($relations): void { $this->assertExpectedRelations($relations); } @@ -3313,7 +3313,7 @@ public function testCreateContentDraftWithRelationsCreatesExpectedRelations($rel * Test for the addRelation() method. */ #[Depends('testAddRelation')] - public function testAddRelationThrowsBadStateException() + public function testAddRelationThrowsBadStateException(): void { $content = $this->createContentVersion1(); @@ -3333,7 +3333,7 @@ public function testAddRelationThrowsBadStateException() */ #[Depends('testAddRelation')] #[Depends('testLoadRelationList')] - public function testLoadRelationsSkipsArchivedContent() + public function testLoadRelationsSkipsArchivedContent(): void { $trashService = $this->getRepository()->getTrashService(); @@ -3394,7 +3394,7 @@ public function testLoadRelationsSkipsArchivedContent() */ #[Depends('testAddRelation')] #[Depends('testLoadRelationList')] - public function testLoadRelationsSkipsDraftContent() + public function testLoadRelationsSkipsDraftContent(): void { $draft = $this->createContentDraftVersion1(); @@ -3618,7 +3618,7 @@ public function testCountReverseRelationsForUnauthorizedUser(): void * Test for the loadReverseRelations() method. */ #[Depends('testAddRelation')] - public function testLoadReverseRelations() + public function testLoadReverseRelations(): void { $versionInfo = $this->createContentVersion1()->getVersionInfo(); $contentInfo = $versionInfo->getContentInfo(); @@ -3698,7 +3698,7 @@ static function ($rel1, $rel2): int { */ #[Depends('testAddRelation')] #[Depends('testLoadReverseRelations')] - public function testLoadReverseRelationsSkipsArchivedContent() + public function testLoadReverseRelationsSkipsArchivedContent(): void { $trashService = $this->getRepository()->getTrashService(); @@ -3771,7 +3771,7 @@ public function testLoadReverseRelationsSkipsArchivedContent() */ #[Depends('testAddRelation')] #[Depends('testLoadReverseRelations')] - public function testLoadReverseRelationsSkipsDraftContent() + public function testLoadReverseRelationsSkipsDraftContent(): void { // Load "Media" page Content $media = $this->contentService->loadContentByRemoteId(self::MEDIA_REMOTE_ID); @@ -3943,7 +3943,7 @@ public function testLoadReverseRelationListSkipsArchivedContent(): void ); } - public function testLoadReverseRelationListSkipsDraftContent() + public function testLoadReverseRelationListSkipsDraftContent(): void { $draft1 = $this->contentService->createContentDraft( $this->createFolder([self::ENG_GB => 'Foo'], 2)->contentInfo @@ -3992,7 +3992,7 @@ public function testLoadReverseRelationListWithType(): void * Test for the deleteRelation() method. */ #[Depends('testLoadRelationList')] - public function testDeleteRelation() + public function testDeleteRelation(): void { $draft = $this->createContentDraftVersion1(); @@ -4016,7 +4016,7 @@ public function testDeleteRelation() * Test for the deleteRelation() method. */ #[Depends('testDeleteRelation')] - public function testDeleteRelationThrowsBadStateException() + public function testDeleteRelationThrowsBadStateException(): void { $content = $this->createContentVersion1(); @@ -4047,7 +4047,7 @@ public function testDeleteRelationThrowsBadStateException() * Test for the deleteRelation() method. */ #[Depends('testDeleteRelation')] - public function testDeleteRelationThrowsInvalidArgumentException() + public function testDeleteRelationThrowsInvalidArgumentException(): void { $draft = $this->createContentDraftVersion1(); @@ -4067,7 +4067,7 @@ public function testDeleteRelationThrowsInvalidArgumentException() */ #[Depends('testCreateContent')] #[Depends('testLoadContent')] - public function testCreateContentInTransactionWithRollback() + public function testCreateContentInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4113,7 +4113,7 @@ public function testCreateContentInTransactionWithRollback() */ #[Depends('testCreateContent')] #[Depends('testLoadContent')] - public function testCreateContentInTransactionWithCommit() + public function testCreateContentInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4154,7 +4154,7 @@ public function testCreateContentInTransactionWithCommit() */ #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] #[Depends('testLoadContentThrowsNotFoundException')] - public function testCreateContentWithLocationCreateParameterInTransactionWithRollback() + public function testCreateContentWithLocationCreateParameterInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4189,7 +4189,7 @@ public function testCreateContentWithLocationCreateParameterInTransactionWithRol */ #[Depends('testCreateContentWithLocationCreateParameterDoesNotCreateLocationImmediately')] #[Depends('testLoadContentThrowsNotFoundException')] - public function testCreateContentWithLocationCreateParameterInTransactionWithCommit() + public function testCreateContentWithLocationCreateParameterInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4220,7 +4220,7 @@ public function testCreateContentWithLocationCreateParameterInTransactionWithCom */ #[Depends('testCreateContentDraft')] #[Depends('testLoadContent')] - public function testCreateContentDraftInTransactionWithRollback() + public function testCreateContentDraftInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4262,7 +4262,7 @@ public function testCreateContentDraftInTransactionWithRollback() */ #[Depends('testCreateContentDraft')] #[Depends('testLoadContent')] - public function testCreateContentDraftInTransactionWithCommit() + public function testCreateContentDraftInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4302,7 +4302,7 @@ public function testCreateContentDraftInTransactionWithCommit() */ #[Depends('testPublishVersion')] #[Depends('testLoadContent')] - public function testPublishVersionInTransactionWithRollback() + public function testPublishVersionInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4346,7 +4346,7 @@ public function testPublishVersionInTransactionWithRollback() */ #[Depends('testPublishVersion')] #[Depends('testLoadVersionInfo')] - public function testPublishVersionInTransactionWithCommit() + public function testPublishVersionInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4385,7 +4385,7 @@ public function testPublishVersionInTransactionWithCommit() #[Depends('testUpdateContent')] #[Depends('testLoadContent')] #[Depends('testLoadContentInfo')] - public function testUpdateContentInTransactionWithRollback() + public function testUpdateContentInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4433,7 +4433,7 @@ public function testUpdateContentInTransactionWithRollback() #[Depends('testUpdateContent')] #[Depends('testLoadContent')] #[Depends('testLoadContentInfo')] - public function testUpdateContentInTransactionWithCommit() + public function testUpdateContentInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4480,7 +4480,7 @@ public function testUpdateContentInTransactionWithCommit() */ #[Depends('testUpdateContentMetadata')] #[Depends('testLoadContentInfo')] - public function testUpdateContentMetadataInTransactionWithRollback() + public function testUpdateContentMetadataInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4525,7 +4525,7 @@ public function testUpdateContentMetadataInTransactionWithRollback() */ #[Depends('testUpdateContentMetadata')] #[Depends('testLoadContentInfo')] - public function testUpdateContentMetadataInTransactionWithCommit() + public function testUpdateContentMetadataInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4570,7 +4570,7 @@ public function testUpdateContentMetadataInTransactionWithCommit() */ #[Depends('testUpdateContentMetadata')] #[Depends('testLoadContentInfo')] - public function testUpdateContentMetadataCheckWithinTransaction() + public function testUpdateContentMetadataCheckWithinTransaction(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -4615,7 +4615,7 @@ public function testUpdateContentMetadataCheckWithinTransaction() #[Depends('testCreateContent')] #[Depends('testLoadContentInfo')] #[Depends('testLoadContentDraftList')] - public function testDeleteVersionInTransactionWithRollback() + public function testDeleteVersionInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4652,7 +4652,7 @@ public function testDeleteVersionInTransactionWithRollback() #[Depends('testCreateContent')] #[Depends('testLoadContentInfo')] #[Depends('testLoadContentDraftList')] - public function testDeleteVersionInTransactionWithCommit() + public function testDeleteVersionInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4688,7 +4688,7 @@ public function testDeleteVersionInTransactionWithCommit() */ #[Depends('testDeleteContent')] #[Depends('testLoadContentInfo')] - public function testDeleteContentInTransactionWithRollback() + public function testDeleteContentInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4723,7 +4723,7 @@ public function testDeleteContentInTransactionWithRollback() */ #[Depends('testDeleteContent')] #[Depends('testLoadContentInfo')] - public function testDeleteContentInTransactionWithCommit() + public function testDeleteContentInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4761,7 +4761,7 @@ public function testDeleteContentInTransactionWithCommit() * Test for the copyContent() method. */ #[Depends('testCopyContent')] - public function testCopyContentInTransactionWithRollback() + public function testCopyContentInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4806,7 +4806,7 @@ public function testCopyContentInTransactionWithRollback() * Test for the copyContent() method. */ #[Depends('testCopyContent')] - public function testCopyContentInTransactionWithCommit() + public function testCopyContentInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4847,7 +4847,7 @@ public function testCopyContentInTransactionWithCommit() self::assertCount(2, $locations); } - public function testURLAliasesCreatedForNewContent() + public function testURLAliasesCreatedForNewContent(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -4878,7 +4878,7 @@ public function testURLAliasesCreatedForNewContent() ); } - public function testURLAliasesCreatedForUpdatedContent() + public function testURLAliasesCreatedForUpdatedContent(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -4945,7 +4945,7 @@ public function testURLAliasesCreatedForUpdatedContent() ); } - public function testCustomURLAliasesNotHistorizedOnUpdatedContent() + public function testCustomURLAliasesNotHistorizedOnUpdatedContent(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -5002,7 +5002,7 @@ public function testCustomURLAliasesNotHistorizedOnUpdatedContent() * Test to ensure that old versions are not affected by updates to newer * drafts. */ - public function testUpdatingDraftDoesNotUpdateOldVersions() + public function testUpdatingDraftDoesNotUpdateOldVersions(): void { $contentVersion2 = $this->createContentVersion2(); @@ -5019,7 +5019,7 @@ public function testUpdatingDraftDoesNotUpdateOldVersions() * Test scenario with writer and publisher users. * Writer can only create content. Publisher can publish this content. */ - public function testPublishWorkflow() + public function testPublishWorkflow(): void { $this->createRoleWithPolicies('Publisher', [ ['module' => 'content', 'function' => 'read'], @@ -5058,7 +5058,7 @@ public function testPublishWorkflow() /** * Test publish / content policy is required to be able to publish content. */ - public function testPublishContentWithoutPublishPolicyThrowsException() + public function testPublishContentWithoutPublishPolicyThrowsException(): void { $this->createRoleWithPolicies('Writer', [ ['module' => 'content', 'function' => 'read'], @@ -5082,7 +5082,7 @@ public function testPublishContentWithoutPublishPolicyThrowsException() /** * Test removal of the specific translation from all the Versions of a Content Object. */ - public function testDeleteTranslation() + public function testDeleteTranslation(): void { $content = $this->createContentVersion2(); @@ -5106,7 +5106,7 @@ public function testDeleteTranslation() * Test deleting a Translation which is initial for some Version, updates initialLanguageCode * with mainLanguageCode (assuming they are different). */ - public function testDeleteTranslationUpdatesInitialLanguageCodeVersion() + public function testDeleteTranslationUpdatesInitialLanguageCodeVersion(): void { $content = $this->createContentVersion2(); // create another, copied, version @@ -5138,7 +5138,7 @@ public function testDeleteTranslationUpdatesInitialLanguageCodeVersion() /** * Test removal of the specific translation properly updates languages of the URL alias. */ - public function testDeleteTranslationUpdatesUrlAlias() + public function testDeleteTranslationUpdatesUrlAlias(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -5181,7 +5181,7 @@ public function testDeleteTranslationUpdatesUrlAlias() /** * Test removal of a main translation throws BadStateException. */ - public function testDeleteTranslationMainLanguageThrowsBadStateException() + public function testDeleteTranslationMainLanguageThrowsBadStateException(): void { $content = $this->createContentVersion2(); @@ -5198,7 +5198,7 @@ public function testDeleteTranslationMainLanguageThrowsBadStateException() /** * Test removal of a Translation is possible when some archived Versions have only this Translation. */ - public function testDeleteTranslationDeletesSingleTranslationVersions() + public function testDeleteTranslationDeletesSingleTranslationVersions(): void { // content created by the createContentVersion1 method has eng-US translation only. $content = $this->createContentVersion1(); @@ -5225,7 +5225,7 @@ public function testDeleteTranslationDeletesSingleTranslationVersions() * Test removal of the translation by the user who is not allowed to delete a content * throws UnauthorizedException. */ - public function testDeleteTranslationThrowsUnauthorizedException() + public function testDeleteTranslationThrowsUnauthorizedException(): void { $content = $this->createContentVersion2(); @@ -5253,7 +5253,7 @@ public function testDeleteTranslationThrowsUnauthorizedException() /** * Test removal of a non-existent translation throws InvalidArgumentException. */ - public function testDeleteTranslationThrowsInvalidArgumentException() + public function testDeleteTranslationThrowsInvalidArgumentException(): void { // content created by the createContentVersion1 method has eng-US translation only. $content = $this->createContentVersion1(); @@ -5267,7 +5267,7 @@ public function testDeleteTranslationThrowsInvalidArgumentException() /** * Test deleting a Translation from Draft. */ - public function testDeleteTranslationFromDraft() + public function testDeleteTranslationFromDraft(): void { $languageCode = self::ENG_GB; $content = $this->createMultipleLanguageContentVersion2(); @@ -5285,7 +5285,7 @@ public function testDeleteTranslationFromDraft() * * @return array */ - public static function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing() + public static function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing(): array { return [ [ @@ -5310,7 +5310,7 @@ public static function providerForDeleteTranslationFromDraftRemovesUrlAliasOnPub * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ #[DataProvider('providerForDeleteTranslationFromDraftRemovesUrlAliasOnPublishing')] - public function testDeleteTranslationFromDraftRemovesUrlAliasOnPublishing(array $fieldValues) + public function testDeleteTranslationFromDraftRemovesUrlAliasOnPublishing(array $fieldValues): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -5371,7 +5371,7 @@ public function testDeleteTranslationFromDraftRemovesUrlAliasOnPublishing(array /** * Test that URL aliases for deleted Translations are properly archived. */ - public function testDeleteTranslationFromDraftArchivesUrlAliasOnPublishing() + public function testDeleteTranslationFromDraftArchivesUrlAliasOnPublishing(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); @@ -5428,7 +5428,7 @@ public function testDeleteTranslationFromDraftArchivesUrlAliasOnPublishing() /** * Test deleting a Translation from Draft which has single Translation throws BadStateException. */ - public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTranslation() + public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTranslation(): void { // create Content with single Translation $publishedContent = $this->contentService->publishVersion( @@ -5463,7 +5463,7 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnSingleTra /** * Test deleting the Main Translation from Draft throws BadStateException. */ - public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTranslation() + public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTranslation(): void { $mainLanguageCode = self::ENG_US; $draft = $this->createMultilingualContentDraft( @@ -5487,7 +5487,7 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnMainTrans /** * Test deleting the Translation from Published Version throws BadStateException. */ - public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublishedVersion() + public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublishedVersion(): void { $languageCode = self::ENG_US; $content = $this->createMultipleLanguageContentVersion2(); @@ -5503,7 +5503,7 @@ public function testDeleteTranslationFromDraftThrowsBadStateExceptionOnPublished /** * Test deleting a Translation from Draft throws UnauthorizedException if user cannot edit Content. */ - public function testDeleteTranslationFromDraftThrowsUnauthorizedException() + public function testDeleteTranslationFromDraftThrowsUnauthorizedException(): void { $languageCode = self::ENG_GB; $content = $this->createMultipleLanguageContentVersion2(); @@ -5533,7 +5533,7 @@ public function testDeleteTranslationFromDraftThrowsUnauthorizedException() /** * Test deleting a non-existent Translation from Draft throws InvalidArgumentException. */ - public function testDeleteTranslationFromDraftThrowsInvalidArgumentException() + public function testDeleteTranslationFromDraftThrowsInvalidArgumentException(): void { $languageCode = self::GER_DE; $content = $this->createMultipleLanguageContentVersion2(); @@ -5546,7 +5546,7 @@ public function testDeleteTranslationFromDraftThrowsInvalidArgumentException() /** * Test loading list of Content items. */ - public function testLoadContentListByContentInfo() + public function testLoadContentListByContentInfo(): void { $allLocationsCount = $this->locationService->getAllLocationsCount(); $contentInfoList = array_map( @@ -5575,7 +5575,7 @@ static function (Location $location) { * * @see https://issues.ibexa.co/browse/EZP-30271 */ - public function testLoadVersionsAfterDeletingTwoDrafts() + public function testLoadVersionsAfterDeletingTwoDrafts(): void { $content = $this->createFolder([self::ENG_GB => 'Foo'], 2); @@ -5606,7 +5606,7 @@ public function testLoadVersionsAfterDeletingTwoDrafts() /** * Tests loading list of content versions of status draft. */ - public function testLoadVersionsOfStatusDraft() + public function testLoadVersionsOfStatusDraft(): void { $content = $this->createContentVersion1(); @@ -5622,7 +5622,7 @@ public function testLoadVersionsOfStatusDraft() /** * Tests loading list of content versions of status archived. */ - public function testLoadVersionsOfStatusArchived() + public function testLoadVersionsOfStatusArchived(): void { $content = $this->createContentVersion1(); @@ -5911,7 +5911,7 @@ function (Location $parentLocation) { * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRevealContent() + public function testRevealContent(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6124,7 +6124,7 @@ private function createFolderDraft(): Content } #[Depends('testRevealContent')] - public function testRevealContentWithHiddenParent() + public function testRevealContentWithHiddenParent(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6186,7 +6186,7 @@ public function testRevealContentWithHiddenParent() } #[Depends('testRevealContent')] - public function testRevealContentWithHiddenChildren() + public function testRevealContentWithHiddenChildren(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6261,7 +6261,7 @@ public function testRevealContentWithHiddenChildren() } } - public function testHideContentWithParentLocation() + public function testHideContentWithParentLocation(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6308,7 +6308,7 @@ public function testHideContentWithParentLocation() self::assertTrue($childLocations[0]->invisible); } - public function testChangeContentName() + public function testChangeContentName(): void { $contentDraft = $this->createContentDraft( 'folder', @@ -6330,7 +6330,7 @@ public function testChangeContentName() self::assertEquals('Polo', $updatedContent->contentInfo->name); } - public function testCopyTranslationsFromPublishedToDraft() + public function testCopyTranslationsFromPublishedToDraft(): void { $contentDraft = $this->createContentDraft( 'folder', @@ -6393,7 +6393,7 @@ public function testCopyTranslationsFromPublishedToDraft() ); } - public function testCopyTranslationsFromInvalidPublishedContentToDraft() + public function testCopyTranslationsFromInvalidPublishedContentToDraft(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -6522,7 +6522,7 @@ static function (Location $location) { ); } - public function testPublishVersionWithSelectedLanguages() + public function testPublishVersionWithSelectedLanguages(): void { $publishedContent = $this->createFolder( [ @@ -6552,7 +6552,7 @@ public function testPublishVersionWithSelectedLanguages() ); } - public function testCreateContentWithRomanianSpecialCharsInTitle() + public function testCreateContentWithRomanianSpecialCharsInTitle(): void { $baseName = 'ȘșțȚdfdf'; $expectedPath = '/SstTdfdf'; diff --git a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php index a761e1d57a..3e44d28ae3 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceAuthorizationTest.php @@ -25,7 +25,7 @@ class ContentTypeServiceAuthorizationTest extends BaseContentTypeServiceTestCase * Test for the createContentTypeGroup() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentTypeGroup')] - public function testCreateContentTypeGroupThrowsUnauthorizedException() + public function testCreateContentTypeGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -64,7 +64,7 @@ public function testCreateContentTypeGroupThrowsUnauthorizedException() * Test for the updateContentTypeGroup() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateContentTypeGroup')] - public function testUpdateContentTypeGroupThrowsUnauthorizedException() + public function testUpdateContentTypeGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -112,7 +112,7 @@ public function testUpdateContentTypeGroupThrowsUnauthorizedException() * Test for the deleteContentTypeGroup() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testDeleteContentTypeGroup')] - public function testDeleteContentTypeGroupThrowsUnauthorizedException() + public function testDeleteContentTypeGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -147,7 +147,7 @@ public function testDeleteContentTypeGroupThrowsUnauthorizedException() * Test for the createContentType() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentType')] - public function testCreateContentTypeThrowsUnauthorizedException() + public function testCreateContentTypeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -202,7 +202,7 @@ public function testCreateContentTypeThrowsUnauthorizedException() * Test for the updateContentTypeDraft() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateContentTypeDraft')] - public function testUpdateContentTypeDraftThrowsUnauthorizedException() + public function testUpdateContentTypeDraftThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -252,7 +252,7 @@ public function testUpdateContentTypeDraftThrowsUnauthorizedException() * Test for the addFieldDefinition() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testAddFieldDefinition')] - public function testAddFieldDefinitionThrowsUnauthorizedException() + public function testAddFieldDefinitionThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -306,7 +306,7 @@ public function testAddFieldDefinitionThrowsUnauthorizedException() * Test for the removeFieldDefinition() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testRemoveFieldDefinition')] - public function testRemoveFieldDefinitionThrowsUnauthorizedException() + public function testRemoveFieldDefinitionThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -337,7 +337,7 @@ public function testRemoveFieldDefinitionThrowsUnauthorizedException() * Test for the updateFieldDefinition() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testUpdateFieldDefinition')] - public function testUpdateFieldDefinitionThrowsUnauthorizedException() + public function testUpdateFieldDefinitionThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -393,7 +393,7 @@ public function testUpdateFieldDefinitionThrowsUnauthorizedException() * Test for the publishContentTypeDraft() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testPublishContentTypeDraft')] - public function testPublishContentTypeDraftThrowsUnauthorizedException() + public function testPublishContentTypeDraftThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -422,7 +422,7 @@ public function testPublishContentTypeDraftThrowsUnauthorizedException() * Test for the createContentTypeDraft() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testCreateContentTypeDraft')] - public function testCreateContentTypeDraftThrowsUnauthorizedException() + public function testCreateContentTypeDraftThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -452,7 +452,7 @@ public function testCreateContentTypeDraftThrowsUnauthorizedException() * Test for the deleteContentType() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testDeleteContentType')] - public function testDeleteContentTypeThrowsUnauthorizedException() + public function testDeleteContentTypeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -482,7 +482,7 @@ public function testDeleteContentTypeThrowsUnauthorizedException() * Test for the copyContentType() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testCopyContentType')] - public function testCopyContentTypeThrowsUnauthorizedException() + public function testCopyContentTypeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -512,7 +512,7 @@ public function testCopyContentTypeThrowsUnauthorizedException() * Test for the assignContentTypeGroup() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testAssignContentTypeGroup')] - public function testAssignContentTypeGroupThrowsUnauthorizedException() + public function testAssignContentTypeGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -543,7 +543,7 @@ public function testAssignContentTypeGroupThrowsUnauthorizedException() * Test for the unassignContentTypeGroup() method. */ #[DependsExternal(ContentTypeServiceTest::class, 'testUnassignContentTypeGroup')] - public function testUnassignContentTypeGroupThrowsUnauthorizedException() + public function testUnassignContentTypeGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/ContentTypeServiceTest.php b/tests/integration/Core/Repository/ContentTypeServiceTest.php index a1c3794675..3db769f4fd 100644 --- a/tests/integration/Core/Repository/ContentTypeServiceTest.php +++ b/tests/integration/Core/Repository/ContentTypeServiceTest.php @@ -73,7 +73,7 @@ public function testNewContentTypeGroupCreateStruct() * Test for the newContentTypeGroupCreateStruct() method. */ #[Depends('testNewContentTypeGroupCreateStruct')] - public function testNewContentTypeGroupCreateStructValues($createStruct) + public function testNewContentTypeGroupCreateStructValues($createStruct): void { $this->assertPropertiesCorrect( [ @@ -163,7 +163,7 @@ public function testCreateContentTypeGroupStructValues(array $data) * Test for the createContentTypeGroup() method. */ #[Depends('testCreateContentTypeGroupStructValues')] - public function testCreateContentTypeGroupStructLanguageDependentValues(array $data) + public function testCreateContentTypeGroupStructLanguageDependentValues(array $data): void { $createStruct = $data['createStruct']; $group = $data['group']; @@ -181,7 +181,7 @@ public function testCreateContentTypeGroupStructLanguageDependentValues(array $d * Test for the createContentTypeGroup() method. */ #[Depends('testCreateContentTypeGroup')] - public function testCreateContentTypeGroupThrowsInvalidArgumentException() + public function testCreateContentTypeGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeGroupCreateStruct\' is invalid: A group with the identifier \'Content\' already exists'); @@ -246,7 +246,7 @@ public function testLoadSystemContentTypeGroup(): void * Test for the loadContentTypeGroup() method. */ #[Depends('testLoadContentTypeGroup')] - public function testLoadContentTypeGroupStructValues(ContentTypeGroup $group) + public function testLoadContentTypeGroupStructValues(ContentTypeGroup $group): void { $this->assertPropertiesCorrect( [ @@ -264,7 +264,7 @@ public function testLoadContentTypeGroupStructValues(ContentTypeGroup $group) /** * Test for the loadContentTypeGroup() method. */ - public function testLoadContentTypeGroupThrowsNotFoundException() + public function testLoadContentTypeGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -303,7 +303,7 @@ public function testLoadContentTypeGroupByIdentifier() * Test for the loadContentTypeGroupByIdentifier() method. */ #[Depends('testLoadContentTypeGroupByIdentifier')] - public function testLoadContentTypeGroupByIdentifierStructValues(ContentTypeGroup $group) + public function testLoadContentTypeGroupByIdentifierStructValues(ContentTypeGroup $group): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -318,7 +318,7 @@ public function testLoadContentTypeGroupByIdentifierStructValues(ContentTypeGrou * Test for the loadContentTypeGroupByIdentifier() method. */ #[Depends('testLoadContentTypeGroupByIdentifier')] - public function testLoadContentTypeGroupByIdentifierThrowsNotFoundException() + public function testLoadContentTypeGroupByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -374,7 +374,7 @@ public function testLoadContentTypeGroups() * Test for the loadContentTypeGroups() method. */ #[Depends('testLoadContentTypeGroups')] - public function testLoadContentTypeGroupsIdentifiers($groups) + public function testLoadContentTypeGroupsIdentifiers($groups): void { self::assertCount(4, $groups); @@ -403,7 +403,7 @@ public function testLoadContentTypeGroupsIdentifiers($groups) /** * Test for the newContentTypeGroupUpdateStruct() method. */ - public function testNewContentTypeGroupUpdateStruct() + public function testNewContentTypeGroupUpdateStruct(): void { $repository = $this->getRepository(); @@ -493,7 +493,7 @@ public function testUpdateContentTypeGroupStructValues(array $data) * Test for the updateContentTypeGroup() method. */ #[Depends('testUpdateContentTypeGroupStructValues')] - public function testUpdateContentTypeGroupStructLanguageDependentValues(array $data) + public function testUpdateContentTypeGroupStructLanguageDependentValues(array $data): void { $expectedValues = [ 'identifier' => $data['updateStruct']->identifier, @@ -515,7 +515,7 @@ public function testUpdateContentTypeGroupStructLanguageDependentValues(array $d * Test for the updateContentTypeGroup() method. */ #[Depends('testUpdateContentTypeGroup')] - public function testUpdateContentTypeGroupThrowsInvalidArgumentException() + public function testUpdateContentTypeGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeGroupUpdateStruct->identifier\' is invalid: given identifier already exists'); @@ -541,7 +541,7 @@ public function testUpdateContentTypeGroupThrowsInvalidArgumentException() * Test for the deleteContentTypeGroup() method. */ #[Depends('testLoadContentTypeGroup')] - public function testDeleteContentTypeGroup() + public function testDeleteContentTypeGroup(): void { $this->expectException(NotFoundException::class); @@ -625,7 +625,7 @@ public function testNewContentTypeCreateStruct() * Test for the newContentTypeCreateStruct() method. */ #[Depends('testNewContentTypeCreateStruct')] - public function testNewContentTypeCreateStructValues($createStruct) + public function testNewContentTypeCreateStructValues($createStruct): void { $this->assertPropertiesCorrect( [ @@ -674,7 +674,7 @@ public function testNewFieldDefinitionCreateStruct() * Test for the newFieldDefinitionCreateStruct() method. */ #[Depends('testNewFieldDefinitionCreateStruct')] - public function testNewFieldDefinitionCreateStructValues($createStruct) + public function testNewFieldDefinitionCreateStructValues($createStruct): void { $this->assertPropertiesCorrect( [ @@ -700,7 +700,7 @@ public function testNewFieldDefinitionCreateStructValues($createStruct) * Test for the deleteContentTypeGroup() method. */ #[Depends('testDeleteContentTypeGroup')] - public function testDeleteContentTypeGroupThrowsInvalidArgumentException() + public function testDeleteContentTypeGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -831,7 +831,7 @@ public function testCreateContentType() * @param array $data */ #[Depends('testCreateContentType')] - public function testCreateContentTypeStructValues(array $data) + public function testCreateContentTypeStructValues(array $data): void { $typeCreate = $data['typeCreate']; $contentType = $data['contentType']; @@ -962,7 +962,7 @@ protected function assertContentTypeGroupsCorrect($expectedGroups, $actualGroups * Test for the createContentType() method. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIdentifier() + public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIdentifier(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeCreateStruct\' is invalid: Another content type with identifier \'folder\' exists'); @@ -994,7 +994,7 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateIden * remoteId. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemoteId() + public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemoteId(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Another content type with remoteId \'a3d405b81be900468eb153d774f4f0d2\' exists'); @@ -1026,7 +1026,7 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateRemo * Test for the createContentType() method creating content with duplicate field identifiers. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFieldIdentifier() + public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFieldIdentifier(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeCreateStruct\' is invalid: The argument contains duplicate Field definition identifier \'title\''); @@ -1061,7 +1061,7 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateFiel * existing identifier. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateContentTypeIdentifier() + public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateContentTypeIdentifier(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Another content type with identifier \'blog-post\' exists'); @@ -1097,7 +1097,7 @@ public function testCreateContentTypeThrowsInvalidArgumentExceptionDuplicateCont * Test for the createContentType() method. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsContentTypeFieldDefinitionValidationException() + public function testCreateContentTypeThrowsContentTypeFieldDefinitionValidationException(): void { $repository = $this->getRepository(); @@ -1153,7 +1153,7 @@ public function testCreateContentTypeThrowsContentTypeFieldDefinitionValidationE * Test for the createContentTypeGroup() method called with no groups. */ #[Depends('testCreateContentType')] - public function testCreateContentTypeThrowsInvalidArgumentExceptionGroupsEmpty() + public function testCreateContentTypeThrowsInvalidArgumentExceptionGroupsEmpty(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeGroups\' is invalid: The argument must contain at least one content type group'); @@ -1197,7 +1197,7 @@ public function testNewContentTypeUpdateStruct() * Test for the newContentTypeUpdateStruct() method. */ #[Depends('testNewContentTypeUpdateStruct')] - public function testNewContentTypeUpdateStructValues($typeUpdate) + public function testNewContentTypeUpdateStructValues($typeUpdate): void { foreach ($typeUpdate as $propertyName => $propertyValue) { self::assertNull( @@ -1211,7 +1211,7 @@ public function testNewContentTypeUpdateStructValues($typeUpdate) * Test for the loadContentTypeDraft() method. */ #[Depends('testCreateContentType')] - public function testLoadContentTypeDraft() + public function testLoadContentTypeDraft(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -1234,7 +1234,7 @@ public function testLoadContentTypeDraft() * Test for the loadContentTypeDraft() method. */ #[Depends('testLoadContentTypeDraft')] - public function testLoadContentTypeDraftThrowsNotFoundException() + public function testLoadContentTypeDraftThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -1252,7 +1252,7 @@ public function testLoadContentTypeDraftThrowsNotFoundException() /** * Test for the loadContentTypeDraft() method. */ - public function testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner() + public function testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner(): void { $this->expectException(NotFoundException::class); @@ -1271,7 +1271,7 @@ public function testLoadContentTypeDraftThrowsNotFoundExceptionIfDiffrentOwner() /** * Test for the loadContentTypeDraft() method. */ - public function testCanLoadContentTypeDraftEvenIfDiffrentOwner() + public function testCanLoadContentTypeDraftEvenIfDiffrentOwner(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -1342,7 +1342,7 @@ public function testUpdateContentTypeDraft() * Test for the updateContentTypeDraft() method. */ #[Depends('testUpdateContentTypeDraft')] - public function testUpdateContentTypeDraftStructValues($data) + public function testUpdateContentTypeDraftStructValues($data): void { $originalType = $data['originalType']; $updateStruct = $data['updateStruct']; @@ -1385,7 +1385,7 @@ public function testUpdateContentTypeDraftStructValues($data) * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testUpdateContentTypeDraftWithNewTranslation() + public function testUpdateContentTypeDraftWithNewTranslation(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -1422,7 +1422,7 @@ public function testUpdateContentTypeDraftWithNewTranslation() * Test for the updateContentTypeDraft() method. */ #[Depends('testUpdateContentTypeDraft')] - public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateIdentifier() + public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateIdentifier(): void { $this->expectException(InvalidArgumentException::class); @@ -1444,7 +1444,7 @@ public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicat * Test for the updateContentTypeDraft() method. */ #[Depends('testUpdateContentTypeDraft')] - public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateRemoteId() + public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicateRemoteId(): void { $this->expectException(InvalidArgumentException::class); @@ -1466,7 +1466,7 @@ public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionDuplicat * Test for the updateContentTypeDraft() method. */ #[Depends('testUpdateContentTypeDraft')] - public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionNoDraftForAuthenticatedUser() + public function testUpdateContentTypeDraftThrowsInvalidArgumentExceptionNoDraftForAuthenticatedUser(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeDraft\' is invalid: There is no content type draft assigned to the authenticated user'); @@ -1554,7 +1554,7 @@ public function testAddFieldDefinition() * Test for the addFieldDefinition() method. */ #[Depends('testAddFieldDefinition')] - public function testAddFieldDefinitionStructValues(array $data) + public function testAddFieldDefinitionStructValues(array $data): void { $loadedType = $data['loadedType']; $fieldDefCreate = $data['fieldDefCreate']; @@ -1579,7 +1579,7 @@ public function testAddFieldDefinitionStructValues(array $data) * Test for the addFieldDefinition() method. */ #[Depends('testAddFieldDefinition')] - public function testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFieldIdentifier() + public function testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFieldIdentifier(): void { $this->expectException(InvalidArgumentException::class); @@ -1603,7 +1603,7 @@ public function testAddFieldDefinitionThrowsInvalidArgumentExceptionDuplicateFie * times to the same ContentType. */ #[Depends('testAddFieldDefinition')] - public function testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidationException() + public function testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidationException(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -1660,7 +1660,7 @@ public function testAddFieldDefinitionThrowsContentTypeFieldDefinitionValidation * times to the same ContentType. */ #[Depends('testAddFieldDefinition')] - public function testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField() + public function testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField(): void { $this->expectException(BadStateException::class); $this->expectExceptionMessage('The content type already contains a Field definition of the singular Field Type \'ibexa_user\''); @@ -1699,7 +1699,7 @@ public function testAddFieldDefinitionThrowsBadStateExceptionNonRepeatableField( * Testing that field definition of non-repeatable field type can not be added multiple * times to the same ContentTypeCreateStruct. */ - public function testCreateContentThrowsContentTypeValidationException() + public function testCreateContentThrowsContentTypeValidationException(): void { $this->expectException(ContentTypeValidationException::class); $this->expectExceptionMessage('Field Type \'ibexa_user\' is singular and cannot be used more than once in a content type'); @@ -1751,7 +1751,7 @@ public function testCreateContentThrowsContentTypeValidationException() * already has Content instances. */ #[Depends('testAddFieldDefinition')] - public function testAddFieldDefinitionThrowsBadStateExceptionContentInstances() + public function testAddFieldDefinitionThrowsBadStateExceptionContentInstances(): void { $this->expectException(BadStateException::class); $this->expectExceptionMessage('A Field definition of the \'ibexa_user\' Field Type cannot be added because the content type already has Content items'); @@ -1822,7 +1822,7 @@ public function testRemoveFieldDefinition() * @param array $data */ #[Depends('testRemoveFieldDefinition')] - public function testRemoveFieldDefinitionRemoved(array $data) + public function testRemoveFieldDefinitionRemoved(array $data): void { $removedFieldDefinition = $data['removedFieldDefinition']; $loadedType = $data['loadedType']; @@ -1843,7 +1843,7 @@ public function testRemoveFieldDefinitionRemoved(array $data) * Test for the removeFieldDefinition() method. */ #[Depends('testRemoveFieldDefinition')] - public function testRemoveFieldDefinitionThrowsInvalidArgumentException() + public function testRemoveFieldDefinitionThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -1867,7 +1867,7 @@ public function testRemoveFieldDefinitionThrowsInvalidArgumentException() * Test removeFieldDefinition() method for field in a different draft throws an exception. */ #[Depends('testRemoveFieldDefinition')] - public function testRemoveFieldDefinitionThrowsInvalidArgumentExceptionOnWrongDraft() + public function testRemoveFieldDefinitionThrowsInvalidArgumentExceptionOnWrongDraft(): void { $this->expectException(InvalidArgumentException::class); @@ -1955,7 +1955,7 @@ public function testRemoveFieldDefinitionRemovesFieldFromContent() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data */ #[Depends('testRemoveFieldDefinitionRemovesFieldFromContent')] - public function testRemoveFieldDefinitionRemovesFieldFromContentRemoved($data) + public function testRemoveFieldDefinitionRemovesFieldFromContentRemoved($data): void { list( $contentVersion1Archived, @@ -2070,7 +2070,7 @@ public function testAddFieldDefinitionAddsFieldToContent() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data */ #[Depends('testAddFieldDefinitionAddsFieldToContent')] - public function testAddFieldDefinitionAddsFieldToContentAdded(array $data) + public function testAddFieldDefinitionAddsFieldToContentAdded(array $data): void { list( $contentVersion1Archived, @@ -2130,7 +2130,7 @@ public function testNewFieldDefinitionUpdateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinitionUpdateStruct $fieldDefinitionUpdateStruct */ #[Depends('testNewFieldDefinitionUpdateStruct')] - public function testNewFieldDefinitionUpdateStructValues($fieldDefinitionUpdateStruct) + public function testNewFieldDefinitionUpdateStructValues($fieldDefinitionUpdateStruct): void { foreach ($fieldDefinitionUpdateStruct as $propertyName => $propertyValue) { self::assertNull( @@ -2197,7 +2197,7 @@ public function testUpdateFieldDefinition() ]; } - public function testUpdateFieldDefinitionWithNewTranslation() + public function testUpdateFieldDefinitionWithNewTranslation(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2264,7 +2264,7 @@ public function testUpdateFieldDefinitionWithNewTranslation() * @param array $data */ #[Depends('testUpdateFieldDefinition')] - public function testUpdateFieldDefinitionStructValues(array $data) + public function testUpdateFieldDefinitionStructValues(array $data): void { $originalField = $data['originalField']; $updatedField = $data['updatedField']; @@ -2293,7 +2293,7 @@ public function testUpdateFieldDefinitionStructValues(array $data) /** * Test for the updateFieldDefinition() method using an empty FieldDefinitionUpdateStruct. */ - public function testUpdateFieldDefinitionWithEmptyStruct() + public function testUpdateFieldDefinitionWithEmptyStruct(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2319,7 +2319,7 @@ public function testUpdateFieldDefinitionWithEmptyStruct() /** * Test for the updateFieldDefinition() method with already defined field identifier. */ - public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIdentifierExists() + public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIdentifierExists(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$fieldDefinitionUpdateStruct\' is invalid: Another Field definition with identifier \'title\' exists in the content type'); @@ -2349,7 +2349,7 @@ public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionFieldIden * Test for the updateFieldDefinition() method trying to update non-existent field. */ #[Depends('testLoadContentTypeDraft')] - public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefinedField() + public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefinedField(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$fieldDefinition\' is invalid: The given Field definition does not belong to the content type'); @@ -2380,7 +2380,7 @@ public function testUpdateFieldDefinitionThrowsInvalidArgumentExceptionForUndefi * Test for the publishContentTypeDraft() method. */ #[Depends('testLoadContentTypeDraft')] - public function testPublishContentTypeDraft() + public function testPublishContentTypeDraft(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2407,7 +2407,7 @@ public function testPublishContentTypeDraft() * Test for the publishContentTypeDraft() method setting proper ContentType nameSchema. */ #[Depends('testPublishContentTypeDraft')] - public function testPublishContentTypeDraftSetsNameSchema() + public function testPublishContentTypeDraftSetsNameSchema(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2441,7 +2441,7 @@ public function testPublishContentTypeDraftSetsNameSchema() /** * Test that publishing content type Draft refreshes list of content types in content type groups. */ - public function testPublishContentTypeDraftRefreshesContentTypesList() + public function testPublishContentTypeDraftRefreshesContentTypesList(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2494,7 +2494,7 @@ static function (ContentType $contentType) { * Test for the publishContentTypeDraft() method. */ #[Depends('testPublishContentTypeDraft')] - public function testPublishContentTypeDraftThrowsBadStateException() + public function testPublishContentTypeDraftThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -2515,7 +2515,7 @@ public function testPublishContentTypeDraftThrowsBadStateException() * Test for the createContentTypeGroup() method trying to create content type without any fields. */ #[Depends('testPublishContentTypeDraft')] - public function testPublishContentTypeDraftThrowsInvalidArgumentExceptionWithoutFields() + public function testPublishContentTypeDraftThrowsInvalidArgumentExceptionWithoutFields(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$contentTypeDraft\' is invalid: The content type draft should have at least one Field definition'); @@ -2576,7 +2576,7 @@ public function testLoadContentType() * @param string[] $languageCodes */ #[DataProvider('getPrioritizedLanguageList')] - public function testLoadContentTypeWithPrioritizedLanguagesList(array $languageCodes) + public function testLoadContentTypeWithPrioritizedLanguagesList(array $languageCodes): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2611,7 +2611,7 @@ public function testLoadContentTypeWithPrioritizedLanguagesList(array $languageC /** * @return array */ - public static function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList(): array { return [ [[]], @@ -2665,7 +2665,7 @@ public function testLoadContentTypeStructValues($userGroupType) * Test for the loadContentType() method. */ #[Depends('testLoadContentTypeStructValues')] - public function testLoadContentTypeFieldDefinitions(APIFieldDefinitionCollection $fieldDefinitions) + public function testLoadContentTypeFieldDefinitions(APIFieldDefinitionCollection $fieldDefinitions): void { $expectedFieldDefinitions = [ 'name' => [ @@ -2758,7 +2758,7 @@ static function ($fieldDefinition) { * Test for the loadContentType() method. */ #[Depends('testLoadContentType')] - public function testLoadContentTypeThrowsNotFoundException() + public function testLoadContentTypeThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2804,7 +2804,7 @@ public function testLoadContentTypeByIdentifier() * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType $contentType */ #[Depends('testLoadContentTypeByIdentifier')] - public function testLoadContentTypeByIdentifierReturnsCorrectInstance($contentType) + public function testLoadContentTypeByIdentifierReturnsCorrectInstance($contentType): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2819,7 +2819,7 @@ public function testLoadContentTypeByIdentifierReturnsCorrectInstance($contentTy * Test for the loadContentTypeByIdentifier() method. */ #[Depends('testLoadContentTypeByIdentifier')] - public function testLoadContentTypeByIdentifierThrowsNotFoundException() + public function testLoadContentTypeByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2862,7 +2862,7 @@ public function testLoadContentTypeByRemoteId() * Test for the loadContentTypeByRemoteId() method. */ #[Depends('testLoadContentTypeByRemoteId')] - public function testLoadContentTypeByRemoteIdReturnsCorrectInstance($contentType) + public function testLoadContentTypeByRemoteIdReturnsCorrectInstance($contentType): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2877,7 +2877,7 @@ public function testLoadContentTypeByRemoteIdReturnsCorrectInstance($contentType * Test for the loadContentTypeByRemoteId() method. */ #[Depends('testLoadContentType')] - public function testLoadContentTypeByRemoteIdThrowsNotFoundException() + public function testLoadContentTypeByRemoteIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2895,7 +2895,7 @@ public function testLoadContentTypeByRemoteIdThrowsNotFoundException() * Test for the loadContentTypeList() method. */ #[Depends('testLoadContentType')] - public function testLoadContentTypeList() + public function testLoadContentTypeList(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -2941,7 +2941,7 @@ public function testLoadContentTypes() * Test for the loadContentTypes() method. */ #[Depends('testLoadContentTypes')] - public function testLoadContentTypesContent(array $types) + public function testLoadContentTypesContent(array $types): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -3046,7 +3046,7 @@ public function testCreateContentTypeDraftStructValues(array $data) * Test for the createContentTypeDraft() method. */ #[Depends('testCreateContentTypeDraftStructValues')] - public function testCreateContentTypeDraftStructLanguageDependentValues(array $data) + public function testCreateContentTypeDraftStructLanguageDependentValues(array $data): void { $originalType = $data['originalType']; $typeDraft = $data['typeDraft']; @@ -3067,7 +3067,7 @@ public function testCreateContentTypeDraftStructLanguageDependentValues(array $d * Test for the createContentTypeDraft() method. */ #[Depends('testCreateContentTypeDraft')] - public function testCreateContentTypeDraftThrowsBadStateException() + public function testCreateContentTypeDraftThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -3089,7 +3089,7 @@ public function testCreateContentTypeDraftThrowsBadStateException() * Test for the deleteContentType() method. */ #[Depends('testLoadContentTypeByIdentifier')] - public function testDeleteContentType() + public function testDeleteContentType(): void { $this->expectException(NotFoundException::class); @@ -3111,7 +3111,7 @@ public function testDeleteContentType() * Test for the deleteContentType() method. */ #[Depends('testDeleteContentType')] - public function testDeleteContentTypeThrowsBadStateException() + public function testDeleteContentTypeThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -3178,7 +3178,7 @@ public function testCopyContentType() * @param array $data */ #[Depends('testCopyContentType')] - public function testCopyContentTypeStructValues(array $data) + public function testCopyContentTypeStructValues(array $data): void { $originalType = $data['originalType']; $copiedType = $data['copiedType']; @@ -3266,7 +3266,7 @@ private function assertCopyContentTypeValues($originalType, $copiedType, $exclud * Test for the copyContentType() method. */ #[Depends('testCopyContentType')] - public function testCopyContentTypeWithSecondParameter() + public function testCopyContentTypeWithSecondParameter(): void { $repository = $this->getRepository(); @@ -3297,7 +3297,7 @@ public function testCopyContentTypeWithSecondParameter() #[Depends('testLoadContentTypeGroupByIdentifier')] #[Depends('testLoadContentTypeByIdentifier')] #[Depends('testLoadContentType')] - public function testAssignContentTypeGroup() + public function testAssignContentTypeGroup(): void { $repository = $this->getRepository(); @@ -3329,7 +3329,7 @@ public function testAssignContentTypeGroup() * Test for the assignContentTypeGroup() method. */ #[Depends('testAssignContentTypeGroup')] - public function testAssignContentTypeGroupThrowsInvalidArgumentException() + public function testAssignContentTypeGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -3352,7 +3352,7 @@ public function testAssignContentTypeGroupThrowsInvalidArgumentException() * Test for the unassignContentTypeGroup() method. */ #[Depends('testAssignContentTypeGroup')] - public function testUnassignContentTypeGroup() + public function testUnassignContentTypeGroup(): void { $repository = $this->getRepository(); @@ -3388,7 +3388,7 @@ public function testUnassignContentTypeGroup() * Test for the unassignContentTypeGroup() method. */ #[Depends('testUnassignContentTypeGroup')] - public function testUnassignContentTypeGroupThrowsInvalidArgumentException() + public function testUnassignContentTypeGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -3409,7 +3409,7 @@ public function testUnassignContentTypeGroupThrowsInvalidArgumentException() * Test for the unassignContentTypeGroup() method. */ #[Depends('testUnassignContentTypeGroup')] - public function testUnassignContentTypeGroupThrowsBadStateException() + public function testUnassignContentTypeGroupThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -3433,7 +3433,7 @@ public function testUnassignContentTypeGroupThrowsBadStateException() */ #[Depends('testLoadContentTypeGroup')] #[Depends('testCreateContentTypeGroup')] - public function testCreateContentTypeGroupInTransactionWithRollback() + public function testCreateContentTypeGroupInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -3477,7 +3477,7 @@ public function testCreateContentTypeGroupInTransactionWithRollback() */ #[Depends('testLoadContentTypeGroup')] #[Depends('testCreateContentTypeGroup')] - public function testCreateContentTypeGroupInTransactionWithCommit() + public function testCreateContentTypeGroupInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -3517,7 +3517,7 @@ public function testCreateContentTypeGroupInTransactionWithCommit() */ #[Depends('testUpdateContentTypeGroup')] #[Depends('testLoadContentTypeGroupByIdentifier')] - public function testUpdateContentTypeGroupInTransactionWithRollback() + public function testUpdateContentTypeGroupInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -3558,7 +3558,7 @@ public function testUpdateContentTypeGroupInTransactionWithRollback() */ #[Depends('testUpdateContentTypeGroup')] #[Depends('testLoadContentTypeGroupByIdentifier')] - public function testUpdateContentTypeGroupInTransactionWithCommit() + public function testUpdateContentTypeGroupInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -3601,7 +3601,7 @@ public function testUpdateContentTypeGroupInTransactionWithCommit() */ #[Depends('testDeleteContentTypeGroup')] #[Depends('testLoadContentTypeGroupByIdentifierThrowsNotFoundException')] - public function testDeleteContentTypeGroupWithRollback() + public function testDeleteContentTypeGroupWithRollback(): void { $repository = $this->getRepository(); @@ -3647,7 +3647,7 @@ public function testDeleteContentTypeGroupWithRollback() */ #[Depends('testDeleteContentTypeGroup')] #[Depends('testLoadContentTypeGroupByIdentifierThrowsNotFoundException')] - public function testDeleteContentTypeGroupWithCommit() + public function testDeleteContentTypeGroupWithCommit(): void { $repository = $this->getRepository(); @@ -3693,7 +3693,7 @@ public function testDeleteContentTypeGroupWithCommit() */ #[Depends('testCreateContentType')] #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] - public function testCreateContentTypeInTransactionWithRollback() + public function testCreateContentTypeInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -3751,7 +3751,7 @@ public function testCreateContentTypeInTransactionWithRollback() */ #[Depends('testCreateContentType')] #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] - public function testCreateContentTypeInTransactionWithCommit() + public function testCreateContentTypeInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -3806,7 +3806,7 @@ public function testCreateContentTypeInTransactionWithCommit() #[Depends('testCopyContentType')] #[Depends('testLoadContentTypeByIdentifier')] #[Depends('testLoadContentTypeThrowsNotFoundException')] - public function testCopyContentTypeInTransactionWithRollback() + public function testCopyContentTypeInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -3848,7 +3848,7 @@ public function testCopyContentTypeInTransactionWithRollback() #[Depends('testCopyContentType')] #[Depends('testLoadContentTypeByIdentifier')] #[Depends('testLoadContentTypeThrowsNotFoundException')] - public function testCopyContentTypeInTransactionWithCommit() + public function testCopyContentTypeInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -3885,7 +3885,7 @@ public function testCopyContentTypeInTransactionWithCommit() */ #[Depends('testCopyContentType')] #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] - public function testDeleteContentTypeInTransactionWithRollback() + public function testDeleteContentTypeInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -3922,7 +3922,7 @@ public function testDeleteContentTypeInTransactionWithRollback() */ #[Depends('testCopyContentType')] #[Depends('testLoadContentTypeByIdentifierThrowsNotFoundException')] - public function testDeleteContentTypeInTransactionWithCommit() + public function testDeleteContentTypeInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -3962,7 +3962,7 @@ public function testDeleteContentTypeInTransactionWithCommit() * Test for the assignContentTypeGroup() method. */ #[Depends('testAssignContentTypeGroup')] - public function testAssignContentTypeGroupInTransactionWithRollback() + public function testAssignContentTypeGroupInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -4006,7 +4006,7 @@ public function testAssignContentTypeGroupInTransactionWithRollback() * Test for the assignContentTypeGroup() method. */ #[Depends('testAssignContentTypeGroup')] - public function testAssignContentTypeGroupInTransactionWithCommit() + public function testAssignContentTypeGroupInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -4049,7 +4049,7 @@ public function testAssignContentTypeGroupInTransactionWithCommit() /** * Test for the isContentTypeUsed() method. */ - public function testIsContentTypeUsed() + public function testIsContentTypeUsed(): void { $repository = $this->getRepository(); @@ -4073,7 +4073,7 @@ public function testIsContentTypeUsed() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRemoveContentTypeTranslation() + public function testRemoveContentTypeTranslation(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -4113,7 +4113,7 @@ public function testRemoveContentTypeTranslation() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRemoveContentTypeTranslationWithMultilingualData() + public function testRemoveContentTypeTranslationWithMultilingualData(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -4173,7 +4173,7 @@ public function testRemoveContentTypeTranslationWithMultilingualData() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testUpdateContentTypeDraftWithNewTranslationWithMultilingualData() + public function testUpdateContentTypeDraftWithNewTranslationWithMultilingualData(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); @@ -4300,7 +4300,7 @@ public function testUpdateContentTypeDraftWithNewTranslationWithMultilingualData /** * Test for the deleteUserDrafts() method. */ - public function testDeleteUserDrafts() + public function testDeleteUserDrafts(): void { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php b/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php index 638e87f430..66602f88f3 100644 --- a/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/AuthorIntegrationTest.php @@ -188,7 +188,7 @@ public function assertFieldDataLoadedCorrect(Field $field) * * @return array[] */ - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ ['Sindelfingen', InvalidArgumentException::class], @@ -248,7 +248,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -307,7 +307,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -340,7 +340,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -366,7 +366,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new AuthorValue()], @@ -374,7 +377,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php index 84cf65d1b7..4ceb3cb805 100644 --- a/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/BaseIntegrationTestCase.php @@ -398,7 +398,7 @@ protected function getOverride($key, array $overrideValues, $default) } #[DataProvider('providerForTestIsEmptyValue')] - public function testIsEmptyValue($value) + public function testIsEmptyValue($value): void { if ($value === self::NO_EMPTY_VALUE_DATA) { self::markTestSkipped('This field type has no "empty" value representation.'); @@ -410,7 +410,7 @@ public function testIsEmptyValue($value) abstract public static function providerForTestIsEmptyValue(); #[DataProvider('providerForTestIsNotEmptyValue')] - public function testIsNotEmptyValue($value) + public function testIsNotEmptyValue($value): void { self::assertFalse($this->getRepository()->getFieldTypeService()->getFieldType($this->getTypeName())->isEmptyValue($value)); } @@ -418,7 +418,7 @@ public function testIsNotEmptyValue($value) abstract public static function providerForTestIsNotEmptyValue(); #[Depends('testCreateContentType')] - public function testContentTypeField($contentType) + public function testContentTypeField($contentType): void { self::assertSame( $this->getTypeName(), @@ -448,7 +448,7 @@ public function testLoadContentTypeFieldType($contentType) return $contentType->fieldDefinitions[1]; } - public function testSettingsSchema() + public function testSettingsSchema(): void { $repository = $this->getRepository(); $fieldTypeService = $repository->getFieldTypeService(); @@ -461,7 +461,7 @@ public function testSettingsSchema() } #[Depends('testLoadContentTypeFieldType')] - public function testLoadContentTypeFieldData(FieldDefinition $fieldDefinition) + public function testLoadContentTypeFieldData(FieldDefinition $fieldDefinition): void { self::assertEquals( $this->getTypeName(), @@ -481,7 +481,7 @@ public function testLoadContentTypeFieldData(FieldDefinition $fieldDefinition) } #[Depends('testCreateContentType')] - public function testCreateContentTypeFailsWithInvalidFieldSettings() + public function testCreateContentTypeFailsWithInvalidFieldSettings(): void { $this->expectException(ContentTypeFieldDefinitionValidationException::class); @@ -491,7 +491,7 @@ public function testCreateContentTypeFailsWithInvalidFieldSettings() ); } - public function testValidatorSchema() + public function testValidatorSchema(): void { $repository = $this->getRepository(); $fieldTypeService = $repository->getFieldTypeService(); @@ -504,7 +504,7 @@ public function testValidatorSchema() } #[Depends('testCreateContentType')] - public function testCreateContentTypeFailsWithInvalidValidatorConfiguration() + public function testCreateContentTypeFailsWithInvalidValidatorConfiguration(): void { $this->expectException(ContentTypeFieldDefinitionValidationException::class); @@ -634,7 +634,7 @@ public function testPublishedFieldType($content) } #[Depends('testPublishContent')] - public function testPublishedName(Content $content) + public function testPublishedName(Content $content): void { self::assertEquals( $content->getFieldValue('name') . ' ' . $this->getFieldName(), @@ -668,7 +668,7 @@ public function testLoadFieldType() } #[Depends('testLoadFieldType')] - public function testLoadExternalData() + public function testLoadExternalData(): void { $this->assertFieldDataLoadedCorrect($this->testLoadFieldType()); } @@ -688,7 +688,7 @@ public function testCreateContentWithEmptyFieldValue() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ #[Depends('testCreateContentWithEmptyFieldValue')] - public function testPublishContentWithEmptyFieldValue(Content $contentDraft) + public function testPublishContentWithEmptyFieldValue(Content $contentDraft): void { $this->getRepository(false)->getContentService()->publishVersion( $contentDraft->versionInfo @@ -732,7 +732,7 @@ public function testLoadEmptyFieldValueType($content) } #[Depends('testLoadEmptyFieldValueType')] - public function testLoadEmptyFieldValueData($field) + public function testLoadEmptyFieldValueData($field): void { /** @var \Ibexa\Core\FieldType\FieldType $fieldType */ $fieldType = $this->getRepository()->getFieldTypeService()->getFieldType($this->getTypeName()); @@ -796,7 +796,7 @@ public function testUpdateTypeFieldStillAvailable($content) } #[Depends('testUpdateTypeFieldStillAvailable')] - public function testUpdatedDataCorrect(Field $field) + public function testUpdatedDataCorrect(Field $field): void { $this->assertUpdatedFieldDataLoadedCorrect($field); } @@ -822,7 +822,7 @@ public function testUpdateNoNewContentTypeFieldStillAvailable($content) } #[Depends('testUpdateNoNewContentTypeFieldStillAvailable')] - public function testUpdatedNoNewContentDataCorrect(Field $field) + public function testUpdatedNoNewContentDataCorrect(Field $field): void { $this->assertFieldDataLoadedCorrect($field); } @@ -862,13 +862,13 @@ public function testCopiedFieldType($content) } #[Depends('testCopiedFieldType')] - public function testCopiedExternalData(Field $field) + public function testCopiedExternalData(Field $field): void { $this->assertCopiedFieldDataLoadedCorrectly($field); } #[Depends('testCopyField')] - public function testDeleteContent($content) + public function testDeleteContent($content): void { $this->expectException(NotFoundException::class); @@ -927,7 +927,7 @@ protected function removeFieldDefinition() /** * Tests removal of field definition from the ContentType of the Content. */ - public function testRemoveFieldDefinition() + public function testRemoveFieldDefinition(): void { $content = $this->removeFieldDefinition(); @@ -980,7 +980,7 @@ public function testAddFieldDefinition() } #[DataProvider('provideToHashData')] - public function testToHash($value, $expectedHash) + public function testToHash($value, $expectedHash): void { $repository = $this->getRepository(); $fieldTypeService = $repository->getFieldTypeService(); @@ -998,7 +998,7 @@ public function testToHash($value, $expectedHash) */ #[Depends('testCreateContent')] #[DataProvider('provideFromHashData')] - public function testFromHash($hash, $expectedValue) + public function testFromHash($hash, $expectedValue): void { $repository = $this->getRepository(); $fieldTypeService = $repository->getFieldTypeService(); @@ -1013,7 +1013,7 @@ public function testFromHash($hash, $expectedValue) /** * Test that exceeding default version archive limit has no effect on a published content. */ - public function testExceededVersionArchiveLimitHasNoEffectOnContent() + public function testExceededVersionArchiveLimitHasNoEffectOnContent(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -1038,7 +1038,7 @@ public function testExceededVersionArchiveLimitHasNoEffectOnContent() /** * Test that deleting new draft does not affect data of published version. */ - public function testDeleteDraftOfPublishedContentDoesNotDeleteData() + public function testDeleteDraftOfPublishedContentDoesNotDeleteData(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -1060,7 +1060,7 @@ public function testDeleteDraftOfPublishedContentDoesNotDeleteData() /** * Test creating new translation from existing content with empty field. */ - public function testUpdateContentWithNewTranslationOnEmptyField() + public function testUpdateContentWithNewTranslationOnEmptyField(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -1100,7 +1100,7 @@ public function getValidMultilingualFieldData(array $languageCodes) /** * Test that removing Translation from all Versions works for data from a Field Type. */ - public function testDeleteTranslation() + public function testDeleteTranslation(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); diff --git a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php index 45eadb5d25..d825659582 100644 --- a/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CheckboxIntegrationTest.php @@ -149,7 +149,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -192,7 +192,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -241,7 +241,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -258,7 +258,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -268,13 +268,19 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { // Checkbox has no "empty" value: it is always either true or false. return [[self::NO_EMPTY_VALUE_DATA]]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [new CheckboxValue(true)], diff --git a/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php b/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php index e1c3897807..5d3eff1aa5 100644 --- a/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/CountryIntegrationTest.php @@ -162,7 +162,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -242,7 +242,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -298,7 +298,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -330,7 +330,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -355,7 +355,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new CountryValue()], @@ -363,7 +366,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php b/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php index 2bf53c2fea..5e893a1e38 100644 --- a/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/DateAndTimeIntegrationTest.php @@ -167,7 +167,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -209,7 +209,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -274,7 +274,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -294,7 +294,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -307,14 +307,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new DateAndTimeValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php b/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php index 6d75ee91c3..3061f2cd2d 100644 --- a/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/DateIntegrationTest.php @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -200,7 +200,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -238,7 +238,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { $timestamp = 186401; $dateTime = new DateTime("@{$timestamp}"); @@ -274,7 +274,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { $timestamp = 123456; @@ -299,14 +299,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new DateValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php b/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php index 1147e011ae..98c2051079 100644 --- a/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/EmailAddressIntegrationTest.php @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -207,7 +207,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -273,7 +273,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -283,7 +283,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new EmailAddressValue()], @@ -292,7 +295,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php index 497a1f07c7..2efb329c48 100644 --- a/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/FileSearchBaseIntegrationTestCase.php @@ -193,7 +193,7 @@ protected function uriExistsOnIO($uri) /** * Tests that a VersionUpdate can remove the stored file. */ - public function testUpdateWithRemove() + public function testUpdateWithRemove(): void { $type = $this->createContentType( $this->getValidFieldSettings(), diff --git a/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php b/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php index df6bd630b4..c18f82794e 100644 --- a/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/FloatIntegrationTest.php @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -205,7 +205,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -254,7 +254,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -271,7 +271,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -281,14 +281,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new FloatValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php b/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php index 6ab85e8641..a0585183f5 100644 --- a/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/ISBNIntegrationTest.php @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -197,7 +197,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -245,7 +245,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -270,7 +270,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -292,7 +292,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new ISBNValue()], @@ -301,7 +304,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php b/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php index c5a3e1fc38..096ad4bbdb 100644 --- a/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/IntegerIntegrationTest.php @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -207,7 +207,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -273,7 +273,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -283,14 +283,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new IntegerValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php index 504ccaccca..6cfd0ca3d0 100644 --- a/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/KeywordIntegrationTest.php @@ -160,7 +160,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -204,7 +204,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -250,7 +250,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -267,7 +267,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -277,7 +277,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new KeywordValue()], @@ -286,7 +289,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ @@ -301,7 +307,7 @@ public static function providerForTestIsNotEmptyValue() /** * Test updating multiple contents with ibexa_keyword field preserves proper fields values. */ - public function testUpdateContentKeywords() + public function testUpdateContentKeywords(): void { $contentType = $this->testCreateContentType(); $contentService = $this->getRepository()->getContentService(); @@ -401,7 +407,7 @@ public function testGoBackToDifferentVersionWithDifferentKeywords(): void self::assertEqualsCanonicalizing($contentDraft03->getFieldValue('data'), $value01); } - public function testKeywordsAreCaseSensitive() + public function testKeywordsAreCaseSensitive(): void { $contentType = $this->testCreateContentType(); $publishedContent01 = $this->createAndPublishContent('Foo', $contentType, md5(uniqid(__METHOD__, true))); @@ -477,7 +483,10 @@ protected static function getFullTextIndexedFieldData() ]; } - public static function providerForTestTruncateField() + /** + * @return array + */ + public static function providerForTestTruncateField(): array { return [ [new KeywordValue()], @@ -497,7 +506,7 @@ public static function providerForTestTruncateField() * @todo Move this method to BaseIntegrationTest when fixed for all field types. */ #[DataProvider('providerForTestTruncateField')] - public function testTruncateField($emptyValue) + public function testTruncateField($emptyValue): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -580,7 +589,7 @@ protected function createKeywordContent() /** * Test for the findContent() method. */ - public function testFindContentFieldCriterion() + public function testFindContentFieldCriterion(): void { $this->createKeywordContent(); $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php index 2801c6a5e8..37e022de62 100644 --- a/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/MapLocationIntegrationTest.php @@ -135,7 +135,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -208,7 +208,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -249,7 +249,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -276,7 +276,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -296,7 +296,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new MapLocationValue()], @@ -311,7 +314,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php index 25e9d22e2d..4e7e6d219a 100644 --- a/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationIntegrationTest.php @@ -206,7 +206,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -242,7 +242,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -292,7 +292,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field): void * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -311,7 +311,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -321,14 +321,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new RelationValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php index 7f9caaa2b0..522a503393 100644 --- a/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/RelationListIntegrationTest.php @@ -236,7 +236,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -272,7 +272,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field): void ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -321,7 +321,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field): void * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -340,7 +340,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -350,7 +350,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new RelationListValue()], @@ -358,7 +361,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php index 67fade97e9..93083d6c78 100644 --- a/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/SearchBaseIntegrationTestCase.php @@ -333,7 +333,7 @@ public function testCreateTestContent(): array * * @return array */ - public static function findProvider() + public static function findProvider(): array { $additionalFields = static::getAdditionallyIndexedFieldData(); $additionalFields[] = [ @@ -374,7 +374,7 @@ public static function findProvider() */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::EQ, $valueOne); @@ -392,7 +392,7 @@ public function testFindEqualsOne($valueOne, $valueTwo, $filter, $content, $modi */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotEqualsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::EQ, $valueOne)); @@ -410,7 +410,7 @@ public function testFindNotEqualsOne($valueOne, $valueTwo, $filter, $content, $m */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::EQ, $valueTwo); @@ -428,7 +428,7 @@ public function testFindEqualsTwo($valueOne, $valueTwo, $filter, $content, $modi */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotEqualsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::EQ, $valueTwo)); @@ -446,7 +446,7 @@ public function testFindNotEqualsTwo($valueOne, $valueTwo, $filter, $content, $m */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::IN, [$valueOne]); @@ -464,7 +464,7 @@ public function testFindInOne($valueOne, $valueTwo, $filter, $content, $modifyFi */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotInOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field('data', Operator::IN, [$valueOne]) @@ -484,7 +484,7 @@ public function testFindNotInOne($valueOne, $valueTwo, $filter, $content, $modif */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::IN, [$valueTwo]); @@ -502,7 +502,7 @@ public function testFindInTwo($valueOne, $valueTwo, $filter, $content, $modifyFi */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotInTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field('data', Operator::IN, [$valueTwo]) @@ -522,7 +522,7 @@ public function testFindNotInTwo($valueOne, $valueTwo, $filter, $content, $modif */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field( 'data', @@ -547,7 +547,7 @@ public function testFindInOneTwo($valueOne, $valueTwo, $filter, $content, $modif */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotInOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field( @@ -574,7 +574,7 @@ public function testFindNotInOneTwo($valueOne, $valueTwo, $filter, $content, $mo */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::GT, $valueOne); @@ -592,7 +592,7 @@ public function testFindGreaterThanOne($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotGreaterThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::GT, $valueOne)); @@ -610,7 +610,7 @@ public function testFindNotGreaterThanOne($valueOne, $valueTwo, $filter, $conten */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::GT, $valueTwo); @@ -628,7 +628,7 @@ public function testFindGreaterThanTwo($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotGreaterThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::GT, $valueTwo)); @@ -646,7 +646,7 @@ public function testFindNotGreaterThanTwo($valueOne, $valueTwo, $filter, $conten */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindGreaterThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindGreaterThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::GTE, $valueOne); @@ -664,7 +664,7 @@ public function testFindGreaterThanOrEqualOne($valueOne, $valueTwo, $filter, $co */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotGreaterThanOrEqual($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotGreaterThanOrEqual($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::GTE, $valueOne)); @@ -682,7 +682,7 @@ public function testFindNotGreaterThanOrEqual($valueOne, $valueTwo, $filter, $co */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::GTE, $valueTwo); @@ -700,7 +700,7 @@ public function testFindGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $co */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::GTE, $valueTwo)); @@ -718,7 +718,7 @@ public function testFindNotGreaterThanOrEqualTwo($valueOne, $valueTwo, $filter, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::LT, $valueOne); @@ -736,7 +736,7 @@ public function testFindLowerThanOne($valueOne, $valueTwo, $filter, $content, $m */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLowerThanOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::LT, $valueOne)); @@ -754,7 +754,7 @@ public function testFindNotLowerThanOne($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::LT, $valueTwo); @@ -772,7 +772,7 @@ public function testFindLowerThanTwo($valueOne, $valueTwo, $filter, $content, $m */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLowerThanTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::LT, $valueTwo)); @@ -790,7 +790,7 @@ public function testFindNotLowerThanTwo($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::LTE, $valueOne); @@ -808,7 +808,7 @@ public function testFindLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $cont */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::LTE, $valueOne)); @@ -826,7 +826,7 @@ public function testFindNotLowerThanOrEqualOne($valueOne, $valueTwo, $filter, $c */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::LTE, $valueTwo); @@ -844,7 +844,7 @@ public function testFindLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $cont */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::LTE, $valueTwo)); @@ -862,7 +862,7 @@ public function testFindNotLowerThanOrEqualTwo($valueOne, $valueTwo, $filter, $c */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field( 'data', @@ -887,7 +887,7 @@ public function testFindBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $ */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotBetweenOneTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field( @@ -914,7 +914,7 @@ public function testFindNotBetweenOneTwo($valueOne, $valueTwo, $filter, $content */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field( 'data', @@ -939,7 +939,7 @@ public function testFindBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $ */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotBetweenTwoOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field( @@ -966,7 +966,7 @@ public function testFindNotBetweenTwoOne($valueOne, $valueTwo, $filter, $content */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::CONTAINS, $valueOne); @@ -984,7 +984,7 @@ public function testFindContainsOne($valueOne, $valueTwo, $filter, $content, $mo */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotContainsOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot(new Field('data', Operator::CONTAINS, $valueOne)); @@ -1002,7 +1002,7 @@ public function testFindNotContainsOne($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new Field('data', Operator::CONTAINS, $valueTwo); @@ -1020,7 +1020,7 @@ public function testFindContainsTwo($valueOne, $valueTwo, $filter, $content, $mo */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotContainsTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { $criteria = new LogicalNot( new Field('data', Operator::CONTAINS, $valueTwo) @@ -1034,7 +1034,7 @@ public function testFindNotContainsTwo($valueOne, $valueTwo, $filter, $content, */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { // (in case test is skipped for current search engine) $this->supportsLikeWildcard($valueOne); @@ -1049,7 +1049,7 @@ public function testFindLikeOne($valueOne, $valueTwo, $filter, $content, $modify */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLikeOne($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { if ($this->supportsLikeWildcard($valueOne)) { $valueOne = substr_replace($valueOne, '*', -1, 1); @@ -1067,7 +1067,7 @@ public function testFindNotLikeOne($valueOne, $valueTwo, $filter, $content, $mod */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { if ($this->supportsLikeWildcard($valueTwo)) { $valueTwo = substr_replace($valueTwo, '*', 1, 1); @@ -1083,7 +1083,7 @@ public function testFindLikeTwo($valueOne, $valueTwo, $filter, $content, $modify */ #[Depends('testCreateTestContent')] #[DataProvider('findProvider')] - public function testFindNotLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context) + public function testFindNotLikeTwo($valueOne, $valueTwo, $filter, $content, $modifyField, array $context): void { if ($this->supportsLikeWildcard($valueTwo)) { $valueTwo = substr_replace($valueTwo, '*', 2, 1); @@ -1174,7 +1174,10 @@ protected function doModifyField(array $criteriaOrSortClauses, string $fieldName } } - public static function sortProvider() + /** + * @return array + */ + public static function sortProvider(): array { $additionalFields = static::getAdditionallyIndexedFieldData(); $additionalFields[] = null; @@ -1202,7 +1205,7 @@ public static function sortProvider() */ #[Depends('testCreateTestContent')] #[DataProvider('sortProvider')] - public function testSort($ascending, $content, $modifyField, array $context) + public function testSort($ascending, $content, $modifyField, array $context): void { [$repository, $contentOneId, $contentTwoId] = $context; $sortClause = new FieldSortClause( @@ -1232,7 +1235,10 @@ public function testSort($ascending, $content, $modifyField, array $context) */ protected const NO_FULLTEXT_DATA = '__no_fulltext_data__'; - public static function fullTextFindProvider() + /** + * @return array + */ + public static function fullTextFindProvider(): array { $indexedFieldData = static::getFullTextIndexedFieldData(); @@ -1265,7 +1271,7 @@ public static function fullTextFindProvider() #[Depends('testCreateTestContent')] #[DataProvider('fullTextFindProvider')] - public function testFullTextFindOne($valueOne, $valueTwo, $filter, $content, array $context) + public function testFullTextFindOne($valueOne, $valueTwo, $filter, $content, array $context): void { if ($valueOne === self::NO_FULLTEXT_DATA) { self::markTestSkipped( @@ -1282,7 +1288,7 @@ public function testFullTextFindOne($valueOne, $valueTwo, $filter, $content, arr #[Depends('testCreateTestContent')] #[DataProvider('fullTextFindProvider')] - public function testFullTextFindTwo($valueOne, $valueTwo, $filter, $content, array $context) + public function testFullTextFindTwo($valueOne, $valueTwo, $filter, $content, array $context): void { if ($valueOne === self::NO_FULLTEXT_DATA) { self::markTestSkipped( diff --git a/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php b/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php index 95a195f529..5e823919d6 100644 --- a/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php +++ b/tests/integration/Core/Repository/FieldType/SearchMultivaluedBaseIntegrationTestCase.php @@ -183,7 +183,7 @@ public function testCreateMultivaluedTestContent(): array * * @return array */ - public static function findMultivaluedProvider() + public static function findMultivaluedProvider(): array { $additionalFields = static::getAdditionallyIndexedMultivaluedFieldData(); $additionalFields[] = [ @@ -224,7 +224,7 @@ public static function findMultivaluedProvider() */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::EQ); @@ -246,7 +246,7 @@ public function testFindMultivaluedEqualsOne($valuesOne, $valuesTwo, $filter, $c */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotEqualsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::EQ); @@ -268,7 +268,7 @@ public function testFindMultivaluedNotEqualsOne($valuesOne, $valuesTwo, $filter, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::IN); @@ -288,7 +288,7 @@ public function testFindMultivaluedInOne($valuesOne, $valuesTwo, $filter, $conte */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotInOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::IN); @@ -310,7 +310,7 @@ public function testFindMultivaluedNotInOne($valuesOne, $valuesTwo, $filter, $co */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::IN); @@ -330,7 +330,7 @@ public function testFindMultivaluedInOneTwo($valuesOne, $valuesTwo, $filter, $co */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotInOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::IN); @@ -352,7 +352,7 @@ public function testFindMultivaluedNotInOneTwo($valuesOne, $valuesTwo, $filter, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::CONTAINS); @@ -374,7 +374,7 @@ public function testFindMultivaluedContainsOne($valuesOne, $valuesTwo, $filter, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotContainsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::CONTAINS); @@ -396,7 +396,7 @@ public function testFindMultivaluedNotContainsOne($valuesOne, $valuesTwo, $filte */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GT); @@ -416,7 +416,7 @@ public function testFindMultivaluedGreaterThanOneFindsOneTwo($valuesOne, $values */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GT); @@ -436,7 +436,7 @@ public function testFindMultivaluedGreaterThanOneFindsTwo($valuesOne, $valuesTwo */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotGreaterThanOneFindsOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GT); @@ -456,7 +456,7 @@ public function testFindMultivaluedNotGreaterThanOneFindsOneTwo($valuesOne, $val */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotGreaterThanOneFindsTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GT); @@ -476,7 +476,7 @@ public function testFindMultivaluedNotGreaterThanOneFindsTwo($valuesOne, $values */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedGreaterThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedGreaterThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GTE); @@ -498,7 +498,7 @@ public function testFindMultivaluedGreaterThanOrEqualOne($valuesOne, $valuesTwo, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotGreaterThanOrEqual($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotGreaterThanOrEqual($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::GTE); @@ -520,7 +520,7 @@ public function testFindMultivaluedNotGreaterThanOrEqual($valuesOne, $valuesTwo, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LT); @@ -540,7 +540,7 @@ public function testFindMultivaluedLowerThanOneEmpty($valuesOne, $valuesTwo, $fi */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LT); @@ -560,7 +560,7 @@ public function testFindMultivaluedLowerThanOneFindsOne($valuesOne, $valuesTwo, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotLowerThanOneEmpty($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LT); @@ -580,7 +580,7 @@ public function testFindMultivaluedNotLowerThanOneEmpty($valuesOne, $valuesTwo, */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotLowerThanOneFindsOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LT); @@ -600,7 +600,7 @@ public function testFindMultivaluedNotLowerThanOneFindsOne($valuesOne, $valuesTw */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LTE); @@ -622,7 +622,7 @@ public function testFindMultivaluedLowerThanOrEqualOne($valuesOne, $valuesTwo, $ */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotLowerThanOrEqualOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::LTE); @@ -644,7 +644,7 @@ public function testFindMultivaluedNotLowerThanOrEqualOne($valuesOne, $valuesTwo */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::BETWEEN); @@ -675,7 +675,7 @@ public function testFindMultivaluedBetweenOneTwo($valuesOne, $valuesTwo, $filter */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotBetweenOneTwo($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::BETWEEN); @@ -708,7 +708,7 @@ public function testFindMultivaluedNotBetweenOneTwo($valuesOne, $valuesTwo, $fil */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::BETWEEN); @@ -739,7 +739,7 @@ public function testFindMultivaluedBetweenTwoOne($valuesOne, $valuesTwo, $filter */ #[Depends('testCreateMultivaluedTestContent')] #[DataProvider('findMultivaluedProvider')] - public function testFindMultivaluedNotBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context) + public function testFindMultivaluedNotBetweenTwoOne($valuesOne, $valuesTwo, $filter, $content, $modifyField, array $context): void { $this->checkOperatorSupport(Operator::BETWEEN); diff --git a/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php b/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php index 059f4ee353..47bbca5222 100644 --- a/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/SelectionIntegrationTest.php @@ -181,7 +181,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -228,7 +228,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -277,7 +277,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -294,7 +294,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -304,7 +304,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new SelectionValue()], @@ -312,7 +315,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php index 248eaf884e..33c45b9091 100644 --- a/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TextBlockIntegrationTest.php @@ -144,7 +144,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -187,7 +187,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -236,7 +236,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -253,7 +253,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -263,7 +263,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new TextBlockValue()], @@ -275,7 +278,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php index edf7afea10..2b4b8f059a 100644 --- a/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TextLineIntegrationTest.php @@ -156,7 +156,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -207,7 +207,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -256,7 +256,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -273,7 +273,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -283,7 +283,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new TextLineValue()], @@ -293,7 +296,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php b/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php index 1a21d08ec8..fc13b1b4c3 100644 --- a/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/TimeIntegrationTest.php @@ -161,7 +161,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -204,7 +204,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -269,7 +269,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { $timestamp = 123456; $dateTime = new DateTime("@{$timestamp}"); @@ -289,7 +289,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -299,14 +299,20 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new TimeValue()], ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php b/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php index acb3988336..a237ccf53d 100644 --- a/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/UrlIntegrationTest.php @@ -138,7 +138,7 @@ public function assertFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return [ [ @@ -186,7 +186,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) ); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return self::provideInvalidCreationFieldData(); } @@ -236,7 +236,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -263,7 +263,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -277,7 +277,10 @@ public static function provideFromHashData() ]; } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new UrlValue()], @@ -287,7 +290,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ diff --git a/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php b/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php index 3ca66ee610..2241e2b790 100644 --- a/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php +++ b/tests/integration/Core/Repository/FieldType/UserIntegrationTest.php @@ -192,7 +192,7 @@ public function assertFieldDataLoadedCorrect(Field $field) self::assertNotNull($field->value->contentId); } - public static function provideInvalidCreationFieldData() + public static function provideInvalidCreationFieldData(): array { return []; } @@ -253,7 +253,7 @@ public function assertUpdatedFieldDataLoadedCorrect(Field $field) self::assertNotNull($field->value->contentId); } - public static function provideInvalidUpdateFieldData() + public static function provideInvalidUpdateFieldData(): array { return [ [ @@ -316,7 +316,7 @@ public function assertCopiedFieldDataLoadedCorrectly(Field $field) * * @return array */ - public static function provideToHashData() + public static function provideToHashData(): array { return [ [ @@ -357,7 +357,7 @@ public static function provideToHashData() * * @return array */ - public static function provideFromHashData() + public static function provideFromHashData(): array { return [ [ @@ -406,12 +406,15 @@ protected function createContent($fieldData, $contentType = null) return $contentService->createContentDraft($user->content->contentInfo, $user->content->versionInfo); } - public function testCreateContentWithEmptyFieldValue() + public function testCreateContentWithEmptyFieldValue(): void { self::markTestSkipped('User field will never be created empty'); } - public static function providerForTestIsEmptyValue() + /** + * @return array + */ + public static function providerForTestIsEmptyValue(): array { return [ [new UserValue()], @@ -419,7 +422,10 @@ public static function providerForTestIsEmptyValue() ]; } - public static function providerForTestIsNotEmptyValue() + /** + * @return array + */ + public static function providerForTestIsNotEmptyValue(): array { return [ [ @@ -433,7 +439,7 @@ public static function providerForTestIsNotEmptyValue() ]; } - public function testRemoveFieldDefinition() + public function testRemoveFieldDefinition(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -474,13 +480,13 @@ public function testCopyField($content) } #[Depends('testCopyField')] - public function testCopiedFieldType($content) + public function testCopiedFieldType($content): void { self::markTestSkipped('Users cannot be copied, content is not passed to test.'); } #[Depends('testCopiedFieldType')] - public function testCopiedExternalData(Field $field) + public function testCopiedExternalData(Field $field): void { self::markTestSkipped('Users cannot be copied, field is not passed to test.'); } @@ -488,7 +494,7 @@ public function testCopiedExternalData(Field $field) /** * @see https://issues.ibexa.co/browse/EZP-30966 */ - public function testUpdateFieldDefinitionWithIncompleteSettingsSchema() + public function testUpdateFieldDefinitionWithIncompleteSettingsSchema(): void { $contentTypeService = $this->getRepository()->getContentTypeService(); $contentType = $this->testCreateContentType(); diff --git a/tests/integration/Core/Repository/FieldTypeServiceTest.php b/tests/integration/Core/Repository/FieldTypeServiceTest.php index a9607bd09a..64689aacaf 100644 --- a/tests/integration/Core/Repository/FieldTypeServiceTest.php +++ b/tests/integration/Core/Repository/FieldTypeServiceTest.php @@ -22,7 +22,7 @@ class FieldTypeServiceTest extends BaseTestCase /** * Test for the getFieldTypes() method. */ - public function testGetFieldTypes() + public function testGetFieldTypes(): void { $repository = $this->getRepository(); @@ -49,7 +49,7 @@ public function testGetFieldTypes() * * Expects FieldType "ibexa_url" to be available! */ - public function testGetFieldType() + public function testGetFieldType(): void { $repository = $this->getRepository(); @@ -73,7 +73,7 @@ public function testGetFieldType() /** * Test for the getFieldType() method. */ - public function testGetFieldTypeThrowsNotFoundException() + public function testGetFieldTypeThrowsNotFoundException(): void { $this->expectException(\RuntimeException::class); @@ -90,7 +90,7 @@ public function testGetFieldTypeThrowsNotFoundException() /** * Test for the hasFieldType() method. */ - public function testHasFieldTypeReturnsTrue() + public function testHasFieldTypeReturnsTrue(): void { $repository = $this->getRepository(); @@ -107,7 +107,7 @@ public function testHasFieldTypeReturnsTrue() /** * Test for the hasFieldType() method. */ - public function testHasFieldTypeReturnsFalse() + public function testHasFieldTypeReturnsFalse(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php index 23e2c255e1..6897510f25 100644 --- a/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LanguageServiceAuthorizationTest.php @@ -23,7 +23,7 @@ class LanguageServiceAuthorizationTest extends BaseTestCase /** * Test for the createLanguage() method. */ - public function testCreateLanguageThrowsUnauthorizedException() + public function testCreateLanguageThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -53,7 +53,7 @@ public function testCreateLanguageThrowsUnauthorizedException() /** * Test for the updateLanguageName() method. */ - public function testUpdateLanguageNameThrowsUnauthorizedException() + public function testUpdateLanguageNameThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -87,7 +87,7 @@ public function testUpdateLanguageNameThrowsUnauthorizedException() /** * Test for the enableLanguage() method. */ - public function testEnableLanguageThrowsUnauthorizedException() + public function testEnableLanguageThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -119,7 +119,7 @@ public function testEnableLanguageThrowsUnauthorizedException() /** * Test for the disableLanguage() method. */ - public function testDisableLanguageThrowsUnauthorizedException() + public function testDisableLanguageThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -151,7 +151,7 @@ public function testDisableLanguageThrowsUnauthorizedException() /** * Test for the deleteLanguage() method. */ - public function testDeleteLanguageThrowsUnauthorizedException() + public function testDeleteLanguageThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php index ffab7f9bbf..26892d6b24 100644 --- a/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php +++ b/tests/integration/Core/Repository/LanguageServiceMaximumSupportedLanguagesTest.php @@ -79,7 +79,7 @@ protected function tearDown(): void * Test for the number of maximum language that can be created. */ #[DependsExternal(LanguageServiceTest::class, 'testNewLanguageCreateStruct')] - public function testCreateMaximumLanguageLimit() + public function testCreateMaximumLanguageLimit(): void { $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('Maximum number of languages reached.'); diff --git a/tests/integration/Core/Repository/LanguageServiceTest.php b/tests/integration/Core/Repository/LanguageServiceTest.php index 06d0abca79..e727be4e16 100644 --- a/tests/integration/Core/Repository/LanguageServiceTest.php +++ b/tests/integration/Core/Repository/LanguageServiceTest.php @@ -28,7 +28,7 @@ class LanguageServiceTest extends BaseTestCase /** * Test for the newLanguageCreateStruct() method. */ - public function testNewLanguageCreateStruct() + public function testNewLanguageCreateStruct(): void { $repository = $this->getRepository(); @@ -88,7 +88,7 @@ public function testCreateLanguage() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Language $language */ #[Depends('testCreateLanguage')] - public function testCreateLanguageSetsIdPropertyOnReturnedLanguage($language) + public function testCreateLanguageSetsIdPropertyOnReturnedLanguage($language): void { self::assertNotNull($language->id); } @@ -99,7 +99,7 @@ public function testCreateLanguageSetsIdPropertyOnReturnedLanguage($language) * @param \Ibexa\Contracts\Core\Repository\Values\Content\Language $language */ #[Depends('testCreateLanguage')] - public function testCreateLanguageSetsExpectedProperties($language) + public function testCreateLanguageSetsExpectedProperties($language): void { self::assertEquals( [ @@ -119,7 +119,7 @@ public function testCreateLanguageSetsExpectedProperties($language) * Test for the createLanguage() method. */ #[Depends('testCreateLanguage')] - public function testCreateLanguageThrowsInvalidArgumentException() + public function testCreateLanguageThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'languageCreateStruct\' is invalid: language with the "nor-NO" language code already exists'); @@ -146,7 +146,7 @@ public function testCreateLanguageThrowsInvalidArgumentException() * Test for the loadLanguageById() method. */ #[Depends('testCreateLanguage')] - public function testLoadLanguageById() + public function testLoadLanguageById(): void { $repository = $this->getRepository(); @@ -177,7 +177,7 @@ public function testLoadLanguageById() * Test for the loadLanguageById() method. */ #[Depends('testLoadLanguageById')] - public function testLoadLanguageByIdThrowsNotFoundException() + public function testLoadLanguageByIdThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -200,7 +200,7 @@ public function testLoadLanguageByIdThrowsNotFoundException() * Test for the updateLanguageName() method. */ #[Depends('testLoadLanguageById')] - public function testUpdateLanguageName() + public function testUpdateLanguageName(): void { $repository = $this->getRepository(); @@ -244,7 +244,7 @@ public function testUpdateLanguageName() /** * Test service method for updating language name throwing InvalidArgumentException. */ - public function testUpdateLanguageNameThrowsInvalidArgumentException() + public function testUpdateLanguageNameThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'newName\' is invalid: \'\' is incorrect value'); @@ -260,7 +260,7 @@ public function testUpdateLanguageNameThrowsInvalidArgumentException() * Test for the enableLanguage() method. */ #[Depends('testLoadLanguageById')] - public function testEnableLanguage() + public function testEnableLanguage(): void { $repository = $this->getRepository(); @@ -287,7 +287,7 @@ public function testEnableLanguage() * Test for the disableLanguage() method. */ #[Depends('testLoadLanguageById')] - public function testDisableLanguage() + public function testDisableLanguage(): void { $repository = $this->getRepository(); @@ -314,7 +314,7 @@ public function testDisableLanguage() * Test for the loadLanguage() method. */ #[Depends('testCreateLanguage')] - public function testLoadLanguage() + public function testLoadLanguage(): void { $repository = $this->getRepository(); @@ -362,7 +362,7 @@ public function testLoadLanguage() * Test for the loadLanguage() method. */ #[Depends('testLoadLanguage')] - public function testLoadLanguageThrowsNotFoundException() + public function testLoadLanguageThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -381,7 +381,7 @@ public function testLoadLanguageThrowsNotFoundException() /** * Test service method for loading language throwing InvalidArgumentException. */ - public function testLoadLanguageThrowsInvalidArgumentException() + public function testLoadLanguageThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'languageCode\' is invalid: language code has an invalid value'); @@ -396,7 +396,7 @@ public function testLoadLanguageThrowsInvalidArgumentException() */ #[Depends('testCreateLanguage')] #[Depends('testLoadLanguage')] - public function testLoadLanguages() + public function testLoadLanguages(): void { $repository = $this->getRepository(); @@ -451,7 +451,7 @@ public function loadLanguagesReturnsAnEmptyArrayByDefault() * Test for the deleteLanguage() method. */ #[Depends('testLoadLanguages')] - public function testDeleteLanguage() + public function testDeleteLanguage(): void { $repository = $this->getRepository(); $languageService = $repository->getContentLanguageService(); @@ -491,7 +491,7 @@ public function testDeleteLanguage() * we cannot declare them here. */ #[Depends('testDeleteLanguage')] - public function testDeleteLanguageThrowsInvalidArgumentException() + public function testDeleteLanguageThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'language\' is invalid: Cannot delete language: some content still references the language'); @@ -533,7 +533,7 @@ public function testDeleteLanguageThrowsInvalidArgumentException() /** * Test for the getDefaultLanguageCode() method. */ - public function testGetDefaultLanguageCode() + public function testGetDefaultLanguageCode(): void { $repository = $this->getRepository(); $languageService = $repository->getContentLanguageService(); @@ -548,7 +548,7 @@ public function testGetDefaultLanguageCode() * Test for the createLanguage() method. */ #[Depends('testCreateLanguage')] - public function testCreateLanguageInTransactionWithRollback() + public function testCreateLanguageInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -591,7 +591,7 @@ public function testCreateLanguageInTransactionWithRollback() * Test for the createLanguage() method. */ #[Depends('testCreateLanguage')] - public function testCreateLanguageInTransactionWithCommit() + public function testCreateLanguageInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -630,7 +630,7 @@ public function testCreateLanguageInTransactionWithCommit() * Test for the updateLanguageName() method. */ #[Depends('testUpdateLanguageName')] - public function testUpdateLanguageNameInTransactionWithRollback() + public function testUpdateLanguageNameInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -666,7 +666,7 @@ public function testUpdateLanguageNameInTransactionWithRollback() * Test for the updateLanguageName() method. */ #[Depends('testUpdateLanguageName')] - public function testUpdateLanguageNameInTransactionWithCommit() + public function testUpdateLanguageNameInTransactionWithCommit(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php index 82380e08ec..86d448145c 100644 --- a/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/LocationServiceAuthorizationTest.php @@ -29,7 +29,7 @@ class LocationServiceAuthorizationTest extends BaseTestCase * Test for the createLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testCreateLocation')] - public function testCreateLocationThrowsUnauthorizedException() + public function testCreateLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -69,7 +69,7 @@ public function testCreateLocationThrowsUnauthorizedException() * Test for the createLocation() method. Tests a case when user doesn't have content/manage_locations policy for the new location ID. */ #[DependsExternal(LocationServiceTest::class, 'testCreateLocation')] - public function testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentManageLocationsPolicy() + public function testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentManageLocationsPolicy(): void { $this->expectException(UnauthorizedException::class); @@ -127,7 +127,7 @@ public function testCreateLocationThrowsUnauthorizedExceptionDueToLackOfContentM * Test for the loadLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testLoadLocation')] - public function testLoadLocationThrowsUnauthorizedException() + public function testLoadLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -172,7 +172,7 @@ public function testLoadLocationListFiltersUnauthorizedLocations(): void * Test for the loadLocationByRemoteId() method. */ #[DependsExternal(LocationServiceTest::class, 'testLoadLocationByRemoteId')] - public function testLoadLocationByRemoteIdThrowsUnauthorizedException() + public function testLoadLocationByRemoteIdThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -199,7 +199,7 @@ public function testLoadLocationByRemoteIdThrowsUnauthorizedException() * Test for the loadLocations() method. */ #[DependsExternal(LocationServiceTest::class, 'testLoadLocations')] - public function testLoadLocationsNoAccess() + public function testLoadLocationsNoAccess(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -226,7 +226,7 @@ public function testLoadLocationsNoAccess() * Test for the updateLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testUpdateLocation')] - public function testUpdateLocationThrowsUnauthorizedException() + public function testUpdateLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -263,7 +263,7 @@ public function testUpdateLocationThrowsUnauthorizedException() * Test for the swapLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testSwapLocation')] - public function testSwapLocationThrowsUnauthorizedException() + public function testSwapLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -302,7 +302,7 @@ public function testSwapLocationThrowsUnauthorizedException() * Test for the hideLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testHideLocation')] - public function testHideLocationThrowsUnauthorizedException() + public function testHideLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -330,7 +330,7 @@ public function testHideLocationThrowsUnauthorizedException() * Test for the unhideLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testUnhideLocation')] - public function testUnhideLocationThrowsUnauthorizedException() + public function testUnhideLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -361,7 +361,7 @@ public function testUnhideLocationThrowsUnauthorizedException() * Test for the deleteLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testDeleteLocation')] - public function testDeleteLocationThrowsUnauthorizedException() + public function testDeleteLocationThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -419,7 +419,7 @@ public function testDeleteLocationThrowsUnauthorizedExceptionWithLanguageLimitat * Test for the deleteLocation() method. */ #[DependsExternal(LocationServiceTest::class, 'testDeleteLocation')] - public function testDeleteLocationWithSubtreeThrowsUnauthorizedException() + public function testDeleteLocationWithSubtreeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); $this->expectExceptionMessage('The User does not have the \'remove\' \'content\' permission'); @@ -515,7 +515,7 @@ public function testDeleteLocationWithSubtreeThrowsUnauthorizedException() * Test for the copySubtree() method. */ #[DependsExternal(LocationServiceTest::class, 'testCopySubtree')] - public function testCopySubtreeThrowsUnauthorizedException() + public function testCopySubtreeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -557,7 +557,7 @@ public function testCopySubtreeThrowsUnauthorizedException() * Test for the moveSubtree() method. */ #[DependsExternal(LocationServiceTest::class, 'testMoveSubtree')] - public function testMoveSubtreeThrowsUnauthorizedException() + public function testMoveSubtreeThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/LocationServiceTest.php b/tests/integration/Core/Repository/LocationServiceTest.php index 3423afc92a..a24603dbc9 100644 --- a/tests/integration/Core/Repository/LocationServiceTest.php +++ b/tests/integration/Core/Repository/LocationServiceTest.php @@ -74,7 +74,7 @@ public function testNewLocationCreateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\Content\LocationCreateStruct $locationCreate */ #[Depends('testNewLocationCreateStruct')] - public function testNewLocationCreateStructValues(LocationCreateStruct $locationCreate) + public function testNewLocationCreateStructValues(LocationCreateStruct $locationCreate): void { $this->assertPropertiesCorrect( [ @@ -213,7 +213,7 @@ public function testCreateLocationWithContentTypeSortingOptions(): void * Test for the createLocation() method. */ #[Depends('testCreateLocation')] - public function testCreateLocationStructValues(array $data) + public function testCreateLocationStructValues(array $data): void { $locationCreate = $data['locationCreate']; $createdLocation = $data['createdLocation']; @@ -242,7 +242,7 @@ public function testCreateLocationStructValues(array $data) * Test for the createLocation() method. */ #[Depends('testNewLocationCreateStruct')] - public function testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBelowParent() + public function testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBelowParent(): void { $this->expectException(InvalidArgumentException::class); @@ -274,7 +274,7 @@ public function testCreateLocationThrowsInvalidArgumentExceptionContentAlreadyBe * Test for the createLocation() method. */ #[Depends('testNewLocationCreateStruct')] - public function testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocationOfContent() + public function testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocationOfContent(): void { $this->expectException(InvalidArgumentException::class); @@ -306,7 +306,7 @@ public function testCreateLocationThrowsInvalidArgumentExceptionParentIsSubLocat * Test for the createLocation() method. */ #[Depends('testNewLocationCreateStruct')] - public function testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists() + public function testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists(): void { $this->expectException(InvalidArgumentException::class); @@ -339,7 +339,7 @@ public function testCreateLocationThrowsInvalidArgumentExceptionRemoteIdExists() */ #[Depends('testNewLocationCreateStruct')] #[DataProvider('dataProviderForOutOfRangeLocationPriority')] - public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority) + public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority): void { $this->expectException(InvalidArgumentException::class); @@ -371,7 +371,10 @@ public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfR /* END: Use Case */ } - public static function dataProviderForOutOfRangeLocationPriority() + /** + * @return array + */ + public static function dataProviderForOutOfRangeLocationPriority(): array { return [[-2147483649], [2147483648]]; } @@ -380,7 +383,7 @@ public static function dataProviderForOutOfRangeLocationPriority() * Test for the createLocation() method. */ #[Depends('testCreateLocation')] - public function testCreateLocationInTransactionWithRollback() + public function testCreateLocationInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -455,7 +458,7 @@ public function testLoadLocation() * Test for the loadLocation() method. */ #[Depends('testLoadLocation')] - public function testLoadLocationRootStructValues() + public function testLoadLocationRootStructValues(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -531,7 +534,7 @@ private function assertRootLocationStructValues(Location $location): void * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location $location */ #[Depends('testLoadLocation')] - public function testLoadLocationStructValues(Location $location) + public function testLoadLocationStructValues(Location $location): void { $this->assertPropertiesCorrect( [ @@ -563,7 +566,7 @@ public function testLoadLocationStructValues(Location $location) self::assertEquals(4, $content->contentInfo->id); } - public function testLoadLocationPrioritizedLanguagesFallback() + public function testLoadLocationPrioritizedLanguagesFallback(): void { $repository = $this->getRepository(); @@ -621,7 +624,7 @@ public function testLoadLocationThrowsNotFoundExceptionForNotAvailableContent(): * Test for the loadLocation() method. */ #[Depends('testCreateLocation')] - public function testLoadLocationThrowsNotFoundException() + public function testLoadLocationThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -697,7 +700,7 @@ public function testLoadLocationListPrioritizedLanguagesFallbackAndAlwaysAvailab /** * Test for the loadLocationList() method. */ - public function testLoadLocationListWithRootLocationId() + public function testLoadLocationListWithRootLocationId(): void { $repository = $this->getRepository(); @@ -717,7 +720,7 @@ public function testLoadLocationListWithRootLocationId() * * Ensures the list is returned in the same order as passed IDs array. */ - public function testLoadLocationListInCorrectOrder() + public function testLoadLocationListInCorrectOrder(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -738,7 +741,7 @@ public function testLoadLocationListInCorrectOrder() * Test for the loadLocationByRemoteId() method. */ #[Depends('testLoadLocation')] - public function testLoadLocationByRemoteId() + public function testLoadLocationByRemoteId(): void { $repository = $this->getRepository(); @@ -760,7 +763,7 @@ public function testLoadLocationByRemoteId() * Test for the loadLocationByRemoteId() method. */ #[Depends('testLoadLocation')] - public function testLoadLocationByRemoteIdThrowsNotFoundException() + public function testLoadLocationByRemoteIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -810,7 +813,7 @@ public function testLoadLocations() * Test for the loadLocations() method. */ #[Depends('testLoadLocations')] - public function testLoadLocationsContent(array $locations) + public function testLoadLocationsContent(array $locations): void { self::assertCount(1, $locations); foreach ($locations as $loadedLocation) { @@ -886,7 +889,7 @@ public function testLoadLocationsLimitedSubtree() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Location[] $locations */ #[Depends('testLoadLocationsLimitedSubtree')] - public function testLoadLocationsLimitedSubtreeContent(array $locations) + public function testLoadLocationsLimitedSubtreeContent(array $locations): void { self::assertCount(1, $locations); @@ -900,7 +903,7 @@ public function testLoadLocationsLimitedSubtreeContent(array $locations) * Test for the loadLocations() method. */ #[Depends('testLoadLocations')] - public function testLoadLocationsThrowsBadStateException() + public function testLoadLocationsThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -928,7 +931,7 @@ public function testLoadLocationsThrowsBadStateException() * Test for the loadLocations() method. */ #[Depends('testLoadLocations')] - public function testLoadLocationsThrowsBadStateExceptionLimitedSubtree() + public function testLoadLocationsThrowsBadStateExceptionLimitedSubtree(): void { $this->expectException(BadStateException::class); @@ -1029,7 +1032,7 @@ public function testLoadParentLocationsForDraftContent() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $contentDraft */ #[Depends('testLoadParentLocationsForDraftContent')] - public function testLoadParentLocationsForDraftContentThrowsBadStateException(Content $contentDraft) + public function testLoadParentLocationsForDraftContentThrowsBadStateException(Content $contentDraft): void { $this->expectException(BadStateException::class); $this->expectExceptionMessageMatches('/is already published/'); @@ -1046,7 +1049,7 @@ public function testLoadParentLocationsForDraftContentThrowsBadStateException(Co /** * Test for the getLocationChildCount() method. */ - public function testGetLocationChildCount() + public function testGetLocationChildCount(): void { // $locationId is the ID of an existing location $locationService = $this->getRepository()->getLocationService(); @@ -1080,7 +1083,7 @@ public function testGetLocationChildCountWithLimitation(): void * Test for the loadLocationChildren() method. */ #[Depends('testLoadLocationChildren')] - public function testLoadLocationChildrenData(LocationList $locations) + public function testLoadLocationChildrenData(LocationList $locations): void { self::assertCount(5, $locations->locations); self::assertEquals(5, $locations->getTotalCount()); @@ -1324,7 +1327,7 @@ static function (Location $location) { /** * Test for the newLocationUpdateStruct() method. */ - public function testNewLocationUpdateStruct() + public function testNewLocationUpdateStruct(): void { $repository = $this->getRepository(); @@ -1390,7 +1393,7 @@ public function testUpdateLocation() * Test for the updateLocation() method. */ #[Depends('testUpdateLocation')] - public function testUpdateLocationStructValues(array $data) + public function testUpdateLocationStructValues(array $data): void { $originalLocation = $data['originalLocation']; $updateStruct = $data['updateStruct']; @@ -1418,7 +1421,7 @@ public function testUpdateLocationStructValues(array $data) * Test for the updateLocation() method. */ #[Depends('testLoadLocation')] - public function testUpdateLocationWithSameRemoteId() + public function testUpdateLocationWithSameRemoteId(): void { $repository = $this->getRepository(); @@ -1451,7 +1454,7 @@ public function testUpdateLocationWithSameRemoteId() * Test for the updateLocation() method. */ #[Depends('testLoadLocation')] - public function testUpdateLocationThrowsInvalidArgumentException() + public function testUpdateLocationThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -1479,7 +1482,7 @@ public function testUpdateLocationThrowsInvalidArgumentException() */ #[Depends('testLoadLocation')] #[DataProvider('dataProviderForOutOfRangeLocationPriority')] - public function testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority) + public function testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority): void { $this->expectException(InvalidArgumentException::class); @@ -1507,7 +1510,7 @@ public function testUpdateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfR * Ref EZP-23302: Update Location fails if no change is performed with the update. */ #[Depends('testLoadLocation')] - public function testUpdateLocationTwice() + public function testUpdateLocationTwice(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -1536,7 +1539,7 @@ public function testUpdateLocationTwice() * Test for the swapLocation() method. */ #[Depends('testLoadLocation')] - public function testSwapLocation() + public function testSwapLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -1745,7 +1748,7 @@ static function (Location $location) { * @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException */ #[Depends('testSwapLocationForMainAndSecondaryLocation')] - public function testSwapLocationDoesNotCorruptSearchResults(array $contentItems) + public function testSwapLocationDoesNotCorruptSearchResults(array $contentItems): void { $repository = $this->getRepository(false); $searchService = $repository->getSearchService(); @@ -1845,7 +1848,7 @@ public function testSwapLocationForSecondaryLocations(): void /** * Test swapping Main Location of a Content with another one updates Content item Main Location. */ - public function testSwapLocationUpdatesMainLocation() + public function testSwapLocationUpdatesMainLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -1881,7 +1884,7 @@ public function testSwapLocationUpdatesMainLocation() /** * Test if location swap affects related bookmarks. */ - public function testBookmarksAreSwappedAfterSwapLocation() + public function testBookmarksAreSwappedAfterSwapLocation(): void { $repository = $this->getRepository(); @@ -1917,7 +1920,7 @@ public function testBookmarksAreSwappedAfterSwapLocation() * Test for the hideLocation() method. */ #[Depends('testLoadLocation')] - public function testHideLocation() + public function testHideLocation(): void { $repository = $this->getRepository(); @@ -1985,7 +1988,7 @@ protected function assertSubtreeProperties(array $expectedValues, Location $loca * Test for the unhideLocation() method. */ #[Depends('testHideLocation')] - public function testUnhideLocation() + public function testUnhideLocation(): void { $repository = $this->getRepository(); @@ -2027,7 +2030,7 @@ public function testUnhideLocation() * Test for the unhideLocation() method. */ #[Depends('testUnhideLocation')] - public function testUnhideLocationNotUnhidesHiddenSubtree() + public function testUnhideLocationNotUnhidesHiddenSubtree(): void { $repository = $this->getRepository(); @@ -2090,7 +2093,7 @@ public function testUnhideLocationNotUnhidesHiddenSubtree() * Test for the deleteLocation() method. */ #[Depends('testLoadLocation')] - public function testDeleteLocation() + public function testDeleteLocation(): void { $repository = $this->getRepository(); @@ -2137,7 +2140,7 @@ public function testDeleteLocation() * Test for the deleteLocation() method. */ #[Depends('testDeleteLocation')] - public function testDeleteLocationDecrementsChildCountOnParent() + public function testDeleteLocationDecrementsChildCountOnParent(): void { $repository = $this->getRepository(); @@ -2181,7 +2184,7 @@ public function testDeleteLocationDecrementsChildCountOnParent() * * Related issue: EZP-21904 */ - public function testDeleteContentObjectLastLocation() + public function testDeleteContentObjectLastLocation(): void { $this->expectException(NotFoundException::class); @@ -2224,7 +2227,7 @@ public function testDeleteContentObjectLastLocation() * Test for the deleteLocation() method. */ #[Depends('testDeleteLocation')] - public function testDeleteLocationDeletesRelatedBookmarks() + public function testDeleteLocationDeletesRelatedBookmarks(): void { $repository = $this->getRepository(); @@ -2340,7 +2343,7 @@ public function testDeleteUnusedLocationWhichPreviousHadContentWithRelativeAlias * Test for the copySubtree() method. */ #[Depends('testLoadLocation')] - public function testCopySubtree() + public function testCopySubtree(): void { $repository = $this->getRepository(); @@ -2390,7 +2393,7 @@ public function testCopySubtree() * Test for the copySubtree() method. */ #[Depends('testLoadLocation')] - public function testCopySubtreeWithAliases() + public function testCopySubtreeWithAliases(): void { $repository = $this->getRepository(); $urlAliasService = $repository->getURLAliasService(); @@ -2506,7 +2509,7 @@ private function assertDefaultContentStates(ContentInfo $contentInfo) * Test for the copySubtree() method. */ #[Depends('testCopySubtree')] - public function testCopySubtreeUpdatesSubtreeProperties() + public function testCopySubtreeUpdatesSubtreeProperties(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -2570,7 +2573,7 @@ public function testCopySubtreeUpdatesSubtreeProperties() * Test for the copySubtree() method. */ #[Depends('testCopySubtree')] - public function testCopySubtreeIncrementsChildCountOfNewParent() + public function testCopySubtreeIncrementsChildCountOfNewParent(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -2653,7 +2656,7 @@ public function testCopySubtreeWithInvisibleChild(): void * Test for the copySubtree() method. */ #[Depends('testCopySubtree')] - public function testCopySubtreeThrowsInvalidArgumentException() + public function testCopySubtreeThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2877,7 +2880,7 @@ public function testMoveSubtreeHidden(): void * Test for the moveSubtree() method. */ #[Depends('testMoveSubtree')] - public function testMoveSubtreeUpdatesSubtreeProperties() + public function testMoveSubtreeUpdatesSubtreeProperties(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -2936,7 +2939,7 @@ public function testMoveSubtreeUpdatesSubtreeProperties() * Test for the moveSubtree() method. */ #[Depends('testMoveSubtreeUpdatesSubtreeProperties')] - public function testMoveSubtreeUpdatesSubtreePropertiesHidden() + public function testMoveSubtreeUpdatesSubtreePropertiesHidden(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -2999,7 +3002,7 @@ public function testMoveSubtreeUpdatesSubtreePropertiesHidden() * Test for the moveSubtree() method. */ #[Depends('testMoveSubtree')] - public function testMoveSubtreeIncrementsChildCountOfNewParent() + public function testMoveSubtreeIncrementsChildCountOfNewParent(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -3055,7 +3058,7 @@ public function testMoveSubtreeIncrementsChildCountOfNewParent() * Test for the moveSubtree() method. */ #[Depends('testMoveSubtree')] - public function testMoveSubtreeDecrementsChildCountOfOldParent() + public function testMoveSubtreeDecrementsChildCountOfOldParent(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -3115,7 +3118,7 @@ public function testMoveSubtreeDecrementsChildCountOfOldParent() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testMoveInvisibleSubtree() + public function testMoveInvisibleSubtree(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); diff --git a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php index a5490c9db3..c95285fada 100644 --- a/tests/integration/Core/Repository/NonRedundantFieldSetTest.php +++ b/tests/integration/Core/Repository/NonRedundantFieldSetTest.php @@ -59,7 +59,7 @@ public function testCreateContentDefaultValues() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentDefaultValues')] - public function testCreateContentDefaultValuesFields(Content $content) + public function testCreateContentDefaultValuesFields(Content $content): void { self::assertCount(1, $content->versionInfo->languageCodes); self::assertContains('eng-US', $content->versionInfo->languageCodes); @@ -106,7 +106,7 @@ public function testCreateContentEmptyValues() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentEmptyValues')] - public function testCreateContentEmptyValuesFields(Content $content) + public function testCreateContentEmptyValuesFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -157,7 +157,7 @@ public function testCreateContentEmptyValuesTranslationNotStored() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentEmptyValuesTranslationNotStored')] - public function testCreateContentEmptyValuesTranslationNotStoredFields(Content $content) + public function testCreateContentEmptyValuesTranslationNotStoredFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -210,7 +210,7 @@ public function testCreateContentTwoLanguagesMainTranslationStored() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentTwoLanguagesMainTranslationStored')] - public function testCreateContentTwoLanguagesMainTranslationStoredFields(Content $content) + public function testCreateContentTwoLanguagesMainTranslationStoredFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -267,7 +267,7 @@ public function testCreateContentTwoLanguagesSecondTranslationNotStored() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentTwoLanguagesSecondTranslationNotStored')] - public function testCreateContentTwoLanguagesSecondTranslationNotStoredFields(Content $content) + public function testCreateContentTwoLanguagesSecondTranslationNotStoredFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -316,7 +316,7 @@ public function testCreateContentDefaultValuesNoStructFields() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentDefaultValuesNoStructFields')] - public function testCreateContentDefaultValuesNoStructFieldsFields(Content $content) + public function testCreateContentDefaultValuesNoStructFieldsFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -364,7 +364,7 @@ public function testCreateContentTwoLanguagesNoValuesForMainLanguage() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testCreateContentTwoLanguagesNoValuesForMainLanguage')] - public function testCreateContentTwoLanguagesNoValuesForMainLanguageFields(Content $content) + public function testCreateContentTwoLanguagesNoValuesForMainLanguageFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -415,7 +415,7 @@ public function testCreateContentDraft() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content[] $data */ #[Depends('testCreateContentDraft')] - public function testCreateContentDraftFields(array $data) + public function testCreateContentDraftFields(array $data): void { $content = $data[1]; @@ -447,7 +447,7 @@ public function testCreateContentDraftFields(array $data) */ #[Depends('testCreateContentDraft')] #[Depends('testCreateContentDraftFields')] - public function testCreateContentDraftFieldsRetainsIds(array $data) + public function testCreateContentDraftFieldsRetainsIds(array $data): void { $this->assertFieldIds($data[0], $data[1]); } @@ -487,7 +487,7 @@ public function testUpdateContentWithNewLanguage() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentWithNewLanguage')] - public function testUpdateContentWithNewLanguageFields(Content $content) + public function testUpdateContentWithNewLanguageFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -554,7 +554,7 @@ public function testUpdateContentWithNewLanguageVariant() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentWithNewLanguageVariant')] - public function testUpdateContentWithNewLanguageVariantFields(Content $content) + public function testUpdateContentWithNewLanguageVariantFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -613,7 +613,7 @@ public function testUpdateContentWithNewLanguageNoValues() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentWithNewLanguageNoValues')] - public function testUpdateContentWithNewLanguageNoValuesFields(Content $content) + public function testUpdateContentWithNewLanguageNoValuesFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -676,7 +676,7 @@ public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy() * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopy')] - public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopyFields(Content $content) + public function testUpdateContentUpdatingNonTranslatableFieldUpdatesFieldCopyFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); @@ -732,7 +732,7 @@ public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCr * @param \Ibexa\Contracts\Core\Repository\Values\Content\Content $content */ #[Depends('testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreated')] - public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreatedFields(Content $content) + public function testUpdateContentWithTwoLanguagesInitialLanguageTranslationNotCreatedFields(Content $content): void { $emptyValue = $this->getRepository()->getFieldTypeService()->getFieldType('ibexa_string')->getEmptyValue(); diff --git a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php index 370afd8940..fd4b348549 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceAuthorizationTest.php @@ -25,7 +25,7 @@ class ObjectStateServiceAuthorizationTest extends BaseTestCase * Test for the createObjectStateGroup() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testCreateObjectStateGroup')] - public function testCreateObjectStateGroupThrowsUnauthorizedException() + public function testCreateObjectStateGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -67,7 +67,7 @@ public function testCreateObjectStateGroupThrowsUnauthorizedException() * Test for the updateObjectStateGroup() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testUpdateObjectStateGroup')] - public function testUpdateObjectStateGroupThrowsUnauthorizedException() + public function testUpdateObjectStateGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -114,7 +114,7 @@ public function testUpdateObjectStateGroupThrowsUnauthorizedException() * Test for the deleteObjectStateGroup() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testDeleteObjectStateGroup')] - public function testDeleteObjectStateGroupThrowsUnauthorizedException() + public function testDeleteObjectStateGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -148,7 +148,7 @@ public function testDeleteObjectStateGroupThrowsUnauthorizedException() * Test for the createObjectState() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testCreateObjectState')] - public function testCreateObjectStateThrowsUnauthorizedException() + public function testCreateObjectStateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -197,7 +197,7 @@ public function testCreateObjectStateThrowsUnauthorizedException() * Test for the updateObjectState() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testUpdateObjectState')] - public function testUpdateObjectStateThrowsUnauthorizedException() + public function testUpdateObjectStateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -245,7 +245,7 @@ public function testUpdateObjectStateThrowsUnauthorizedException() * Test for the setPriorityOfObjectState() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testSetPriorityOfObjectState')] - public function testSetPriorityOfObjectStateThrowsUnauthorizedException() + public function testSetPriorityOfObjectStateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -281,7 +281,7 @@ public function testSetPriorityOfObjectStateThrowsUnauthorizedException() * Test for the deleteObjectState() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testDeleteObjectState')] - public function testDeleteObjectStateThrowsUnauthorizedException() + public function testDeleteObjectStateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -313,7 +313,7 @@ public function testDeleteObjectStateThrowsUnauthorizedException() * Test for the setContentState() method. */ #[DependsExternal(ObjectStateServiceTest::class, 'testSetContentState')] - public function testSetContentStateThrowsUnauthorizedException() + public function testSetContentStateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/ObjectStateServiceTest.php b/tests/integration/Core/Repository/ObjectStateServiceTest.php index cab6ff3a8c..0c2d011f05 100644 --- a/tests/integration/Core/Repository/ObjectStateServiceTest.php +++ b/tests/integration/Core/Repository/ObjectStateServiceTest.php @@ -65,7 +65,7 @@ public function testNewObjectStateGroupCreateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupCreateStruct $objectStateGroupCreate */ #[Depends('testNewObjectStateGroupCreateStruct')] - public function testNewObjectStateGroupCreateStructValues(ObjectStateGroupCreateStruct $objectStateGroupCreate) + public function testNewObjectStateGroupCreateStructValues(ObjectStateGroupCreateStruct $objectStateGroupCreate): void { $this->assertPropertiesCorrect( [ @@ -105,7 +105,7 @@ public function testNewObjectStateGroupUpdateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroupUpdateStruct $objectStateGroupUpdate */ #[Depends('testNewObjectStateGroupUpdateStruct')] - public function testNewObjectStateGroupUpdateStructValues(ObjectStateGroupUpdateStruct $objectStateGroupUpdate) + public function testNewObjectStateGroupUpdateStructValues(ObjectStateGroupUpdateStruct $objectStateGroupUpdate): void { $this->assertPropertiesCorrect( [ @@ -147,7 +147,7 @@ public function testNewObjectStateCreateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateCreateStruct $objectStateCreate */ #[Depends('testNewObjectStateCreateStruct')] - public function testNewObjectStateCreateStructValues(ObjectStateCreateStruct $objectStateCreate) + public function testNewObjectStateCreateStructValues(ObjectStateCreateStruct $objectStateCreate): void { $this->assertPropertiesCorrect( [ @@ -188,7 +188,7 @@ public function testNewObjectStateUpdateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateUpdateStruct $objectStateUpdate */ #[Depends('testNewObjectStateUpdateStruct')] - public function testNewObjectStateUpdateStructValues(ObjectStateUpdateStruct $objectStateUpdate) + public function testNewObjectStateUpdateStructValues(ObjectStateUpdateStruct $objectStateUpdate): void { $this->assertPropertiesCorrect( [ @@ -244,7 +244,7 @@ public function testCreateObjectStateGroup() * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup $createdObjectStateGroup */ #[Depends('testCreateObjectStateGroup')] - public function testCreateObjectStateGroupStructValues(ObjectStateGroup $createdObjectStateGroup) + public function testCreateObjectStateGroupStructValues(ObjectStateGroup $createdObjectStateGroup): void { $this->assertPropertiesCorrect( [ @@ -269,7 +269,7 @@ public function testCreateObjectStateGroupStructValues(ObjectStateGroup $created * Test for the createObjectStateGroup() method. */ #[Depends('testCreateObjectStateGroup')] - public function testCreateObjectStateGroupThrowsInvalidArgumentException() + public function testCreateObjectStateGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -300,7 +300,7 @@ public function testCreateObjectStateGroupThrowsInvalidArgumentException() /** * Test for the loadObjectStateGroup() method. */ - public function testLoadObjectStateGroup() + public function testLoadObjectStateGroup(): void { $repository = $this->getRepository(); @@ -337,7 +337,7 @@ public function testLoadObjectStateGroup() * Test for the loadObjectStateGroup() method. */ #[Depends('testLoadObjectStateGroup')] - public function testLoadObjectStateGroupThrowsNotFoundException() + public function testLoadObjectStateGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -405,7 +405,7 @@ public function testLoadObjectStateGroupByIdentifierThrowsNotFoundException(): v * Test for the loadObjectStateGroups() method. */ #[Depends('testLoadObjectStateGroup')] - public function testLoadObjectStateGroups() + public function testLoadObjectStateGroups(): void { $repository = $this->getRepository(); @@ -503,7 +503,7 @@ protected function assertObjectsLoadedByIdentifiers(array $expectedIdentifiers, * Test for the loadObjectStateGroups() method. */ #[Depends('testLoadObjectStateGroups')] - public function testLoadObjectStateGroupsWithOffset() + public function testLoadObjectStateGroupsWithOffset(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -552,7 +552,7 @@ static function ($group) { * Test for the loadObjectStateGroups() method. */ #[Depends('testLoadObjectStateGroupsWithOffset')] - public function testLoadObjectStateGroupsWithOffsetAndLimit() + public function testLoadObjectStateGroupsWithOffsetAndLimit(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -580,7 +580,7 @@ public function testLoadObjectStateGroupsWithOffsetAndLimit() * Test for the loadObjectStates() method. */ #[Depends('testLoadObjectStateGroup')] - public function testLoadObjectStates() + public function testLoadObjectStates(): void { $repository = $this->getRepository(); @@ -666,7 +666,7 @@ public function testUpdateObjectStateGroup() * Test service method for partially updating object state group. */ #[Depends('testLoadObjectStateGroup')] - public function testUpdateObjectStateGroupChosenFieldsOnly() + public function testUpdateObjectStateGroupChosenFieldsOnly(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -704,7 +704,7 @@ public function testUpdateObjectStateGroupChosenFieldsOnly() * Test for the updateObjectStateGroup() method. */ #[Depends('testUpdateObjectStateGroup')] - public function testUpdateObjectStateGroupThrowsInvalidArgumentException() + public function testUpdateObjectStateGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -754,7 +754,7 @@ public function testUpdateObjectStateGroupThrowsInvalidArgumentException() * @param array $testData */ #[Depends('testUpdateObjectStateGroup')] - public function testUpdateObjectStateGroupStructValues(array $testData) + public function testUpdateObjectStateGroupStructValues(array $testData): void { list( $loadedObjectStateGroup, @@ -828,7 +828,7 @@ public function testCreateObjectState() /** * Test service method for creating object state in empty group. */ - public function testCreateObjectStateInEmptyGroup() + public function testCreateObjectStateInEmptyGroup(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -884,7 +884,7 @@ public function testCreateObjectStateInEmptyGroup() */ #[Depends('testLoadObjectStateGroup')] #[Depends('testCreateObjectState')] - public function testCreateObjectStateThrowsInvalidArgumentException() + public function testCreateObjectStateThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -926,7 +926,7 @@ public function testCreateObjectStateThrowsInvalidArgumentException() * @param array $testData */ #[Depends('testCreateObjectState')] - public function testCreateObjectStateStructValues(array $testData) + public function testCreateObjectStateStructValues(array $testData): void { list( $loadedObjectStateGroup, @@ -1035,7 +1035,7 @@ public function testLoadObjectStateByIdentifierThrowsNotFoundException(): void * @param \Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectState $loadedObjectState */ #[Depends('testLoadObjectState')] - public function testLoadObjectStateStructValues(ObjectState $loadedObjectState) + public function testLoadObjectStateStructValues(ObjectState $loadedObjectState): void { $this->assertPropertiesCorrect( [ @@ -1065,7 +1065,7 @@ public function testLoadObjectStateStructValues(ObjectState $loadedObjectState) * Test for the loadObjectState() method. */ #[Depends('testLoadObjectState')] - public function testLoadObjectStateThrowsNotFoundException() + public function testLoadObjectStateThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -1088,7 +1088,7 @@ public function testLoadObjectStateThrowsNotFoundException() * * @return array */ - public static function getPrioritizedLanguagesList() + public static function getPrioritizedLanguagesList(): array { return [ [[], null], @@ -1112,7 +1112,7 @@ public static function getPrioritizedLanguagesList() public function testLoadObjectStateGroupsWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { // cleanup before the actual test $this->deleteExistingObjectStateGroups(); @@ -1153,7 +1153,7 @@ public function testLoadObjectStateGroupsWithPrioritizedLanguagesList( public function testLoadObjectStateGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -1189,7 +1189,7 @@ public function testLoadObjectStateGroupWithPrioritizedLanguagesList( public function testLoadObjectStateWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -1222,7 +1222,7 @@ public function testLoadObjectStateWithPrioritizedLanguagesList( * @param string|null $expectedLanguageCode */ #[DataProvider('getPrioritizedLanguagesList')] - public function testLoadObjectStatesWithPrioritizedLanguagesList($languageCodes, $expectedLanguageCode) + public function testLoadObjectStatesWithPrioritizedLanguagesList($languageCodes, $expectedLanguageCode): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -1326,7 +1326,7 @@ public function testUpdateObjectState() * Test service method for partially updating object state. */ #[Depends('testLoadObjectState')] - public function testUpdateObjectStateChosenFieldsOnly() + public function testUpdateObjectStateChosenFieldsOnly(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -1370,7 +1370,7 @@ public function testUpdateObjectStateChosenFieldsOnly() * Test for the updateObjectState() method. */ #[Depends('testUpdateObjectState')] - public function testUpdateObjectStateThrowsInvalidArgumentException() + public function testUpdateObjectStateThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -1411,7 +1411,7 @@ public function testUpdateObjectStateThrowsInvalidArgumentException() * @param array $testData */ #[Depends('testUpdateObjectState')] - public function testUpdateObjectStateStructValues(array $testData) + public function testUpdateObjectStateStructValues(array $testData): void { list( $loadedObjectState, @@ -1446,7 +1446,7 @@ public function testUpdateObjectStateStructValues(array $testData) * Test for the setPriorityOfObjectState() method. */ #[Depends('testLoadObjectState')] - public function testSetPriorityOfObjectState() + public function testSetPriorityOfObjectState(): void { $repository = $this->getRepository(); @@ -1483,7 +1483,7 @@ public function testSetPriorityOfObjectState() */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] #[Depends('testLoadObjectState')] - public function testGetContentState() + public function testGetContentState(): void { $repository = $this->getRepository(); @@ -1519,7 +1519,7 @@ public function testGetContentState() */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] #[Depends('testLoadObjectState')] - public function testGetInitialObjectState() + public function testGetInitialObjectState(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -1583,7 +1583,7 @@ public function testGetInitialObjectState() */ #[DependsExternal(ContentServiceTest::class, 'testLoadContentInfo')] #[Depends('testLoadObjectState')] - public function testSetContentState() + public function testSetContentState(): void { $repository = $this->getRepository(); @@ -1625,7 +1625,7 @@ public function testSetContentState() * Test for the setContentState() method. */ #[Depends('testSetContentState')] - public function testSetContentStateThrowsInvalidArgumentException() + public function testSetContentStateThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -1666,7 +1666,7 @@ public function testSetContentStateThrowsInvalidArgumentException() * Test for the getContentCount() method. */ #[Depends('testLoadObjectState')] - public function testGetContentCount() + public function testGetContentCount(): void { $repository = $this->getRepository(); @@ -1687,7 +1687,7 @@ public function testGetContentCount() * Test for the deleteObjectState() method. */ #[Depends('testLoadObjectState')] - public function testDeleteObjectState() + public function testDeleteObjectState(): void { $repository = $this->getRepository(); @@ -1717,7 +1717,7 @@ public function testDeleteObjectState() * Test for the deleteObjectStateGroup() method. */ #[Depends('testLoadObjectStateGroup')] - public function testDeleteObjectStateGroup() + public function testDeleteObjectStateGroup(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/PermissionResolverTest.php b/tests/integration/Core/Repository/PermissionResolverTest.php index d6cb630827..f89a07a5d6 100644 --- a/tests/integration/Core/Repository/PermissionResolverTest.php +++ b/tests/integration/Core/Repository/PermissionResolverTest.php @@ -38,7 +38,7 @@ class PermissionResolverTest extends BaseTestCase /** * Test for the getCurrentUserReference() method. */ - public function testGetCurrentUserReferenceReturnsAnonymousUserReference() + public function testGetCurrentUserReferenceReturnsAnonymousUserReference(): void { $repository = $this->getRepository(); $anonymousUserId = $this->generateId('user', 10); @@ -65,7 +65,7 @@ public function testGetCurrentUserReferenceReturnsAnonymousUserReference() * Test for the setCurrentUserReference() method. */ #[DependsExternal(RepositoryTest::class, 'testGetUserService')] - public function testSetCurrentUserReference() + public function testSetCurrentUserReference(): void { $repository = $this->getRepository(); $repository->getPermissionResolver()->setCurrentUserReference( @@ -105,7 +105,7 @@ public function testSetCurrentUserReference() * Test for the hasAccess() method. */ #[DependsExternal(RepositoryTest::class, 'testGetUserService')] - public function testHasAccessWithAnonymousUserNo() + public function testHasAccessWithAnonymousUserNo(): void { $repository = $this->getRepository(); @@ -134,7 +134,7 @@ public function testHasAccessWithAnonymousUserNo() */ #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[Depends('testHasAccessWithAnonymousUserNo')] - public function testHasAccessForCurrentUserNo() + public function testHasAccessForCurrentUserNo(): void { $repository = $this->getRepository(); @@ -165,7 +165,7 @@ public function testHasAccessForCurrentUserNo() * Test for the hasAccess() method. */ #[DependsExternal(RepositoryTest::class, 'testGetUserService')] - public function testHasAccessWithAdministratorUser() + public function testHasAccessWithAdministratorUser(): void { $repository = $this->getRepository(); @@ -193,7 +193,7 @@ public function testHasAccessWithAdministratorUser() #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[Depends('testSetCurrentUserReference')] #[Depends('testHasAccessWithAdministratorUser')] - public function testHasAccessForCurrentUserYes() + public function testHasAccessForCurrentUserYes(): void { $repository = $this->getRepository(); @@ -223,7 +223,7 @@ public function testHasAccessForCurrentUserYes() */ #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[Depends('testSetCurrentUserReference')] - public function testHasAccessLimited() + public function testHasAccessLimited(): void { $repository = $this->getRepository(); @@ -252,7 +252,7 @@ public function testHasAccessLimited() #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[Depends('testHasAccessForCurrentUserNo')] - public function testCanUserForAnonymousUserNo() + public function testCanUserForAnonymousUserNo(): void { $this->expectException(UnauthorizedException::class); @@ -296,7 +296,7 @@ public function testCanUserForAnonymousUserNo() #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[Depends('testHasAccessForCurrentUserYes')] - public function testCanUserForAdministratorUser() + public function testCanUserForAdministratorUser(): void { $this->expectException(NotFoundException::class); @@ -339,7 +339,7 @@ public function testCanUserForAdministratorUser() #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithLimitationYes() + public function testCanUserWithLimitationYes(): void { $repository = $this->getRepository(); @@ -373,7 +373,7 @@ public function testCanUserWithLimitationYes() #[DependsExternal(RepositoryTest::class, 'testGetUserService')] #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithLimitationNo() + public function testCanUserWithLimitationNo(): void { $this->expectException(UnauthorizedException::class); @@ -416,7 +416,7 @@ public function testCanUserWithLimitationNo() #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] #[Depends('testSetCurrentUserReference')] #[Depends('testHasAccessLimited')] - public function testCanUserThrowsInvalidArgumentException() + public function testCanUserThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -453,7 +453,7 @@ public function testCanUserThrowsInvalidArgumentException() #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithTargetYes() + public function testCanUserWithTargetYes(): void { $repository = $this->getRepository(); @@ -512,7 +512,7 @@ public function testCanUserWithTargetYes() #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithTargetNo() + public function testCanUserWithTargetNo(): void { $this->expectException(UnauthorizedException::class); @@ -570,7 +570,7 @@ public function testCanUserWithTargetNo() #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithMultipleTargetsYes() + public function testCanUserWithMultipleTargetsYes(): void { $repository = $this->getRepository(); @@ -630,7 +630,7 @@ public function testCanUserWithMultipleTargetsYes() #[DependsExternal(RepositoryTest::class, 'testGetContentService')] #[DependsExternal(RepositoryTest::class, 'testGetContentTypeService')] #[Depends('testHasAccessLimited')] - public function testCanUserWithMultipleTargetsNo() + public function testCanUserWithMultipleTargetsNo(): void { $this->expectException(UnauthorizedException::class); @@ -691,7 +691,7 @@ public function testCanUserWithMultipleTargetsNo() #[DependsExternal(RepositoryTest::class, 'testGetURLAliasService')] #[Depends('testSetCurrentUserReference')] #[Depends('testHasAccessLimited')] - public function testCanUserWithTargetThrowsInvalidArgumentException() + public function testCanUserWithTargetThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -732,7 +732,7 @@ public function testCanUserWithTargetThrowsInvalidArgumentException() /** * Test for the canUser() method. */ - public function testCanUserThrowsBadStateException() + public function testCanUserThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -764,7 +764,7 @@ public function testCanUserWithLimitations( ValueObject $object, array $targets, $expectedResult - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $roleService = $repository->getRoleService(); @@ -798,7 +798,7 @@ public function testCanUserWithLimitations( * * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException */ - public static function getDataForTestCanUserWithLimitations() + public static function getDataForTestCanUserWithLimitations(): array { $repository = static::resolveRepository(); $contentService = $repository->getContentService(); diff --git a/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php b/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php index 6deebabd2e..891a377b7c 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018LanguageTest.php @@ -60,7 +60,7 @@ protected function setUp(): void $this->refreshSearch($repository); } - public function testSearchOnNotExistingLanguageGivesException() + public function testSearchOnNotExistingLanguageGivesException(): void { $this->expectException(NotFoundException::class); @@ -74,7 +74,7 @@ public function testSearchOnNotExistingLanguageGivesException() $this->getRepository()->getSearchService()->findContent($query); } - public function testSearchOnUsedLanguageGivesOneResult() + public function testSearchOnUsedLanguageGivesOneResult(): void { $query = new Query(); $query->filter = new LanguageCode(['por-PT'], false); @@ -84,7 +84,7 @@ public function testSearchOnUsedLanguageGivesOneResult() self::assertCount(1, $results->searchHits); } - public function testSearchOnStandardLanguageGivesManyResult() + public function testSearchOnStandardLanguageGivesManyResult(): void { $query = new Query(); $query->filter = new LanguageCode(['eng-US'], false); @@ -95,7 +95,7 @@ public function testSearchOnStandardLanguageGivesManyResult() self::assertEquals($results->totalCount, count($results->searchHits)); } - public function testSearchOnNotUsedInstalledLanguageGivesNoResult() + public function testSearchOnNotUsedInstalledLanguageGivesNoResult(): void { $query = new Query(); $query->filter = new LanguageCode(['eng-GB'], false); diff --git a/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php b/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php index 8a62b84427..d78403818d 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018ObjectStateTest.php @@ -18,7 +18,7 @@ #[CoversClass(ObjectStateId::class)] class EZP20018ObjectStateTest extends BaseTestCase { - public function testSearchForNonUsedObjectState() + public function testSearchForNonUsedObjectState(): void { $repository = $this->getRepository(); @@ -46,7 +46,7 @@ public function testSearchForNonUsedObjectState() self::assertCount($results2->totalCount, $results2->searchHits); } - public function testSearchForUsedObjectState() + public function testSearchForUsedObjectState(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php b/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php index cf15775754..daf17238f0 100644 --- a/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php +++ b/tests/integration/Core/Repository/Regression/EZP20018VisibilityTest.php @@ -18,7 +18,7 @@ #[CoversClass(Visibility::class)] class EZP20018VisibilityTest extends BaseTestCase { - public function testSearchForHiddenContent() + public function testSearchForHiddenContent(): void { $repository = $this->getRepository(); @@ -42,7 +42,7 @@ public function testSearchForHiddenContent() self::assertCount(1, $results2->searchHits); } - public function testSearchForVisibleContent() + public function testSearchForVisibleContent(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Regression/EZP21069Test.php b/tests/integration/Core/Repository/Regression/EZP21069Test.php index d3afa37238..f9f95e8eea 100644 --- a/tests/integration/Core/Repository/Regression/EZP21069Test.php +++ b/tests/integration/Core/Repository/Regression/EZP21069Test.php @@ -84,7 +84,7 @@ protected function setUp(): void $this->refreshSearch($repository); } - public function testSearchOnPreviousAttributeContentGivesNoResult() + public function testSearchOnPreviousAttributeContentGivesNoResult(): void { $query = new Query(); $query->filter = new Field('name', Operator::EQ, 'TheOriginalNews'); @@ -94,7 +94,7 @@ public function testSearchOnPreviousAttributeContentGivesNoResult() self::assertEmpty($results->searchHits); } - public function testSearchOnCurrentAttributeContentGivesOnesResult() + public function testSearchOnCurrentAttributeContentGivesOnesResult(): void { $query = new Query(); $query->filter = new Field('name', Operator::EQ, 'TheUpdatedNews'); @@ -104,7 +104,7 @@ public function testSearchOnCurrentAttributeContentGivesOnesResult() self::assertCount(1, $results->searchHits); } - public function testSearchOnDraftAttributeContentGivesNoResult() + public function testSearchOnDraftAttributeContentGivesNoResult(): void { $query = new Query(); $query->filter = new Field('name', Operator::EQ, 'TheDraftNews'); diff --git a/tests/integration/Core/Repository/Regression/EZP21089Test.php b/tests/integration/Core/Repository/Regression/EZP21089Test.php index 2e519455ee..861181511e 100644 --- a/tests/integration/Core/Repository/Regression/EZP21089Test.php +++ b/tests/integration/Core/Repository/Regression/EZP21089Test.php @@ -107,7 +107,7 @@ protected function setUp(): void $this->contentType = $contentTypeService->loadContentType($type->id); } - public function testCreateContent() + public function testCreateContent(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php b/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php index bc4693ac49..cbc9b05fd9 100644 --- a/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php +++ b/tests/integration/Core/Repository/Regression/EZP21109IbexaIntegerTest.php @@ -74,7 +74,10 @@ public function testIbexaIntegerWithDefaultValues(int $integerValue): void $contentService->deleteContent($content->versionInfo->contentInfo); } - public static function validIntegerValues() + /** + * @return array + */ + public static function validIntegerValues(): array { return [ [0], diff --git a/tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php b/tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php index dd025ee3cc..4cc994831b 100644 --- a/tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php +++ b/tests/integration/Core/Repository/Regression/EZP21771IbexaStringTest.php @@ -22,7 +22,7 @@ class EZP21771IbexaStringTest extends BaseTestCase * It shouldn't throw a fatal error when inserting 11 consecutive digits * into an IbexaString field */ - public function test11NumbersOnIbexaString() + public function test11NumbersOnIbexaString(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); diff --git a/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php b/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php index 9136376059..4d6970e7ed 100644 --- a/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php +++ b/tests/integration/Core/Repository/Regression/EZP21906SearchOneContentMultipleLocationsTest.php @@ -63,14 +63,17 @@ protected function setUp(): void } #[DataProvider('searchContentQueryProvider')] - public function testSearchContentMultipleLocations(Query $query, $expectedResultCount) + public function testSearchContentMultipleLocations(Query $query, $expectedResultCount): void { $result = $this->getRepository()->getSearchService()->findContent($query); self::assertSame($expectedResultCount, $result->totalCount); self::assertSame($expectedResultCount, count($result->searchHits)); } - public static function searchContentQueryProvider() + /** + * @return array + */ + public static function searchContentQueryProvider(): array { return [ [ diff --git a/tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php b/tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php index 77613442dc..c230e02ae9 100644 --- a/tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22408DeleteRelatedObjectTest.php @@ -22,7 +22,7 @@ protected function setUp(): void $this->createTestContentType(); } - public function testRelationListIsUpdatedWhenRelatedObjectIsDeleted() + public function testRelationListIsUpdatedWhenRelatedObjectIsDeleted(): void { $targetObject1 = $this->createTargetObject('Relation list target object 1'); $targetObject2 = $this->createTargetObject('Relation list target object 2'); @@ -43,7 +43,7 @@ public function testRelationListIsUpdatedWhenRelatedObjectIsDeleted() self::assertSame([$targetObject2->id], $relationListValue->destinationContentIds); } - public function testSingleRelationIsUpdatedWhenRelatedObjectIsDeleted() + public function testSingleRelationIsUpdatedWhenRelatedObjectIsDeleted(): void { $targetObject = $this->createTargetObject('Single relation target object'); $referenceObject = $this->createReferenceObject( diff --git a/tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php b/tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php index 2d7b1eeb60..19e130d94a 100644 --- a/tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22409RelationListTypeStateTest.php @@ -100,12 +100,12 @@ protected function setUp(): void $contentTypeService->publishContentTypeDraft($type); } - public function testCreateObjectWithRelationToContentType() + public function testCreateObjectWithRelationToContentType(): void { $this->createContentWithRelationList(); } - public function testCreateObjectWithRelationToContentTypeWithExistingDraft() + public function testCreateObjectWithRelationToContentTypeWithExistingDraft(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); diff --git a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php index d543cf2540..2550b69a8b 100644 --- a/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22612URLAliasTranslationsTest.php @@ -50,7 +50,7 @@ private function getFolderCreateStruct($name) /** * Test that alias is found (ie. NotFoundException is not thrown). */ - public function testURLAliasLoadedInRightLanguage() + public function testURLAliasLoadedInRightLanguage(): void { $aliasService = $this->getRepository()->getURLAliasService(); $alias = $aliasService->lookup('common/alias'); diff --git a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php index 67c12d8397..05aa767f7a 100644 --- a/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22840RoleLimitationsTest.php @@ -20,7 +20,7 @@ class EZP22840RoleLimitationsTest extends BaseTestCase /** * Test Subtree Role Assignment Limitation against state/assign. */ - public function testSubtreeRoleAssignLimitation() + public function testSubtreeRoleAssignLimitation(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -66,7 +66,7 @@ public function testSubtreeRoleAssignLimitation() /** * Test Section Role Assignment Limitation against user/login. */ - public function testSectionRoleAssignLimitation() + public function testSectionRoleAssignLimitation(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); diff --git a/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php b/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php index 7d13f704cb..0fce612300 100644 --- a/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php +++ b/tests/integration/Core/Repository/Regression/EZP22958SearchSubtreePathstringFormatTest.php @@ -26,7 +26,7 @@ protected function setUp(): void * Tests that invalid path string provided for subtree criterion result in exception. */ #[DataProvider('searchContentQueryWithInvalidDataProvider')] - public function testSearchContentSubtreeShouldThrowException($pathString) + public function testSearchContentSubtreeShouldThrowException($pathString): void { $this->expectException(\InvalidArgumentException::class); @@ -43,7 +43,7 @@ public function testSearchContentSubtreeShouldThrowException($pathString) * Tests that path string provided for subtree criterion is valid. */ #[DataProvider('searchContentQueryProvider')] - public function testSearchContentSubtree($pathString) + public function testSearchContentSubtree($pathString): void { $query = new Query( [ @@ -54,7 +54,10 @@ public function testSearchContentSubtree($pathString) $result = $this->getRepository()->getSearchService()->findContent($query); } - public static function searchContentQueryProvider() + /** + * @return array + */ + public static function searchContentQueryProvider(): array { return [ [ @@ -69,7 +72,10 @@ public static function searchContentQueryProvider() ]; } - public static function searchContentQueryWithInvalidDataProvider() + /** + * @return array + */ + public static function searchContentQueryWithInvalidDataProvider(): array { return [ [ diff --git a/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php b/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php index fe9a2f3b96..6105e6a1f0 100644 --- a/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26327UrlAliasHistorizationTest.php @@ -16,7 +16,7 @@ #[Group('ezp26327')] class EZP26327UrlAliasHistorizationTest extends BaseTestCase { - public function testHistorization() + public function testHistorization(): void { $contentService = $this->getRepository()->getContentService(); $contentTypeService = $this->getRepository()->getContentTypeService(); diff --git a/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php b/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php index 8ea51b7d02..7c0bdfb7f0 100644 --- a/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26367UrlAliasHistoryRedirectLoopTest.php @@ -20,7 +20,7 @@ #[Group('cache-spi')] class EZP26367UrlAliasHistoryRedirectLoopTest extends BaseTestCase { - public function testReverseLookupReturnsHistoryAlias() + public function testReverseLookupReturnsHistoryAlias(): void { $contentService = $this->getRepository()->getContentService(); $contentTypeService = $this->getRepository()->getContentTypeService(); @@ -88,7 +88,7 @@ public function testReverseLookupReturnsHistoryAlias() self::assertFalse($urlAlias->isHistory); } - public function testLookupHistoryUrlReturnsActiveAlias() + public function testLookupHistoryUrlReturnsActiveAlias(): void { $contentService = $this->getRepository()->getContentService(); $contentTypeService = $this->getRepository()->getContentTypeService(); diff --git a/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php b/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php index 8627766604..f0b0272663 100644 --- a/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php +++ b/tests/integration/Core/Repository/Regression/EZP26551DeleteContentTypeDraftTest.php @@ -18,7 +18,7 @@ #[Group('ezp26551')] class EZP26551DeleteContentTypeDraftTest extends BaseTestCase { - public function testDeleteContentTypeGroup() + public function testDeleteContentTypeGroup(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); diff --git a/tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php b/tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php index 9ae53a8e37..d140009d03 100644 --- a/tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php +++ b/tests/integration/Core/Repository/Regression/EZP28799SubtreeSearchTest.php @@ -61,7 +61,7 @@ public function createTestContent() return [$leftFolder, $rightFolder, $targetFolder]; } - public function testConflictingConditions() + public function testConflictingConditions(): void { list($leftFolder, $rightFolder, $targetFolder) = $this->createTestContent(); $locationService = $this->getRepository()->getLocationService(); @@ -83,7 +83,7 @@ public function testConflictingConditions() self::assertSame(0, $result->totalCount); } - public function testNegativeSubtree() + public function testNegativeSubtree(): void { list($leftFolder, $rightFolder, $targetFolder) = $this->createTestContent(); $locationService = $this->getRepository()->getLocationService(); diff --git a/tests/integration/Core/Repository/Regression/EnvTest.php b/tests/integration/Core/Repository/Regression/EnvTest.php index d0cd939c8c..ff9a7ca283 100644 --- a/tests/integration/Core/Repository/Regression/EnvTest.php +++ b/tests/integration/Core/Repository/Regression/EnvTest.php @@ -21,7 +21,7 @@ class EnvTest extends BaseTestCase /** * Verify Redis cache is setup if asked for, if not file system. */ - public function testVerifyCacheDriver() + public function testVerifyCacheDriver(): void { $pool = $this->getSetupFactory()->getServiceContainer()->get('ibexa.cache_pool'); diff --git a/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php b/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php index 9a6086b52c..5dbdb6257e 100644 --- a/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php +++ b/tests/integration/Core/Repository/Regression/PureNegativeQueryTest.php @@ -21,7 +21,10 @@ #[Group('regression')] class PureNegativeQueryTest extends BaseTestCase { - public static function providerForTestMatchAll() + /** + * @return array + */ + public static function providerForTestMatchAll(): array { $query = new Query(['filter' => new Criterion\MatchAll()]); $result = static::resolveRepository()->getSearchService()->findContent($query); @@ -219,7 +222,7 @@ public static function providerForTestMatchAll() * @param int $totalCount */ #[DataProvider('providerForTestMatchAll')] - public function testMatchAllContentInfoQuery($criterion, $totalCount) + public function testMatchAllContentInfoQuery($criterion, $totalCount): void { $query = new Query( [ @@ -237,7 +240,7 @@ public function testMatchAllContentInfoQuery($criterion, $totalCount) * @param int $totalCount */ #[DataProvider('providerForTestMatchAll')] - public function testMatchAllContentInfoFilter($criterion, $totalCount) + public function testMatchAllContentInfoFilter($criterion, $totalCount): void { $query = new Query( [ @@ -255,7 +258,7 @@ public function testMatchAllContentInfoFilter($criterion, $totalCount) * @param int $totalCount */ #[DataProvider('providerForTestMatchAll')] - public function testMatchAllLocationQuery($criterion, $totalCount) + public function testMatchAllLocationQuery($criterion, $totalCount): void { $query = new LocationQuery( [ @@ -273,7 +276,7 @@ public function testMatchAllLocationQuery($criterion, $totalCount) * @param int $totalCount */ #[DataProvider('providerForTestMatchAll')] - public function testMatchAllLocationFilter($criterion, $totalCount) + public function testMatchAllLocationFilter($criterion, $totalCount): void { $query = new LocationQuery( [ diff --git a/tests/integration/Core/Repository/RepositoryTest.php b/tests/integration/Core/Repository/RepositoryTest.php index 0085183e86..78ed759200 100644 --- a/tests/integration/Core/Repository/RepositoryTest.php +++ b/tests/integration/Core/Repository/RepositoryTest.php @@ -39,7 +39,7 @@ class RepositoryTest extends BaseTestCase */ #[Group('content')] #[Group('user')] - public function testGetContentService() + public function testGetContentService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -52,7 +52,7 @@ public function testGetContentService() * Test for the getContentLanguageService() method. */ #[Group('language')] - public function testGetContentLanguageService() + public function testGetContentLanguageService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -67,7 +67,7 @@ public function testGetContentLanguageService() #[Group('content-type')] #[Group('field-type')] #[Group('user')] - public function testGetContentTypeService() + public function testGetContentTypeService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -80,7 +80,7 @@ public function testGetContentTypeService() * Test for the getLocationService() method. */ #[Group('location')] - public function testGetLocationService() + public function testGetLocationService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -93,7 +93,7 @@ public function testGetLocationService() * Test for the getSectionService() method. */ #[Group('section')] - public function testGetSectionService() + public function testGetSectionService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -106,7 +106,7 @@ public function testGetSectionService() * Test for the getUserService() method. */ #[Group('user')] - public function testGetUserService() + public function testGetUserService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -119,7 +119,7 @@ public function testGetUserService() * Test for the getNotificationService() method. */ #[Group('user')] - public function testGetNotificationService() + public function testGetNotificationService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -132,7 +132,7 @@ public function testGetNotificationService() * Test for the getTrashService() method. */ #[Group('trash')] - public function testGetTrashService() + public function testGetTrashService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -145,7 +145,7 @@ public function testGetTrashService() * Test for the getRoleService() method. */ #[Group('role')] - public function testGetRoleService() + public function testGetRoleService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -158,7 +158,7 @@ public function testGetRoleService() * Test for the getURLAliasService() method. */ #[Group('url-alias')] - public function testGetURLAliasService() + public function testGetURLAliasService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -171,7 +171,7 @@ public function testGetURLAliasService() * Test for the getUrlWildcardService() method. */ #[Group('url-wildcard')] - public function testGetURLWildcardService() + public function testGetURLWildcardService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -184,7 +184,7 @@ public function testGetURLWildcardService() * Test for the getObjectStateService(). */ #[Group('object-state')] - public function testGetObjectStateService() + public function testGetObjectStateService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -197,7 +197,7 @@ public function testGetObjectStateService() * Test for the getFieldTypeService(). */ #[Group('object-state')] - public function testGetFieldTypeService() + public function testGetFieldTypeService(): void { $repository = $this->getRepository(); self::assertInstanceOf( @@ -210,7 +210,7 @@ public function testGetFieldTypeService() * Test for the getSearchService() method. */ #[Group('search')] - public function testGetSearchService() + public function testGetSearchService(): void { $repository = $this->getRepository(); @@ -224,7 +224,7 @@ public function testGetSearchService() * Test for the getSearchService() method. */ #[Group('permission')] - public function testGetPermissionResolver() + public function testGetPermissionResolver(): void { $repository = $this->getRepository(); @@ -237,7 +237,7 @@ public function testGetPermissionResolver() /** * Test for the commit() method. */ - public function testCommit() + public function testCommit(): void { $repository = $this->getRepository(); @@ -254,7 +254,7 @@ public function testCommit() /** * Test for the commit() method. */ - public function testCommitThrowsRuntimeException() + public function testCommitThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); @@ -265,7 +265,7 @@ public function testCommitThrowsRuntimeException() /** * Test for the rollback() method. */ - public function testRollback() + public function testRollback(): void { $repository = $this->getRepository(); $repository->beginTransaction(); @@ -275,7 +275,7 @@ public function testRollback() /** * Test for the rollback() method. */ - public function testRollbackThrowsRuntimeException() + public function testRollbackThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); diff --git a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php index e09518b68d..255c7511d3 100644 --- a/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/RoleServiceAuthorizationTest.php @@ -29,7 +29,7 @@ class RoleServiceAuthorizationTest extends BaseTestCase */ #[DependsExternal(RoleServiceTest::class, 'testCreateRole')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testCreateRoleThrowsUnauthorizedException() + public function testCreateRoleThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -58,7 +58,7 @@ public function testCreateRoleThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testLoadRole')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testLoadRoleThrowsUnauthorizedException() + public function testLoadRoleThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -84,7 +84,7 @@ public function testLoadRoleThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testLoadRoleByIdentifier')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testLoadRoleByIdentifierThrowsUnauthorizedException() + public function testLoadRoleByIdentifierThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -108,7 +108,7 @@ public function testLoadRoleByIdentifierThrowsUnauthorizedException() /** * Test for the loadRoles() method. */ - public function testLoadRolesLoadsEmptyListForAnonymousUser() + public function testLoadRolesLoadsEmptyListForAnonymousUser(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -129,7 +129,7 @@ public function testLoadRolesLoadsEmptyListForAnonymousUser() /** * Test for the loadRoles() method. */ - public function testLoadRolesForUserWithSubtreeLimitation() + public function testLoadRolesForUserWithSubtreeLimitation(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -159,7 +159,7 @@ public function testLoadRolesForUserWithSubtreeLimitation() */ #[DependsExternal(RoleServiceTest::class, 'testDeleteRole')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testDeleteRoleThrowsUnauthorizedException() + public function testDeleteRoleThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -185,7 +185,7 @@ public function testDeleteRoleThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testUpdatePolicyByRoleDraft')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testUpdatePolicyByRoleDraftThrowsUnauthorizedException() + public function testUpdatePolicyByRoleDraftThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -230,7 +230,7 @@ public function testUpdatePolicyByRoleDraftThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testRemovePolicyByRoleDraft')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testRemovePolicyThrowsUnauthorizedException() + public function testRemovePolicyThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -272,7 +272,7 @@ public function testRemovePolicyThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testRemovePolicyByRoleDraft')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testDeletePolicyThrowsUnauthorizedException() + public function testDeletePolicyThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -303,7 +303,7 @@ public function testDeletePolicyThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUserGroup')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testAssignRoleToUserGroupThrowsUnauthorizedException() + public function testAssignRoleToUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -335,7 +335,7 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUserGroup')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimitationParameter() + public function testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimitationParameter(): void { $this->expectException(UnauthorizedException::class); @@ -374,7 +374,7 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedExceptionWithRoleLimi */ #[DependsExternal(RoleServiceTest::class, 'testRemoveRoleAssignmentFromUserGroup')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException() + public function testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -415,7 +415,7 @@ public function testRemoveRoleAssignmentFromUserGroupThrowsUnauthorizedException */ #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUser')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testAssignRoleToUserThrowsUnauthorizedException() + public function testAssignRoleToUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -441,7 +441,7 @@ public function testAssignRoleToUserThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testAssignRoleToUser')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitationParameter() + public function testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitationParameter(): void { $this->expectException(UnauthorizedException::class); @@ -474,7 +474,7 @@ public function testAssignRoleToUserThrowsUnauthorizedExceptionWithRoleLimitatio */ #[DependsExternal(RoleServiceTest::class, 'testRemoveRoleAssignment')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testRemoveRoleAssignmentThrowsUnauthorizedException() + public function testRemoveRoleAssignmentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -508,7 +508,7 @@ public function testRemoveRoleAssignmentThrowsUnauthorizedException() */ #[DependsExternal(RoleServiceTest::class, 'testGetRoleAssignments')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testGetRoleAssignmentsThrowsUnauthorizedException() + public function testGetRoleAssignmentsThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -532,7 +532,7 @@ public function testGetRoleAssignmentsThrowsUnauthorizedException() /** * Test for the getRoleAssignmentsForUser() method. */ - public function testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser() + public function testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -552,7 +552,7 @@ public function testGetRoleAssignmentsForUserLoadsEmptyListForAnonymousUser() /** * Test for the getRoleAssignmentsForUser() method. */ - public function testGetRoleAssignmentsForUserWithSubtreeLimitation() + public function testGetRoleAssignmentsForUserWithSubtreeLimitation(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -582,7 +582,7 @@ public function testGetRoleAssignmentsForUserWithSubtreeLimitation() */ #[DependsExternal(RoleServiceTest::class, 'testGetRoleAssignmentsForUserGroup')] #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testGetRoleAssignmentsForUserGroupThrowsUnauthorizedException() + public function testGetRoleAssignmentsForUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/RoleServiceTest.php b/tests/integration/Core/Repository/RoleServiceTest.php index 81f7e9fa0f..649fdc0ae4 100644 --- a/tests/integration/Core/Repository/RoleServiceTest.php +++ b/tests/integration/Core/Repository/RoleServiceTest.php @@ -60,7 +60,7 @@ class RoleServiceTest extends BaseTestCase /** * Test for the newRoleCreateStruct() method. */ - public function testNewRoleCreateStruct() + public function testNewRoleCreateStruct(): void { $repository = $this->getRepository(); @@ -85,7 +85,7 @@ public function testNewRoleCopyStruct(): void * Test for the newRoleCreateStruct() method. */ #[Depends('testNewRoleCreateStruct')] - public function testNewRoleCreateStructSetsNamePropertyOnStruct() + public function testNewRoleCreateStructSetsNamePropertyOnStruct(): void { $repository = $this->getRepository(); @@ -230,7 +230,7 @@ public function testRoleCreateStructValuesWithPolicy(array $data) /** * Test creating a role with multiple policies. */ - public function testCreateRoleWithMultiplePolicies() + public function testCreateRoleWithMultiplePolicies(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -320,7 +320,7 @@ public function testCreateRoleWithMultiplePolicies() * Test for the createRoleDraft() method. */ #[Depends('testNewRoleCreateStruct')] - public function testCreateRoleDraft() + public function testCreateRoleDraft(): void { $repository = $this->getRepository(); @@ -349,7 +349,7 @@ public function testCreateRoleDraft() * Test for the createRole() method. */ #[Depends('testCreateRole')] - public function testCreateRoleThrowsInvalidArgumentException() + public function testCreateRoleThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -373,7 +373,7 @@ public function testCreateRoleThrowsInvalidArgumentException() * Test for the createRoleDraft() method. */ #[Depends('testCreateRoleDraft')] - public function testCreateRoleDraftThrowsInvalidArgumentException() + public function testCreateRoleDraftThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -401,7 +401,7 @@ public function testCreateRoleDraftThrowsInvalidArgumentException() /** * Test for the createRole() method. */ - public function testCreateRoleThrowsLimitationValidationException() + public function testCreateRoleThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -440,7 +440,7 @@ public function testCreateRoleThrowsLimitationValidationException() * Test for the createRole() method. */ #[Depends('testNewRoleCreateStruct')] - public function testCreateRoleInTransactionWithRollback() + public function testCreateRoleInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -474,7 +474,7 @@ public function testCreateRoleInTransactionWithRollback() * Test for the createRoleDraft() method. */ #[Depends('testNewRoleCreateStruct')] - public function testCreateRoleDraftInTransactionWithRollback() + public function testCreateRoleDraftInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -678,7 +678,7 @@ public function testCopyRoleWithPoliciesAndLimitations( * Test for the loadRole() method. */ #[Depends('testCreateRole')] - public function testLoadRole() + public function testLoadRole(): void { $repository = $this->getRepository(); @@ -705,7 +705,7 @@ public function testLoadRole() * Test for the loadRoleDraft() method. */ #[Depends('testCreateRoleDraft')] - public function testLoadRoleDraft() + public function testLoadRoleDraft(): void { $repository = $this->getRepository(); @@ -727,7 +727,7 @@ public function testLoadRoleDraft() self::assertEquals('roleName', $role->identifier); } - public function testLoadRoleDraftByRoleId() + public function testLoadRoleDraftByRoleId(): void { $repository = $this->getRepository(); @@ -757,7 +757,7 @@ public function testLoadRoleDraftByRoleId() * Test for the loadRole() method. */ #[Depends('testLoadRole')] - public function testLoadRoleThrowsNotFoundException() + public function testLoadRoleThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -778,7 +778,7 @@ public function testLoadRoleThrowsNotFoundException() * Test for the loadRoleDraft() method. */ #[Depends('testLoadRoleDraft')] - public function testLoadRoleDraftThrowsNotFoundException() + public function testLoadRoleDraftThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -795,7 +795,7 @@ public function testLoadRoleDraftThrowsNotFoundException() /* END: Use Case */ } - public function testLoadRoleDraftByRoleIdThrowsNotFoundException() + public function testLoadRoleDraftByRoleIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -816,7 +816,7 @@ public function testLoadRoleDraftByRoleIdThrowsNotFoundException() * Test for the loadRoleByIdentifier() method. */ #[Depends('testCreateRole')] - public function testLoadRoleByIdentifier() + public function testLoadRoleByIdentifier(): void { $repository = $this->getRepository(); @@ -843,7 +843,7 @@ public function testLoadRoleByIdentifier() * Test for the loadRoleByIdentifier() method. */ #[Depends('testLoadRoleByIdentifier')] - public function testLoadRoleByIdentifierThrowsNotFoundException() + public function testLoadRoleByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -863,7 +863,7 @@ public function testLoadRoleByIdentifierThrowsNotFoundException() * Test for the loadRoles() method. */ #[Depends('testCreateRole')] - public function testLoadRoles() + public function testLoadRoles(): void { $repository = $this->getRepository(); @@ -897,7 +897,7 @@ public function testLoadRoles() * Test for the loadRoles() method. */ #[Depends('testLoadRoles')] - public function testLoadRolesReturnsExpectedSetOfDefaultRoles() + public function testLoadRolesReturnsExpectedSetOfDefaultRoles(): void { $repository = $this->getRepository(); @@ -927,7 +927,7 @@ public function testLoadRolesReturnsExpectedSetOfDefaultRoles() /** * Test for the newRoleUpdateStruct() method. */ - public function testNewRoleUpdateStruct() + public function testNewRoleUpdateStruct(): void { $repository = $this->getRepository(); @@ -944,7 +944,7 @@ public function testNewRoleUpdateStruct() */ #[Depends('testNewRoleUpdateStruct')] #[Depends('testLoadRoleDraft')] - public function testUpdateRoleDraft() + public function testUpdateRoleDraft(): void { $repository = $this->getRepository(); @@ -973,7 +973,7 @@ public function testUpdateRoleDraft() * Test for the updateRoleDraft() method. */ #[Depends('testUpdateRoleDraft')] - public function testUpdateRoleDraftThrowsInvalidArgumentException() + public function testUpdateRoleDraftThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -1001,7 +1001,7 @@ public function testUpdateRoleDraftThrowsInvalidArgumentException() */ #[Depends('testCreateRole')] #[Depends('testLoadRoles')] - public function testDeleteRole() + public function testDeleteRole(): void { $repository = $this->getRepository(); @@ -1026,7 +1026,7 @@ public function testDeleteRole() * Test for the deleteRoleDraft() method. */ #[Depends('testLoadRoleDraft')] - public function testDeleteRoleDraft() + public function testDeleteRoleDraft(): void { $this->expectException(NotFoundException::class); @@ -1051,7 +1051,7 @@ public function testDeleteRoleDraft() /** * Test for the newPolicyCreateStruct() method. */ - public function testNewPolicyCreateStruct() + public function testNewPolicyCreateStruct(): void { $repository = $this->getRepository(); @@ -1067,7 +1067,7 @@ public function testNewPolicyCreateStruct() * Test for the newPolicyCreateStruct() method. */ #[Depends('testNewPolicyCreateStruct')] - public function testNewPolicyCreateStructSetsStructProperties() + public function testNewPolicyCreateStructSetsStructProperties(): void { $repository = $this->getRepository(); @@ -1087,7 +1087,7 @@ public function testNewPolicyCreateStructSetsStructProperties() */ #[Depends('testCreateRoleDraft')] #[Depends('testNewPolicyCreateStruct')] - public function testAddPolicyByRoleDraft() + public function testAddPolicyByRoleDraft(): void { $repository = $this->getRepository(); @@ -1185,7 +1185,7 @@ public function testAddPolicyByRoleDraftUpdatesRole() * @param array $roleAndPolicy */ #[Depends('testAddPolicyByRoleDraftUpdatesRole')] - public function testAddPolicyByRoleDraftSetsPolicyProperties($roleAndPolicy) + public function testAddPolicyByRoleDraftSetsPolicyProperties($roleAndPolicy): void { list($role, $policy) = $roleAndPolicy; @@ -1200,7 +1200,7 @@ public function testAddPolicyByRoleDraftSetsPolicyProperties($roleAndPolicy) */ #[Depends('testNewPolicyCreateStruct')] #[Depends('testCreateRoleDraft')] - public function testAddPolicyByRoleDraftThrowsLimitationValidationException() + public function testAddPolicyByRoleDraftThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -1237,7 +1237,7 @@ public function testAddPolicyByRoleDraftThrowsLimitationValidationException() * Test for the createRole() method. */ #[Depends('testAddPolicyByRoleDraftUpdatesRole')] - public function testCreateRoleWithAddPolicy() + public function testCreateRoleWithAddPolicy(): void { $repository = $this->getRepository(); @@ -1295,7 +1295,7 @@ public function testCreateRoleWithAddPolicy() * Test for the createRoleDraft() method. */ #[Depends('testAddPolicyByRoleDraftUpdatesRole')] - public function testCreateRoleDraftWithAddPolicy() + public function testCreateRoleDraftWithAddPolicy(): void { $repository = $this->getRepository(); @@ -1349,7 +1349,7 @@ public function testCreateRoleDraftWithAddPolicy() /** * Test for the newPolicyUpdateStruct() method. */ - public function testNewPolicyUpdateStruct() + public function testNewPolicyUpdateStruct(): void { $repository = $this->getRepository(); @@ -1364,7 +1364,7 @@ public function testNewPolicyUpdateStruct() ); } - public function testUpdatePolicyByRoleDraftNoLimitation() + public function testUpdatePolicyByRoleDraftNoLimitation(): void { $repository = $this->getRepository(); @@ -1521,7 +1521,7 @@ public function testUpdatePolicyUpdatesLimitations($roleAndPolicy) * @param \Ibexa\Contracts\Core\Repository\Values\User\Role $role */ #[Depends('testUpdatePolicyUpdatesLimitations')] - public function testUpdatePolicyUpdatesRole($role) + public function testUpdatePolicyUpdatesRole($role): void { $limitations = []; foreach ($role->getPolicies() as $policy) { @@ -1553,7 +1553,7 @@ public function testUpdatePolicyUpdatesRole($role) #[Depends('testNewPolicyUpdateStruct')] #[Depends('testNewRoleCreateStruct')] #[Depends('testCreateRole')] - public function testUpdatePolicyByRoleDraftThrowsLimitationValidationException() + public function testUpdatePolicyByRoleDraftThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -1620,7 +1620,7 @@ public function testUpdatePolicyByRoleDraftThrowsLimitationValidationException() * Test for the removePolicyByRoleDraft() method. */ #[Depends('testAddPolicyByRoleDraft')] - public function testRemovePolicyByRoleDraft() + public function testRemovePolicyByRoleDraft(): void { $repository = $this->getRepository(); @@ -1656,7 +1656,7 @@ public function testRemovePolicyByRoleDraft() /** * Test for the addPolicyByRoleDraft() method. */ - public function testAddPolicyWithRoleAssignment() + public function testAddPolicyWithRoleAssignment(): void { $repository = $this->getRepository(); @@ -1784,7 +1784,7 @@ public function testGetRoleAssignments() * @param \Ibexa\Contracts\Core\Repository\Values\User\RoleAssignment[] $roleAssignments */ #[Depends('testGetRoleAssignments')] - public function testGetRoleAssignmentsContainExpectedLimitation(array $roleAssignments) + public function testGetRoleAssignmentsContainExpectedLimitation(array $roleAssignments): void { self::assertEquals( 'Subtree', @@ -1884,7 +1884,7 @@ public function testCountRoleAssignmentsAfterDeletingUser(): void * Test for the assignRoleToUser() method. */ #[Depends('testGetRoleAssignments')] - public function testAssignRoleToUser() + public function testAssignRoleToUser(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -1910,7 +1910,7 @@ public function testAssignRoleToUser() * Test for the assignRoleToUser() method. */ #[Depends('testAssignRoleToUser')] - public function testAssignRoleToUserWithRoleLimitation() + public function testAssignRoleToUserWithRoleLimitation(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2014,7 +2014,7 @@ public function testAssignRoleToUserWithRoleLimitation() */ #[Depends('testAssignRoleToUser')] #[Depends('testLoadRoleByIdentifier')] - public function testAssignRoleToUserWithRoleLimitationThrowsLimitationValidationException() + public function testAssignRoleToUserWithRoleLimitationThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -2053,7 +2053,7 @@ public function testAssignRoleToUserWithRoleLimitationThrowsLimitationValidation */ #[Depends('testAssignRoleToUser')] #[Depends('testLoadRoleByIdentifier')] - public function testAssignRoleToUserThrowsInvalidArgumentException() + public function testAssignRoleToUserThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2096,7 +2096,7 @@ public function testAssignRoleToUserThrowsInvalidArgumentException() */ #[Depends('testAssignRoleToUser')] #[Depends('testLoadRoleByIdentifier')] - public function testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentException() + public function testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2146,7 +2146,7 @@ public function testAssignRoleToUserWithRoleLimitationThrowsInvalidArgumentExcep * Test for the removeRoleAssignment() method. */ #[Depends('testAssignRoleToUser')] - public function testRemoveRoleAssignment() + public function testRemoveRoleAssignment(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2180,7 +2180,7 @@ public function testRemoveRoleAssignment() */ #[Depends('testAssignRoleToUser')] #[Depends('testCreateRoleWithAddPolicy')] - public function testGetRoleAssignmentsForUserDirect() + public function testGetRoleAssignmentsForUserDirect(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2233,7 +2233,7 @@ public function testGetRoleAssignmentsForUserDirect() */ #[Depends('testAssignRoleToUser')] #[Depends('testCreateRoleWithAddPolicy')] - public function testGetRoleAssignmentsForUserEmpty() + public function testGetRoleAssignmentsForUserEmpty(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2255,7 +2255,7 @@ public function testGetRoleAssignmentsForUserEmpty() */ #[Depends('testAssignRoleToUser')] #[Depends('testCreateRoleWithAddPolicy')] - public function testGetRoleAssignmentsForUserInherited() + public function testGetRoleAssignmentsForUserInherited(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2280,7 +2280,7 @@ public function testGetRoleAssignmentsForUserInherited() * Test for the assignRoleToUserGroup() method. */ #[Depends('testGetRoleAssignments')] - public function testAssignRoleToUserGroup() + public function testAssignRoleToUserGroup(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2307,7 +2307,7 @@ public function testAssignRoleToUserGroup() * * Related issue: EZP-29113 */ - public function testAssignRoleToUserGroupAffectsRoleAssignmentsForUser() + public function testAssignRoleToUserGroupAffectsRoleAssignmentsForUser(): void { $roleService = $this->getRepository()->getRoleService(); @@ -2334,7 +2334,7 @@ public function testAssignRoleToUserGroupAffectsRoleAssignmentsForUser() * Test for the assignRoleToUserGroup() method. */ #[Depends('testAssignRoleToUserGroup')] - public function testAssignRoleToUserGroupWithRoleLimitation() + public function testAssignRoleToUserGroupWithRoleLimitation(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2434,7 +2434,7 @@ public function testAssignRoleToUserGroupWithRoleLimitation() */ #[Depends('testLoadRoleByIdentifier')] #[Depends('testAssignRoleToUserGroup')] - public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValidationException() + public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -2474,7 +2474,7 @@ public function testAssignRoleToUserGroupWithRoleLimitationThrowsLimitationValid */ #[Depends('testLoadRoleByIdentifier')] #[Depends('testAssignRoleToUserGroup')] - public function testAssignRoleToUserGroupThrowsInvalidArgumentException() + public function testAssignRoleToUserGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2518,7 +2518,7 @@ public function testAssignRoleToUserGroupThrowsInvalidArgumentException() */ #[Depends('testLoadRoleByIdentifier')] #[Depends('testAssignRoleToUserGroup')] - public function testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgumentException() + public function testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2569,7 +2569,7 @@ public function testAssignRoleToUserGroupWithRoleLimitationThrowsInvalidArgument * Test for the removeRoleAssignment() method. */ #[Depends('testAssignRoleToUserGroup')] - public function testRemoveRoleAssignmentFromUserGroup() + public function testRemoveRoleAssignmentFromUserGroup(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2603,7 +2603,7 @@ public function testRemoveRoleAssignmentFromUserGroup() /** * Test unassigning role by assignment. */ - public function testUnassignRoleByAssignment() + public function testUnassignRoleByAssignment(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2628,7 +2628,7 @@ public function testUnassignRoleByAssignment() * * But on current admin user so he lacks access to read roles. */ - public function testUnassignRoleByAssignmentThrowsUnauthorizedException() + public function testUnassignRoleByAssignmentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -2651,7 +2651,7 @@ public function testUnassignRoleByAssignmentThrowsUnauthorizedException() /** * Test unassigning role by non-existing assignment. */ - public function testUnassignRoleByAssignmentThrowsNotFoundException() + public function testUnassignRoleByAssignmentThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2676,7 +2676,7 @@ public function testUnassignRoleByAssignmentThrowsNotFoundException() */ #[Depends('testAssignRoleToUserGroup')] #[Depends('testCreateRoleWithAddPolicy')] - public function testGetRoleAssignmentsForUserGroup() + public function testGetRoleAssignmentsForUserGroup(): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); @@ -2724,7 +2724,7 @@ public function testGetRoleAssignmentsForUserGroup() */ #[Depends('testAssignRoleToUser')] #[Depends('testAssignRoleToUserGroup')] - public function testLoadPoliciesByUserId() + public function testLoadPoliciesByUserId(): void { $repository = $this->getRepository(); @@ -2798,7 +2798,7 @@ public function testLoadPoliciesByUserId() * Test for the publishRoleDraft() method. */ #[Depends('testCreateRoleDraft')] - public function testPublishRoleDraft() + public function testPublishRoleDraft(): void { $repository = $this->getRepository(); @@ -2834,7 +2834,7 @@ public function testPublishRoleDraft() */ #[Depends('testCreateRoleDraft')] #[Depends('testAddPolicyByRoleDraft')] - public function testPublishRoleDraftAddPolicies() + public function testPublishRoleDraftAddPolicies(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/SearchEngineIndexingTest.php b/tests/integration/Core/Repository/SearchEngineIndexingTest.php index fa9f055133..a4c16be3e5 100644 --- a/tests/integration/Core/Repository/SearchEngineIndexingTest.php +++ b/tests/integration/Core/Repository/SearchEngineIndexingTest.php @@ -61,7 +61,7 @@ public function testFindContentInfoFullTextIsSearchable() * @param \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo $contentInfo */ #[Depends('testFindContentInfoFullTextIsSearchable')] - public function testFindLocationsFullTextIsSearchable(ContentInfo $contentInfo) + public function testFindLocationsFullTextIsSearchable(ContentInfo $contentInfo): void { $searchTerm = 'pamplemousse'; @@ -87,7 +87,7 @@ public function testFindLocationsFullTextIsSearchable(ContentInfo $contentInfo) * Test that indexing full text data depends on the isSearchable flag on the field definition. */ #[Depends('testFindContentInfoFullTextIsSearchable')] - public function testFindContentInfoFullTextIsNotSearchable() + public function testFindContentInfoFullTextIsNotSearchable(): void { $searchTerm = 'pamplemousse'; $this->createFullTextIsSearchableContent($searchTerm, false); @@ -110,7 +110,7 @@ public function testFindContentInfoFullTextIsNotSearchable() * Test that indexing full text data depends on the isSearchable flag on the field definition. */ #[Depends('testFindLocationsFullTextIsSearchable')] - public function testFindLocationsFullTextIsNotSearchable() + public function testFindLocationsFullTextIsNotSearchable(): void { $searchTerm = 'pamplemousse'; @@ -185,7 +185,7 @@ protected function createFullTextIsSearchableContent($searchText, $isSearchable) /** * EZP-26186: Make sure index is NOT deleted on removal of version draft (affected Solr). */ - public function testDeleteVersion() + public function testDeleteVersion(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -213,7 +213,7 @@ public function testDeleteVersion() /** * EZP-26186: Make sure affected child locations are deleted on content deletion (affected Solr). */ - public function testDeleteContent() + public function testDeleteContent(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -236,7 +236,7 @@ public function testDeleteContent() /** * EZP-26186: Make sure index is deleted on removal of Users (affected Solr). */ - public function testDeleteUser() + public function testDeleteUser(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -259,7 +259,7 @@ public function testDeleteUser() /** * EZP-26186: Make sure index is deleted on removal of UserGroups (affected Solr). */ - public function testDeleteUserGroup() + public function testDeleteUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -282,7 +282,7 @@ public function testDeleteUserGroup() /** * Test that a newly created user is available for search. */ - public function testCreateUser() + public function testCreateUser(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -318,7 +318,7 @@ public function testCreateUser() /** * Test that a newly updated user is available for search. */ - public function testUpdateUser() + public function testUpdateUser(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -350,7 +350,7 @@ public function testUpdateUser() /** * Test that a newly created user group is available for search. */ - public function testCreateUserGroup() + public function testCreateUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -380,7 +380,7 @@ public function testCreateUserGroup() /** * Test that a newly created Location is available for search. */ - public function testCreateLocation() + public function testCreateLocation(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -402,7 +402,7 @@ public function testCreateLocation() /** * Test that hiding a Location makes it unavailable for search. */ - public function testHideSubtree() + public function testHideSubtree(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -428,7 +428,7 @@ public function testHideSubtree() /** * Test that hiding and revealing a Location makes it available for search. */ - public function testRevealSubtree() + public function testRevealSubtree(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -456,7 +456,7 @@ public function testRevealSubtree() /** * Test that a copied subtree is available for search. */ - public function testCopySubtree() + public function testCopySubtree(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -506,7 +506,7 @@ public function testCopySubtree() /** * Test that moved subtree is available for search and found only under a specific parent Location. */ - public function testMoveSubtree() + public function testMoveSubtree(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -571,7 +571,7 @@ public function testMoveSubtree() * Testing that content is indexed even when containing only fields with values * considered to be empty by the search engine. */ - public function testIndexContentWithNullField() + public function testIndexContentWithNullField(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -627,7 +627,7 @@ public function testIndexContentWithNullField() /** * Test that updated Location is available for search. */ - public function testUpdateLocation() + public function testUpdateLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -665,7 +665,7 @@ public function testUpdateLocation() * Testing that content will be deleted with all of its subitems but subitems with additional location will stay as * they are. */ - public function testDeleteLocation() + public function testDeleteLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -700,7 +700,7 @@ public function testDeleteLocation() /** * Test content is available for search after being published. */ - public function testPublishVersion() + public function testPublishVersion(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -731,7 +731,7 @@ public function testPublishVersion() /** * Test recovered content is available for search. */ - public function testRecoverLocation() + public function testRecoverLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -761,7 +761,7 @@ public function testRecoverLocation() /** * Test copied content is available for search. */ - public function testCopyContent() + public function testCopyContent(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -787,7 +787,7 @@ public function testCopyContent() /** * Test that setting object content state to locked and then unlocked does not affect search index. */ - public function testSetContentState() + public function testSetContentState(): void { $repository = $this->getRepository(); $objectStateService = $repository->getObjectStateService(); @@ -818,7 +818,7 @@ public function testSetContentState() * @param array $ignoreForSetupFactories list of SetupFactories to be ignored */ #[DataProvider('getSpecialFullTextCases')] - public function testIndexingSpecialFullTextCases($text, $searchForText) + public function testIndexingSpecialFullTextCases($text, $searchForText): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -889,7 +889,7 @@ public static function getEmailAddressesCases(): array * * @return array */ - public static function getSpecialFullTextCases() + public static function getSpecialFullTextCases(): array { return [ ['UPPERCASE TEXT', 'uppercase text'], @@ -916,7 +916,7 @@ public static function getSpecialFullTextCases() * * @see https://issues.ibexa.co/browse/EZP-27250 */ - public function testUserFullTextSearch() + public function testUserFullTextSearch(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -938,7 +938,7 @@ public function testUserFullTextSearch() /** * Test updating Content field value with empty value removes it from search index. */ - public function testRemovedContentFieldValueIsNotFound() + public function testRemovedContentFieldValueIsNotFound(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -988,7 +988,7 @@ private function assertSubtreeInvisibleProperty(SearchService $searchService, $p /** * Test that swapping locations affects properly Search Engine Index. */ - public function testSwapLocation() + public function testSwapLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -1021,7 +1021,7 @@ public function testSwapLocation() /** * Test that updating Content metadata affects properly Search Engine Index. */ - public function testUpdateContentMetadata() + public function testUpdateContentMetadata(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -1072,7 +1072,7 @@ public function testUpdateContentMetadata() /** * Test that updating Content Draft metadata does not affect Search Engine Index. */ - public function testUpdateContentDraftMetadataIsNotIndexed() + public function testUpdateContentDraftMetadataIsNotIndexed(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -1097,7 +1097,7 @@ public function testUpdateContentDraftMetadataIsNotIndexed() /** * Test that assigning section to content object properly affects Search Engine Index. */ - public function testAssignSection() + public function testAssignSection(): void { $repository = $this->getRepository(); $sectionService = $repository->getSectionService(); @@ -1121,7 +1121,7 @@ public function testAssignSection() /** * Test search engine is updated after removal of the translation from all the Versions. */ - public function testDeleteTranslation() + public function testDeleteTranslation(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); diff --git a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php index db7b6fee8b..230da5318d 100644 --- a/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SearchServiceAuthorizationTest.php @@ -28,7 +28,7 @@ class SearchServiceAuthorizationTest extends BaseTestCase * Test for the findContent() method but with anonymous user. */ #[DependsExternal(SearchServiceTest::class, 'testFindContentFiltered')] - public function testFindContent() + public function testFindContent(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -56,7 +56,7 @@ public function testFindContent() * Test for the findContent() method. */ #[DependsExternal(SearchServiceTest::class, 'testFindContentFiltered')] - public function testFindContentEmptyResult() + public function testFindContentEmptyResult(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -87,7 +87,7 @@ public function testFindContentEmptyResult() * Test for the findSingle() method. */ #[DependsExternal(SearchServiceTest::class, 'testFindSingle')] - public function testFindSingleThrowsNotFoundException() + public function testFindSingleThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -117,7 +117,7 @@ public function testFindSingleThrowsNotFoundException() * Test for the findContent() method, verifying disabling permissions. */ #[DependsExternal(self::class, 'testFindContent')] - public function testFindContentWithUserPermissionFilter() + public function testFindContentWithUserPermissionFilter(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -153,7 +153,7 @@ public function testFindContentWithUserPermissionFilter() * Test for the findSingle() method disabling permission filtering. */ #[DependsExternal(self::class, 'testFindContent')] - public function testFindSingleWithUserPermissionFilter() + public function testFindSingleWithUserPermissionFilter(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -182,7 +182,7 @@ public function testFindSingleWithUserPermissionFilter() * Test for the findSingle() method. */ #[DependsExternal(self::class, 'testFindContent')] - public function testFindSingleThrowsNotFoundExceptionWithUserPermissionFilter() + public function testFindSingleThrowsNotFoundExceptionWithUserPermissionFilter(): void { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/SearchServiceLocationTest.php b/tests/integration/Core/Repository/SearchServiceLocationTest.php index 809260dbd3..f902d62e79 100644 --- a/tests/integration/Core/Repository/SearchServiceLocationTest.php +++ b/tests/integration/Core/Repository/SearchServiceLocationTest.php @@ -193,7 +193,7 @@ protected function createFolderWithNonPrintableUtf8Characters(): Content /** * Test for the findLocations() method. */ - public function testFieldIsEmptyInLocation() + public function testFieldIsEmptyInLocation(): void { $testContents = $this->createMovieContent(); @@ -224,7 +224,7 @@ public function testFieldIsEmptyInLocation() /** * Test for the findLocations() method. */ - public function testFieldIsNotEmptyInLocation() + public function testFieldIsNotEmptyInLocation(): void { $testContents = $this->createMovieContent(); @@ -252,7 +252,7 @@ public function testFieldIsNotEmptyInLocation() /** * Test for the findLocations() method. */ - public function testFieldCollectionContains() + public function testFieldCollectionContains(): void { $testContent = $this->createMultipleCountriesContent(); @@ -281,7 +281,7 @@ public function testFieldCollectionContains() * Test for the findLocations() method. */ #[DependsExternal(SearchServiceTest::class, 'testFieldCollectionContains')] - public function testFieldCollectionContainsNoMatch() + public function testFieldCollectionContainsNoMatch(): void { $this->createMultipleCountriesContent(); $query = new LocationQuery( @@ -364,7 +364,7 @@ public function testEscapedNonPrintableUtf8Characters(): void self::assertEquals(1, $result->totalCount); } - public function testInvalidFieldIdentifierRange() + public function testInvalidFieldIdentifierRange(): void { $this->expectException(InvalidArgumentException::class); @@ -385,7 +385,7 @@ public function testInvalidFieldIdentifierRange() ); } - public function testInvalidFieldIdentifierIn() + public function testInvalidFieldIdentifierIn(): void { $this->expectException(InvalidArgumentException::class); @@ -406,7 +406,7 @@ public function testInvalidFieldIdentifierIn() ); } - public function testFindLocationsWithNonSearchableField() + public function testFindLocationsWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); @@ -443,7 +443,7 @@ static function (SearchHit $searchHit) { /** * Test for the findLocations() method. */ - public function testQueryCustomField() + public function testQueryCustomField(): void { $query = new LocationQuery( [ @@ -472,7 +472,7 @@ public function testQueryCustomField() * the last_name of admin and anonymous. This is done to show the custom * copy field working. */ - public function testQueryModifiedField() + public function testQueryModifiedField(): void { // Check using get_class since the others extend SetupFactory\Legacy if ($this->getSetupFactory() instanceof Legacy) { @@ -540,7 +540,7 @@ protected function createTestPlaceContentType() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceLessThanOrEqual() + public function testMapLocationDistanceLessThanOrEqual(): void { $contentType = $this->createTestPlaceContentType(); @@ -619,7 +619,7 @@ public function testMapLocationDistanceLessThanOrEqual() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceGreaterThanOrEqual() + public function testMapLocationDistanceGreaterThanOrEqual(): void { $contentType = $this->createTestPlaceContentType(); @@ -698,7 +698,7 @@ public function testMapLocationDistanceGreaterThanOrEqual() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceBetween() + public function testMapLocationDistanceBetween(): void { $contentType = $this->createTestPlaceContentType(); @@ -793,7 +793,7 @@ public function testMapLocationDistanceBetween() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceSortAscending() + public function testMapLocationDistanceSortAscending(): void { $contentType = $this->createTestPlaceContentType(); @@ -909,7 +909,7 @@ public function testMapLocationDistanceSortAscending() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceSortDescending() + public function testMapLocationDistanceSortDescending(): void { $contentType = $this->createTestPlaceContentType(); @@ -1025,7 +1025,7 @@ public function testMapLocationDistanceSortDescending() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceWithCustomField() + public function testMapLocationDistanceWithCustomField(): void { $contentType = $this->createTestPlaceContentType(); @@ -1107,7 +1107,7 @@ public function testMapLocationDistanceWithCustomField() * Test for the findLocations() method. */ #[Group('maplocation')] - public function testMapLocationDistanceWithCustomFieldSort() + public function testMapLocationDistanceWithCustomFieldSort(): void { $contentType = $this->createTestPlaceContentType(); @@ -1225,7 +1225,7 @@ public function testMapLocationDistanceWithCustomFieldSort() /** * Test for the findLocations() method. */ - public function testVisibilityCriterionWithHiddenContent() + public function testVisibilityCriterionWithHiddenContent(): void { $repository = $this->getRepository(); $contentTypeService = $repository->getContentTypeService(); diff --git a/tests/integration/Core/Repository/SearchServiceTest.php b/tests/integration/Core/Repository/SearchServiceTest.php index 1b76fa2384..d200ba856e 100644 --- a/tests/integration/Core/Repository/SearchServiceTest.php +++ b/tests/integration/Core/Repository/SearchServiceTest.php @@ -48,7 +48,10 @@ class SearchServiceTest extends BaseTestCase self::FIND_LOCATION_METHOD, ]; - public static function getFilterContentSearches() + /** + * @return array + */ + public static function getFilterContentSearches(): array { $fixtureDir = static::getFixtureDir(); @@ -613,7 +616,10 @@ static function ($a, $b): int { ]; } - public static function getContentQuerySearches() + /** + * @return array + */ + public static function getContentQuerySearches(): array { $fixtureDir = static::getFixtureDir(); @@ -848,7 +854,10 @@ public static function getContentQuerySearches() ]; } - public static function getLocationQuerySearches() + /** + * @return array + */ + public static function getLocationQuerySearches(): array { $fixtureDir = static::getFixtureDir(); @@ -922,7 +931,7 @@ public static function getLocationQuerySearches() * Test for the findContent() method. */ #[DataProvider('getFilterContentSearches')] - public function testFindContentFiltered($queryData, $fixture, $closure = null) + public function testFindContentFiltered($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -932,7 +941,7 @@ public function testFindContentFiltered($queryData, $fixture, $closure = null) * Test for the findContentInfo() method. */ #[DataProvider('getFilterContentSearches')] - public function testFindContentInfoFiltered($queryData, $fixture, $closure = null) + public function testFindContentInfoFiltered($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $this->getContentInfoFixtureClosure($closure), true); @@ -942,7 +951,7 @@ public function testFindContentInfoFiltered($queryData, $fixture, $closure = nul * Test for the findLocations() method. */ #[DataProvider('getFilterContentSearches')] - public function testFindLocationsContentFiltered($queryData, $fixture, $closure = null) + public function testFindLocationsContentFiltered($queryData, $fixture, $closure = null): void { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -952,7 +961,7 @@ public function testFindLocationsContentFiltered($queryData, $fixture, $closure * Test for the findContent() method. */ #[DataProvider('getContentQuerySearches')] - public function testQueryContent($queryData, $fixture, $closure = null) + public function testQueryContent($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -962,7 +971,7 @@ public function testQueryContent($queryData, $fixture, $closure = null) * Test for the findContentInfo() method. */ #[DataProvider('getContentQuerySearches')] - public function testQueryContentInfo($queryData, $fixture, $closure = null) + public function testQueryContentInfo($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $this->getContentInfoFixtureClosure($closure), true); @@ -972,7 +981,7 @@ public function testQueryContentInfo($queryData, $fixture, $closure = null) * Test for the findLocations() method. */ #[DataProvider('getContentQuerySearches')] - public function testQueryContentLocations($queryData, $fixture, $closure = null) + public function testQueryContentLocations($queryData, $fixture, $closure = null): void { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -982,13 +991,16 @@ public function testQueryContentLocations($queryData, $fixture, $closure = null) * Test for the findLocations() method. */ #[DataProvider('getLocationQuerySearches')] - public function testQueryLocations($queryData, $fixture, $closure = null) + public function testQueryLocations($queryData, $fixture, $closure = null): void { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); } - public static function getCaseInsensitiveSearches() + /** + * @return array + */ + public static function getCaseInsensitiveSearches(): array { return [ [ @@ -1028,7 +1040,7 @@ public static function getCaseInsensitiveSearches() * Test for the findContent() method. */ #[DataProvider('getCaseInsensitiveSearches')] - public function testFindContentFieldFiltersCaseSensitivity($queryData) + public function testFindContentFieldFiltersCaseSensitivity($queryData): void { $query = new Query($queryData); $this->assertQueryFixture( @@ -1041,7 +1053,7 @@ public function testFindContentFieldFiltersCaseSensitivity($queryData) * Test for the findLocations() method. */ #[DataProvider('getCaseInsensitiveSearches')] - public function testFindLocationsFieldFiltersCaseSensitivity($queryData) + public function testFindLocationsFieldFiltersCaseSensitivity($queryData): void { $query = new LocationQuery($queryData); $this->assertQueryFixture( @@ -1050,7 +1062,10 @@ public function testFindLocationsFieldFiltersCaseSensitivity($queryData) ); } - public static function getRelationFieldFilterSearches() + /** + * @return array + */ + public static function getRelationFieldFilterSearches(): array { $fixtureDir = static::getFixtureDir(); @@ -1128,7 +1143,7 @@ public static function getRelationFieldFilterSearches() * Purely for creating relation data needed for testFindRelationFieldContentInfoFiltered() * and testFindRelationFieldLocationsFiltered(). */ - public function testRelationContentCreation() + public function testRelationContentCreation(): void { $repository = $this->getRepository(); $galleryType = $repository->getContentTypeService()->loadContentTypeByIdentifier('gallery'); @@ -1157,7 +1172,7 @@ public function testRelationContentCreation() */ #[Depends('testRelationContentCreation')] #[DataProvider('getRelationFieldFilterSearches')] - public function testFindRelationFieldContentInfoFiltered($queryData, $fixture) + public function testFindRelationFieldContentInfoFiltered($queryData, $fixture): void { $this->getRepository(false); // To make sure repo is setup w/o removing data from getRelationFieldFilterContentSearches $query = new Query($queryData); @@ -1169,14 +1184,14 @@ public function testFindRelationFieldContentInfoFiltered($queryData, $fixture) */ #[Depends('testRelationContentCreation')] #[DataProvider('getRelationFieldFilterSearches')] - public function testFindRelationFieldLocationsFiltered($queryData, $fixture) + public function testFindRelationFieldLocationsFiltered($queryData, $fixture): void { $this->getRepository(false); // To make sure repo is setup w/o removing data from getRelationFieldFilterContentSearches $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, null, true, false, false); } - public function testFindSingle() + public function testFindSingle(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -1193,7 +1208,7 @@ public function testFindSingle() ); } - public function testFindNoPerformCount() + public function testFindNoPerformCount(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -1218,7 +1233,7 @@ public function testFindNoPerformCount() } } - public function testFindNoPerformCountException() + public function testFindNoPerformCountException(): void { $this->expectException(RuntimeException::class); @@ -1239,7 +1254,7 @@ public function testFindNoPerformCountException() $searchService->findContent($query); } - public function testFindLocationsNoPerformCount() + public function testFindLocationsNoPerformCount(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -1264,7 +1279,7 @@ public function testFindLocationsNoPerformCount() } } - public function testFindLocationsNoPerformCountException() + public function testFindLocationsNoPerformCountException(): void { $this->expectException(RuntimeException::class); @@ -1444,7 +1459,7 @@ public function testFieldIsEmpty() /** * Test for the findContent() method. */ - public function testFieldIsNotEmpty() + public function testFieldIsNotEmpty(): void { $testContents = $this->createMovieContent(); @@ -1471,7 +1486,7 @@ public function testFieldIsNotEmpty() /** * Test for the findContent() method. */ - public function testFieldCollectionContains() + public function testFieldCollectionContains(): void { $testContent = $this->createMultipleCountriesContent(); @@ -1500,7 +1515,7 @@ public function testFieldCollectionContains() * Test for the findContent() method. */ #[Depends('testFieldCollectionContains')] - public function testFieldCollectionContainsNoMatch() + public function testFieldCollectionContainsNoMatch(): void { $this->createMultipleCountriesContent(); $query = new Query( @@ -1520,7 +1535,7 @@ public function testFieldCollectionContainsNoMatch() self::assertEquals(0, $result->totalCount); } - public function testInvalidFieldIdentifierRange() + public function testInvalidFieldIdentifierRange(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$criterion->target\' is invalid: No searchable Fields found for the provided Criterion target \'some_hopefully_unknown_field\''); @@ -1542,7 +1557,7 @@ public function testInvalidFieldIdentifierRange() ); } - public function testInvalidFieldIdentifierIn() + public function testInvalidFieldIdentifierIn(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$criterion->target\' is invalid: No searchable Fields found for the provided Criterion target \'some_hopefully_unknown_field\''); @@ -1564,7 +1579,7 @@ public function testInvalidFieldIdentifierIn() ); } - public function testFindContentWithNonSearchableField() + public function testFindContentWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$criterion->target\' is invalid: No searchable Fields found for the provided Criterion target \'tag_cloud_url\''); @@ -1586,7 +1601,7 @@ public function testFindContentWithNonSearchableField() ); } - public function testSortFieldWithNonSearchableField() + public function testSortFieldWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$sortClause->targetData\' is invalid: No searchable Fields found for the provided Sort Clause target \'title\' on \'template_look\''); @@ -1603,7 +1618,7 @@ public function testSortFieldWithNonSearchableField() ); } - public function testSortMapLocationDistanceWithNonSearchableField() + public function testSortMapLocationDistanceWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$sortClause->targetData\' is invalid: No searchable Fields found for the provided Sort Clause target \'title\' on \'template_look\''); @@ -1627,7 +1642,7 @@ public function testSortMapLocationDistanceWithNonSearchableField() ); } - public function testFindSingleFailMultiple() + public function testFindSingleFailMultiple(): void { $this->expectException(InvalidArgumentException::class); @@ -1641,7 +1656,7 @@ public function testFindSingleFailMultiple() ); } - public function testFindSingleWithNonSearchableField() + public function testFindSingleWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); @@ -1657,7 +1672,10 @@ public function testFindSingleWithNonSearchableField() ); } - public static function getSortedContentSearches() + /** + * @return iterable + */ + public static function getSortedContentSearches(): iterable { $fixtureDir = static::getFixtureDir(); @@ -1828,7 +1846,10 @@ static function (SearchHit $a, SearchHit $b): int { } } - public static function getSortedLocationSearches() + /** + * @return array + */ + public static function getSortedLocationSearches(): array { $fixtureDir = static::getFixtureDir(); @@ -1982,7 +2003,10 @@ protected function createMultilingualContent( return $content; } - public static function providerForTestMultilingualFieldSort() + /** + * @return array + */ + public static function providerForTestMultilingualFieldSort(): array { return [ 0 => [ @@ -2305,7 +2329,7 @@ public function testMultilingualFieldSortContent( $languageSettings, array $sortClauses, $expected - ) { + ): void { $this->assertMultilingualFieldSort( $contentDataList, $languageSettings, @@ -2331,7 +2355,7 @@ public function testMultilingualFieldSortLocation( $languageSettings, array $sortClauses, $expected - ) { + ): void { $this->assertMultilingualFieldSort( $contentDataList, $languageSettings, @@ -2419,7 +2443,10 @@ protected function assertMultilingualFieldSort( self::assertEquals($expectedIdList, $this->mapResultContentIds($result)); } - public static function providerForTestMultilingualFieldFilter() + /** + * @return array + */ + public static function providerForTestMultilingualFieldFilter(): array { return [ 0 => [ @@ -2595,7 +2622,7 @@ public function testMultilingualFieldFilterContent( $languageSettings, Criterion $criterion, $expected - ) { + ): void { $this->assertMultilingualFieldFilter( $contentDataList, $languageSettings, @@ -2621,7 +2648,7 @@ public function testMultilingualFieldFilterLocation( $languageSettings, Criterion $criterion, $expected - ) { + ): void { $this->assertMultilingualFieldFilter( $contentDataList, $languageSettings, @@ -2737,7 +2764,7 @@ static function (SearchHit $searchHit) { * Test for the findContent() method. */ #[DataProvider('getSortedContentSearches')] - public function testFindAndSortContent($queryData, $fixture, $closure = null) + public function testFindAndSortContent($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -2747,7 +2774,7 @@ public function testFindAndSortContent($queryData, $fixture, $closure = null) * Test for the findContentInfo() method. */ #[DataProvider('getSortedContentSearches')] - public function testFindAndSortContentInfo($queryData, $fixture, $closure = null) + public function testFindAndSortContentInfo($queryData, $fixture, $closure = null): void { $query = new Query($queryData); $this->assertQueryFixture($query, $fixture, $this->getContentInfoFixtureClosure($closure), true); @@ -2757,7 +2784,7 @@ public function testFindAndSortContentInfo($queryData, $fixture, $closure = null * Test for the findLocations() method. */ #[DataProvider('getSortedContentSearches')] - public function testFindAndSortContentLocations($queryData, $fixture, $closure = null) + public function testFindAndSortContentLocations($queryData, $fixture, $closure = null): void { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -2767,7 +2794,7 @@ public function testFindAndSortContentLocations($queryData, $fixture, $closure = * Test for the findLocations() method. */ #[DataProvider('getSortedLocationSearches')] - public function testFindAndSortLocations($queryData, $fixture, $closure = null) + public function testFindAndSortLocations($queryData, $fixture, $closure = null): void { $query = new LocationQuery($queryData); $this->assertQueryFixture($query, $fixture, $closure); @@ -2776,7 +2803,7 @@ public function testFindAndSortLocations($queryData, $fixture, $closure = null) /** * Test for the findContent() method. */ - public function testQueryCustomField() + public function testQueryCustomField(): void { $query = new Query( [ @@ -2803,7 +2830,7 @@ public function testQueryCustomField() * the last_name of admin and anonymous. This is done to show the custom * copy field working. */ - public function testQueryModifiedField() + public function testQueryModifiedField(): void { // Check using get_class since the others extend SetupFactory\Legacy if ($this->getSetupFactory() instanceof Legacy) { @@ -2842,7 +2869,7 @@ public function testQueryModifiedField() * to the index storage name of folder's 'name' field, in order to show the custom * sort field working. */ - public function testSortModifiedField() + public function testSortModifiedField(): void { // Check using get_class since the others extend SetupFactory\Legacy if ($this->getSetupFactory() instanceof Legacy) { @@ -2908,7 +2935,7 @@ protected function createTestPlaceContentType() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceLessThanOrEqual() + public function testMapLocationDistanceLessThanOrEqual(): void { $contentType = $this->createTestPlaceContentType(); @@ -2986,7 +3013,7 @@ public function testMapLocationDistanceLessThanOrEqual() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceGreaterThanOrEqual() + public function testMapLocationDistanceGreaterThanOrEqual(): void { $contentType = $this->createTestPlaceContentType(); @@ -3064,7 +3091,7 @@ public function testMapLocationDistanceGreaterThanOrEqual() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceBetween() + public function testMapLocationDistanceBetween(): void { $contentType = $this->createTestPlaceContentType(); @@ -3166,7 +3193,7 @@ public function testMapLocationDistanceBetween() * (always very precise) and flat Earth (very imprecise for this use case) models. */ #[Group('maplocation')] - public function testMapLocationDistanceBetweenPolar() + public function testMapLocationDistanceBetweenPolar(): void { $contentType = $this->createTestPlaceContentType(); @@ -3228,7 +3255,7 @@ public function testMapLocationDistanceBetweenPolar() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceSortAscending() + public function testMapLocationDistanceSortAscending(): void { $contentType = $this->createTestPlaceContentType(); @@ -3343,7 +3370,7 @@ public function testMapLocationDistanceSortAscending() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceSortDescending() + public function testMapLocationDistanceSortDescending(): void { $contentType = $this->createTestPlaceContentType(); @@ -3458,7 +3485,7 @@ public function testMapLocationDistanceSortDescending() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceWithCustomField() + public function testMapLocationDistanceWithCustomField(): void { $contentType = $this->createTestPlaceContentType(); @@ -3539,7 +3566,7 @@ public function testMapLocationDistanceWithCustomField() * Test for the findContent() method. */ #[Group('maplocation')] - public function testMapLocationDistanceWithCustomFieldSort() + public function testMapLocationDistanceWithCustomFieldSort(): void { $contentType = $this->createTestPlaceContentType(); @@ -3656,7 +3683,7 @@ public function testMapLocationDistanceWithCustomFieldSort() /** * Test for the findLocations() method. */ - public function testFindMainLocation() + public function testFindMainLocation(): void { $plainSiteLocationId = 56; $designLocationId = 58; @@ -3699,7 +3726,7 @@ public function testFindMainLocation() /** * Test for the findLocations() method. */ - public function testFindNonMainLocation() + public function testFindNonMainLocation(): void { $designLocationId = 58; $partnersContentId = 59; @@ -3741,7 +3768,7 @@ public function testFindNonMainLocation() /** * Test for the findLocations() method. */ - public function testSortMainLocationAscending() + public function testSortMainLocationAscending(): void { $plainSiteLocationId = 56; $designLocationId = 58; @@ -3782,7 +3809,7 @@ public function testSortMainLocationAscending() /** * Test for the findLocations() method. */ - public function testSortMainLocationDescending() + public function testSortMainLocationDescending(): void { $plainSiteLocationId = 56; $designLocationId = 58; @@ -3823,7 +3850,7 @@ public function testSortMainLocationDescending() /** * Test for the findLocations() method. */ - public function testContentWithMultipleLocations() + public function testContentWithMultipleLocations(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -3924,7 +3951,7 @@ protected function createContentForTestUserMetadataGroupHorizontal() /** * Test for the findContent() method. */ - public function testUserMetadataGroupHorizontalFilterContent(?string $queryType = null) + public function testUserMetadataGroupHorizontalFilterContent(?string $queryType = null): void { if ($queryType === null) { $queryType = 'filter'; @@ -4001,7 +4028,7 @@ public function testUserMetadataGroupHorizontalFilterContent(?string $queryType /** * Test for the findContent() method. */ - public function testUserMetadataGroupHorizontalQueryContent() + public function testUserMetadataGroupHorizontalQueryContent(): void { $this->testUserMetadataGroupHorizontalFilterContent('query'); } @@ -4009,7 +4036,7 @@ public function testUserMetadataGroupHorizontalQueryContent() /** * Test for the findLocations() method. */ - public function testUserMetadataGroupHorizontalFilterLocation($queryType = null) + public function testUserMetadataGroupHorizontalFilterLocation($queryType = null): void { if ($queryType === null) { $queryType = 'filter'; @@ -4098,7 +4125,7 @@ public function testUserMetadataGroupHorizontalFilterLocation($queryType = null) /** * Test for the findLocations() method. */ - public function testUserMetadataGroupHorizontalQueryLocation() + public function testUserMetadataGroupHorizontalQueryLocation(): void { $this->testUserMetadataGroupHorizontalFilterLocation('query'); } @@ -4106,7 +4133,7 @@ public function testUserMetadataGroupHorizontalQueryLocation() /** * Test for FullText on the findContent() method. */ - public function testFullTextOnNewContent() + public function testFullTextOnNewContent(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -4145,7 +4172,7 @@ public function testFullTextOnNewContent() /** * Test for the findContent() method. */ - public function testLanguageAnalysisSeparateContent() + public function testLanguageAnalysisSeparateContent(): void { self::markTestSkipped('Language analysis is currently not supported'); @@ -4207,7 +4234,7 @@ public function testLanguageAnalysisSeparateContent() /** * Test for the findContent() method. */ - public function testLanguageAnalysisSameContent() + public function testLanguageAnalysisSameContent(): void { self::markTestSkipped('Language analysis is currently not supported'); @@ -4255,7 +4282,7 @@ public function testLanguageAnalysisSameContent() /** * Test for the findContent() method. */ - public function testLanguageAnalysisSameContentNotFound() + public function testLanguageAnalysisSameContentNotFound(): void { self::markTestSkipped('Language analysis is currently not supported'); @@ -4304,7 +4331,7 @@ public function testLanguageAnalysisSameContentNotFound() /** * Test for the findContent() method searching for content filtered by languages. */ - public function testFindContentWithLanguageFilter() + public function testFindContentWithLanguageFilter(): void { $repository = $this->getRepository(); $searchService = $repository->getSearchService(); @@ -4417,7 +4444,7 @@ public function testFulltextComplex() * @param array $data */ #[Depends('testFulltextComplex')] - public function testFulltextContentSearchComplex(array $data) + public function testFulltextContentSearchComplex(array $data): void { // Do not initialize from scratch $repository = $this->getRepository(false); @@ -4462,7 +4489,7 @@ public function testFulltextContentSearchComplex(array $data) * @param array $data */ #[Depends('testFulltextComplex')] - public function testFulltextContentTranslationSearch(array $data) + public function testFulltextContentTranslationSearch(array $data): void { $criterion = $data[0]; $query = new Query(['query' => $criterion]); @@ -4478,7 +4505,7 @@ public function testFulltextContentTranslationSearch(array $data) * @param array $data */ #[Depends('testFulltextComplex')] - public function testFulltextLocationSearchComplex(array $data) + public function testFulltextLocationSearchComplex(array $data): void { $setupFactory = $this->getSetupFactory(); if ($setupFactory instanceof LegacySolrSetupFactory && getenv('SOLR_VERSION') === '4.10.4') { @@ -4769,7 +4796,7 @@ private function getContentInfoFixtureClosure($closure = null) * both searchable and non-searchable Fields. * Number of returned results depends on used storage. */ - public function testFieldCriterionForContentsWithIdenticalFieldIdentifiers() + public function testFieldCriterionForContentsWithIdenticalFieldIdentifiers(): void { $this->createContentWithFieldType( 'url', @@ -4849,7 +4876,7 @@ private function createContentWithFieldType( * we got to same _random_ results, or mt_rand() provides same seed for seed-supported DB implementation. */ #[DataProvider('getSeedsForRandomSortClause')] - public function testRandomSortContent(?int $firstSeed, ?int $secondSeed) + public function testRandomSortContent(?int $firstSeed, ?int $secondSeed): void { if ($firstSeed || $secondSeed) { $this->skipIfSeedNotImplemented(); @@ -4892,7 +4919,7 @@ public function testRandomSortContent(?int $firstSeed, ?int $secondSeed) * Test for the findLocations() method. */ #[DataProvider('getSeedsForRandomSortClause')] - public function testRandomSortLocation(?int $firstSeed, ?int $secondSeed) + public function testRandomSortLocation(?int $firstSeed, ?int $secondSeed): void { if ($firstSeed || $secondSeed) { $this->skipIfSeedNotImplemented(); @@ -4931,7 +4958,10 @@ public function testRandomSortLocation(?int $firstSeed, ?int $secondSeed) } } - public static function getSeedsForRandomSortClause() + /** + * @return array + */ + public static function getSeedsForRandomSortClause(): array { $randomSeed = mt_rand(); diff --git a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php index fb647b41f4..9a780963ce 100644 --- a/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php +++ b/tests/integration/Core/Repository/SearchServiceTranslationLanguageFallbackTest.php @@ -199,7 +199,10 @@ public function testCreateTestContent() return $this->createTestContent([2, 12]); } - public static function providerForTestFind() + /** + * @return array + */ + public static function providerForTestFind(): array { $data = [ 0 => [ @@ -1732,7 +1735,7 @@ public function testFindContent( array $languageSettings, array $contentDataList, array $context - ) { + ): void { /** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ list($repository, $data) = $context; @@ -1781,7 +1784,7 @@ public function testFindLocationsSingle( array $languageSettings, array $contentDataList, array $context - ) { + ): void { /** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ list($repository, $data) = $context; @@ -1835,7 +1838,7 @@ public function testFindLocationsMultiple( array $languageSettings, array $contentDataList, array $context - ) { + ): void { /** @var \Ibexa\Contracts\Core\Repository\Repository $repository */ list($repository, $data) = $context; diff --git a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php index cc16c7ed45..7e43da2b8f 100644 --- a/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/SectionServiceAuthorizationTest.php @@ -24,7 +24,7 @@ class SectionServiceAuthorizationTest extends BaseTestCase /** * Test for the createSection() method. */ - public function testCreateSectionThrowsUnauthorizedException() + public function testCreateSectionThrowsUnauthorizedException(): void { $repository = $this->getRepository(); @@ -52,7 +52,7 @@ public function testCreateSectionThrowsUnauthorizedException() /** * Test for the loadSection() method. */ - public function testLoadSectionThrowsUnauthorizedException() + public function testLoadSectionThrowsUnauthorizedException(): void { $repository = $this->getRepository(); @@ -82,7 +82,7 @@ public function testLoadSectionThrowsUnauthorizedException() /** * Test for the updateSection() method. */ - public function testUpdateSectionThrowsUnauthorizedException() + public function testUpdateSectionThrowsUnauthorizedException(): void { $repository = $this->getRepository(); @@ -116,7 +116,7 @@ public function testUpdateSectionThrowsUnauthorizedException() /** * Test for the loadSections() method. */ - public function testLoadSectionsLoadsEmptyListForAnonymousUser() + public function testLoadSectionsLoadsEmptyListForAnonymousUser(): void { $repository = $this->getRepository(); @@ -151,7 +151,7 @@ public function testLoadSectionsLoadsEmptyListForAnonymousUser() /** * Test for the loadSections() method. */ - public function testLoadSectionFiltersSections() + public function testLoadSectionFiltersSections(): void { $repository = $this->getRepository(); @@ -194,7 +194,7 @@ public function testLoadSectionFiltersSections() /** * Test for the loadSectionByIdentifier() method. */ - public function testLoadSectionByIdentifierThrowsUnauthorizedException() + public function testLoadSectionByIdentifierThrowsUnauthorizedException(): void { $repository = $this->getRepository(); @@ -224,7 +224,7 @@ public function testLoadSectionByIdentifierThrowsUnauthorizedException() /** * Test for the assignSection() method. */ - public function testAssignSectionThrowsUnauthorizedException() + public function testAssignSectionThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -264,7 +264,7 @@ public function testAssignSectionThrowsUnauthorizedException() /** * Test for the deleteSection() method. */ - public function testDeleteSectionThrowsUnauthorizedException() + public function testDeleteSectionThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/SectionServiceTest.php b/tests/integration/Core/Repository/SectionServiceTest.php index a1fb30cf6e..f12e4d0e99 100644 --- a/tests/integration/Core/Repository/SectionServiceTest.php +++ b/tests/integration/Core/Repository/SectionServiceTest.php @@ -77,7 +77,7 @@ protected function setUp(): void /** * Test for the newSectionCreateStruct() method. */ - public function testNewSectionCreateStruct() + public function testNewSectionCreateStruct(): void { $repository = $this->getRepository(); @@ -94,7 +94,7 @@ public function testNewSectionCreateStruct() * Test for the createSection() method. */ #[Depends('testNewSectionCreateStruct')] - public function testCreateSection() + public function testCreateSection(): void { $repository = $this->getRepository(); @@ -115,7 +115,7 @@ public function testCreateSection() * Test for the createSection() method. */ #[Depends('testNewSectionCreateStruct')] - public function testCreateSectionForUserWithSectionLimitation() + public function testCreateSectionForUserWithSectionLimitation(): void { $repository = $this->getRepository(); @@ -151,7 +151,7 @@ public function testCreateSectionForUserWithSectionLimitation() * Test for the createSection() method. */ #[Depends('testCreateSection')] - public function testCreateSectionThrowsInvalidArgumentException() + public function testCreateSectionThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -179,7 +179,7 @@ public function testCreateSectionThrowsInvalidArgumentException() * Test for the loadSection() method. */ #[Depends('testCreateSection')] - public function testLoadSection() + public function testLoadSection(): void { $repository = $this->getRepository(); @@ -198,7 +198,7 @@ public function testLoadSection() /** * Test for the loadSection() method. */ - public function testLoadSectionThrowsNotFoundException() + public function testLoadSectionThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -217,7 +217,7 @@ public function testLoadSectionThrowsNotFoundException() /** * Test for the newSectionUpdateStruct() method. */ - public function testNewSectionUpdateStruct() + public function testNewSectionUpdateStruct(): void { $repository = $this->getRepository(); @@ -236,7 +236,7 @@ public function testNewSectionUpdateStruct() #[Depends('testCreateSection')] #[Depends('testLoadSection')] #[Depends('testNewSectionUpdateStruct')] - public function testUpdateSection() + public function testUpdateSection(): void { $repository = $this->getRepository(); @@ -271,7 +271,7 @@ public function testUpdateSection() #[Depends('testCreateSection')] #[Depends('testLoadSection')] #[Depends('testNewSectionUpdateStruct')] - public function testUpdateSectionForUserWithSectionLimitation() + public function testUpdateSectionForUserWithSectionLimitation(): void { $repository = $this->getRepository(); $administratorUserId = $this->generateId('user', 14); @@ -324,7 +324,7 @@ public function testUpdateSectionForUserWithSectionLimitation() * Test for the updateSection() method. */ #[Depends('testUpdateSection')] - public function testUpdateSectionKeepsSectionIdentifierOnNameUpdate() + public function testUpdateSectionKeepsSectionIdentifierOnNameUpdate(): void { $repository = $this->getRepository(); @@ -349,7 +349,7 @@ public function testUpdateSectionKeepsSectionIdentifierOnNameUpdate() * Test for the updateSection() method. */ #[Depends('testUpdateSection')] - public function testUpdateSectionWithSectionIdentifierOnNameUpdate() + public function testUpdateSectionWithSectionIdentifierOnNameUpdate(): void { $repository = $this->getRepository(); @@ -377,7 +377,7 @@ public function testUpdateSectionWithSectionIdentifierOnNameUpdate() * Test for the updateSection() method. */ #[Depends('testUpdateSection')] - public function testUpdateSectionKeepsSectionNameOnIdentifierUpdate() + public function testUpdateSectionKeepsSectionNameOnIdentifierUpdate(): void { $repository = $this->getRepository(); @@ -403,7 +403,7 @@ public function testUpdateSectionKeepsSectionNameOnIdentifierUpdate() * Test for the updateSection() method. */ #[Depends('testUpdateSection')] - public function testUpdateSectionThrowsInvalidArgumentException() + public function testUpdateSectionThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -438,7 +438,7 @@ public function testUpdateSectionThrowsInvalidArgumentException() * Test for the loadSections() method. */ #[Depends('testCreateSection')] - public function testLoadSections() + public function testLoadSections(): void { $repository = $this->getRepository(); @@ -458,7 +458,7 @@ public function testLoadSections() * Test for the loadSections() method. */ #[Depends('testCreateSection')] - public function testLoadSectionsReturnsDefaultSectionsByDefault() + public function testLoadSectionsReturnsDefaultSectionsByDefault(): void { $repository = $this->getRepository(); @@ -517,7 +517,7 @@ public function testLoadSectionsReturnsDefaultSectionsByDefault() * Test for the loadSectionByIdentifier() method. */ #[Depends('testCreateSection')] - public function testLoadSectionByIdentifier() + public function testLoadSectionByIdentifier(): void { $repository = $this->getRepository(); @@ -539,7 +539,7 @@ public function testLoadSectionByIdentifier() /** * Test for the loadSectionByIdentifier() method. */ - public function testLoadSectionByIdentifierThrowsNotFoundException() + public function testLoadSectionByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -556,7 +556,7 @@ public function testLoadSectionByIdentifierThrowsNotFoundException() /** * Test for the countAssignedContents() method. */ - public function testCountAssignedContents() + public function testCountAssignedContents(): void { $repository = $this->getRepository(); @@ -583,7 +583,7 @@ public function testCountAssignedContents() /** * Test for the isSectionUsed() method. */ - public function testIsSectionUsed() + public function testIsSectionUsed(): void { $repository = $this->getRepository(); @@ -611,7 +611,7 @@ public function testIsSectionUsed() * Test for the assignSection() method. */ #[Depends('testCountAssignedContents')] - public function testAssignSection() + public function testAssignSection(): void { $repository = $this->getRepository(); $sectionService = $repository->getSectionService(); @@ -666,7 +666,7 @@ public function testAssignSection() * Test for the assignSectionToSubtree() method. */ #[Depends('testCreateSection')] - public function testAssignSectionToSubtree() + public function testAssignSectionToSubtree(): void { $repository = $this->getRepository(); $sectionService = $repository->getSectionService(); @@ -716,7 +716,7 @@ public function testAssignSectionToSubtree() * Test for the countAssignedContents() method. */ #[Depends('testCreateSection')] - public function testCountAssignedContentsReturnsZeroByDefault() + public function testCountAssignedContentsReturnsZeroByDefault(): void { $repository = $this->getRepository(); @@ -740,7 +740,7 @@ public function testCountAssignedContentsReturnsZeroByDefault() * Test for the isSectionUsed() method. */ #[Depends('testCreateSection')] - public function testIsSectionUsedReturnsZeroByDefault() + public function testIsSectionUsedReturnsZeroByDefault(): void { $repository = $this->getRepository(); @@ -764,7 +764,7 @@ public function testIsSectionUsedReturnsZeroByDefault() * Test for the deleteSection() method. */ #[Depends('testLoadSections')] - public function testDeleteSection() + public function testDeleteSection(): void { $repository = $this->getRepository(); @@ -788,7 +788,7 @@ public function testDeleteSection() * Test for the deleteSection() method. */ #[Depends('testDeleteSection')] - public function testDeleteSectionThrowsNotFoundException() + public function testDeleteSectionThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -815,7 +815,7 @@ public function testDeleteSectionThrowsNotFoundException() * Test for the deleteSection() method. */ #[Depends('testAssignSection')] - public function testDeleteSectionThrowsBadStateException() + public function testDeleteSectionThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -851,7 +851,7 @@ public function testDeleteSectionThrowsBadStateException() */ #[Depends('testCreateSection')] #[Depends('testLoadSectionByIdentifier')] - public function testCreateSectionInTransactionWithRollback() + public function testCreateSectionInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -894,7 +894,7 @@ public function testCreateSectionInTransactionWithRollback() */ #[Depends('testCreateSection')] #[Depends('testLoadSectionByIdentifier')] - public function testCreateSectionInTransactionWithCommit() + public function testCreateSectionInTransactionWithCommit(): void { $repository = $this->getRepository(); @@ -933,7 +933,7 @@ public function testCreateSectionInTransactionWithCommit() */ #[Depends('testUpdateSection')] #[Depends('testLoadSectionByIdentifier')] - public function testUpdateSectionInTransactionWithRollback() + public function testUpdateSectionInTransactionWithRollback(): void { $repository = $this->getRepository(); @@ -974,7 +974,7 @@ public function testUpdateSectionInTransactionWithRollback() */ #[Depends('testUpdateSection')] #[Depends('testLoadSectionByIdentifier')] - public function testUpdateSectionInTransactionWithCommit() + public function testUpdateSectionInTransactionWithCommit(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php index 55b7a22bb8..e729a011dc 100644 --- a/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/TrashServiceAuthorizationTest.php @@ -30,7 +30,7 @@ class TrashServiceAuthorizationTest extends BaseTrashServiceTestCase */ #[DependsExternal(TrashServiceTest::class, 'testLoadTrashItem')] #[DependsExternal(UserServiceTest::class, 'testLoadUser')] - public function testLoadTrashItemThrowsUnauthorizedException() + public function testLoadTrashItemThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -57,7 +57,7 @@ public function testLoadTrashItemThrowsUnauthorizedException() /** * Test for the trash() method without proper permissions. */ - public function testTrashThrowsUnauthorizedException() + public function testTrashThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); $this->expectExceptionMessage('The User does not have the \'remove\' \'content\' permission'); @@ -115,7 +115,7 @@ public function testTrashThrowsUnauthorizedExceptionWithLanguageLimitation(): vo * Test for the trash() method with proper minimal permission set. */ #[Depends('testTrashThrowsUnauthorizedException')] - public function testTrashRequiresContentRemovePolicy() + public function testTrashRequiresContentRemovePolicy(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -142,7 +142,7 @@ public function testTrashRequiresContentRemovePolicy() */ #[DependsExternal(TrashServiceTest::class, 'testRecover')] #[DependsExternal(UserServiceTest::class, 'testLoadUser')] - public function testRecoverThrowsUnauthorizedException() + public function testRecoverThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -171,7 +171,7 @@ public function testRecoverThrowsUnauthorizedException() */ #[DependsExternal(TrashServiceTest::class, 'testRecover')] #[DependsExternal(UserServiceTest::class, 'testLoadUser')] - public function testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParameter() + public function testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParameter(): void { $this->expectException(UnauthorizedException::class); @@ -208,7 +208,7 @@ public function testRecoverThrowsUnauthorizedExceptionWithNewParentLocationParam */ #[DependsExternal(TrashServiceTest::class, 'testEmptyTrash')] #[DependsExternal(UserServiceTest::class, 'testLoadUser')] - public function testEmptyTrashThrowsUnauthorizedException() + public function testEmptyTrashThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -237,7 +237,7 @@ public function testEmptyTrashThrowsUnauthorizedException() */ #[DependsExternal(TrashServiceTest::class, 'testDeleteTrashItem')] #[DependsExternal(UserServiceTest::class, 'testLoadUser')] - public function testDeleteTrashItemThrowsUnauthorizedException() + public function testDeleteTrashItemThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -261,7 +261,7 @@ public function testDeleteTrashItemThrowsUnauthorizedException() /* END: Use Case */ } - public function testTrashRequiresPremissionsToRemoveAllSubitems() + public function testTrashRequiresPremissionsToRemoveAllSubitems(): void { $this->createRoleWithPolicies('Publisher', [ ['module' => 'content', 'function' => 'read'], diff --git a/tests/integration/Core/Repository/TrashServiceTest.php b/tests/integration/Core/Repository/TrashServiceTest.php index a0d0c0b778..d17ba89f04 100644 --- a/tests/integration/Core/Repository/TrashServiceTest.php +++ b/tests/integration/Core/Repository/TrashServiceTest.php @@ -43,7 +43,7 @@ class TrashServiceTest extends BaseTrashServiceTestCase * Test for the trash() method. */ #[DependsExternal(LocationServiceTest::class, 'testLoadLocationByRemoteId')] - public function testTrash() + public function testTrash(): void { /* BEGIN: Use Case */ $trashItem = $this->createTrashItem(); @@ -59,7 +59,7 @@ public function testTrash() * Test for the trash() method. */ #[Depends('testTrash')] - public function testTrashSetsExpectedTrashItemProperties() + public function testTrashSetsExpectedTrashItemProperties(): void { $repository = $this->getRepository(); @@ -91,7 +91,7 @@ public function testTrashSetsExpectedTrashItemProperties() * Test for the trash() method. */ #[Depends('testTrash')] - public function testTrashRemovesLocationFromMainStorage() + public function testTrashRemovesLocationFromMainStorage(): void { $this->expectException(NotFoundException::class); @@ -115,7 +115,7 @@ public function testTrashRemovesLocationFromMainStorage() * Test for the trash() method. */ #[Depends('testTrash')] - public function testTrashRemovesChildLocationsFromMainStorage() + public function testTrashRemovesChildLocationsFromMainStorage(): void { $repository = $this->getRepository(); @@ -149,7 +149,7 @@ public function testTrashRemovesChildLocationsFromMainStorage() * Test for the trash() method. */ #[Depends('testTrash')] - public function testTrashDecrementsChildCountOnParentLocation() + public function testTrashDecrementsChildCountOnParentLocation(): void { $repository = $this->getRepository(); $locationService = $repository->getLocationService(); @@ -173,7 +173,7 @@ public function testTrashDecrementsChildCountOnParentLocation() /** * Test sending a location to trash updates Content mainLocation. */ - public function testTrashUpdatesMainLocation() + public function testTrashUpdatesMainLocation(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -201,7 +201,7 @@ public function testTrashUpdatesMainLocation() /** * Test sending a location to trash. */ - public function testTrashReturnsNull() + public function testTrashReturnsNull(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -223,7 +223,7 @@ public function testTrashReturnsNull() * Test for the loadTrashItem() method. */ #[Depends('testTrash')] - public function testLoadTrashItem() + public function testLoadTrashItem(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -271,7 +271,7 @@ public function testLoadTrashItem() * Test for the loadTrashItem() method. */ #[Depends('testLoadTrashItem')] - public function testLoadTrashItemThrowsNotFoundException() + public function testLoadTrashItemThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -291,7 +291,7 @@ public function testLoadTrashItemThrowsNotFoundException() * Test for the recover() method. */ #[Depends('testTrash')] - public function testRecover() + public function testRecover(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -332,7 +332,7 @@ public function testRecover() /** * Test recovering a non existing trash item results in a NotFoundException. */ - public function testRecoverThrowsNotFoundExceptionForNonExistingTrashItem() + public function testRecoverThrowsNotFoundExceptionForNonExistingTrashItem(): void { $this->expectException(NotFoundException::class); @@ -352,7 +352,7 @@ public function testRecoverThrowsNotFoundExceptionForNonExistingTrashItem() * Test for the trash() method. */ #[Depends('testTrash')] - public function testNotFoundAliasAfterRemoveIt() + public function testNotFoundAliasAfterRemoveIt(): void { $this->expectException(NotFoundException::class); @@ -377,7 +377,7 @@ public function testNotFoundAliasAfterRemoveIt() * Test for the recover() method. */ #[Depends('testTrash')] - public function testAliasesForRemovedItems() + public function testAliasesForRemovedItems(): void { $mediaRemoteId = '75c715a51699d2d309a924eca6a95145'; @@ -418,7 +418,7 @@ public function testAliasesForRemovedItems() * Test for the recover() method. */ #[Depends('testRecover')] - public function testRecoverDoesNotRestoreChildLocations() + public function testRecoverDoesNotRestoreChildLocations(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -469,7 +469,7 @@ public function testRecoverDoesNotRestoreChildLocations() * @todo Fix naming */ #[Depends('testRecover')] - public function testRecoverWithLocationCreateStructParameter() + public function testRecoverWithLocationCreateStructParameter(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -517,7 +517,7 @@ public function testRecoverWithLocationCreateStructParameter() * Test for the recover() method. */ #[Depends('testRecover')] - public function testRecoverIncrementsChildCountOnOriginalParent() + public function testRecoverIncrementsChildCountOnOriginalParent(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -555,7 +555,7 @@ public function testRecoverIncrementsChildCountOnOriginalParent() * Test for the recover() method. */ #[Depends('testRecoverWithLocationCreateStructParameter')] - public function testRecoverWithLocationCreateStructParameterIncrementsChildCountOnNewParent() + public function testRecoverWithLocationCreateStructParameterIncrementsChildCountOnNewParent(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -598,7 +598,7 @@ public function testRecoverWithLocationCreateStructParameterIncrementsChildCount /** * Test recovering a location from trash to non existing location. */ - public function testRecoverToNonExistingLocation() + public function testRecoverToNonExistingLocation(): void { $this->expectException(NotFoundException::class); @@ -729,7 +729,7 @@ public function testFindTrashItemsSort(array $sortClausesClasses): void * Test for the findTrashItems() method for it's result structure. */ #[Depends('testTrash')] - public function testFindTrashItemsLimits() + public function testFindTrashItemsLimits(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -757,7 +757,7 @@ public function testFindTrashItemsLimits() * Test for the findTrashItems() method. */ #[DependsExternal(self::class, 'testFindTrashItems')] - public function testFindTrashItemsLimitedAccess() + public function testFindTrashItemsLimitedAccess(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -801,7 +801,7 @@ public function testFindTrashItemsLimitedAccess() /** * Test Section Role Assignment Limitation against user/login. */ - public function testFindTrashItemsSubtreeLimitation() + public function testFindTrashItemsSubtreeLimitation(): void { $repository = $this->getRepository(); $contentService = $repository->getContentService(); @@ -857,7 +857,7 @@ public function testFindTrashItemsSubtreeLimitation() * Test for the emptyTrash() method. */ #[Depends('testFindTrashItems')] - public function testEmptyTrash() + public function testEmptyTrash(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -887,7 +887,7 @@ public function testEmptyTrash() * Test for the emptyTrash() method with user which has subtree limitations. */ #[Depends('testFindTrashItems')] - public function testEmptyTrashForUserWithSubtreeLimitation() + public function testEmptyTrashForUserWithSubtreeLimitation(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -930,7 +930,7 @@ public function testEmptyTrashForUserWithSubtreeLimitation() * Test for the deleteTrashItem() method. */ #[Depends('testFindTrashItems')] - public function testDeleteTrashItem() + public function testDeleteTrashItem(): void { $repository = $this->getRepository(); $trashService = $repository->getTrashService(); @@ -979,7 +979,7 @@ static function ($trashItem) { /** * Test deleting a non existing trash item. */ - public function testDeleteThrowsNotFoundExceptionForNonExistingTrashItem() + public function testDeleteThrowsNotFoundExceptionForNonExistingTrashItem(): void { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php index aef8922233..8ad4f56bbb 100644 --- a/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceAuthorizationTest.php @@ -19,7 +19,7 @@ class URLAliasServiceAuthorizationTest extends BaseTestCase * Test for the createUrlAlias() method. */ #[DependsExternal(URLAliasServiceTest::class, 'testCreateUrlAlias')] - public function testCreateUrlAliasThrowsUnauthorizedException() + public function testCreateUrlAliasThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -50,7 +50,7 @@ public function testCreateUrlAliasThrowsUnauthorizedException() * Test for the createGlobalUrlAlias() method. */ #[DependsExternal(URLAliasServiceTest::class, 'testCreateGlobalUrlAlias')] - public function testCreateGlobalUrlAliasThrowsUnauthorizedException() + public function testCreateGlobalUrlAliasThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -75,7 +75,7 @@ public function testCreateGlobalUrlAliasThrowsUnauthorizedException() * Test for the removeAliases() method. */ #[DependsExternal(URLAliasServiceTest::class, 'testRemoveAliases')] - public function testRemoveAliasesThrowsUnauthorizedException() + public function testRemoveAliasesThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/URLAliasServiceTest.php b/tests/integration/Core/Repository/URLAliasServiceTest.php index 76a9b53bd0..0e22122942 100644 --- a/tests/integration/Core/Repository/URLAliasServiceTest.php +++ b/tests/integration/Core/Repository/URLAliasServiceTest.php @@ -104,7 +104,7 @@ public function testCreateUrlAlias() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testCreateSameAliasForDifferentLanguage() + public function testCreateSameAliasForDifferentLanguage(): void { $repository = $this->getRepository(); $locationId = $this->generateId('location', 5); @@ -151,7 +151,7 @@ public function testLoad(): void * @param array $testData */ #[Depends('testCreateUrlAlias')] - public function testCreateUrlAliasPropertyValues(array $testData) + public function testCreateUrlAliasPropertyValues(array $testData): void { [$createdUrlAlias, $locationId] = $testData; @@ -205,7 +205,7 @@ public function testCreateUrlAliasWithForwarding() * @param array $testData */ #[Depends('testCreateUrlAliasWithForwarding')] - public function testCreateUrlAliasPropertyValuesWithForwarding(array $testData) + public function testCreateUrlAliasPropertyValuesWithForwarding(array $testData): void { [$createdUrlAlias, $locationId] = $testData; @@ -258,7 +258,7 @@ public function testCreateUrlAliasWithAlwaysAvailable() * @param array $testData */ #[Depends('testCreateUrlAliasWithAlwaysAvailable')] - public function testCreateUrlAliasPropertyValuesWithAlwaysAvailable(array $testData) + public function testCreateUrlAliasPropertyValuesWithAlwaysAvailable(array $testData): void { [$createdUrlAlias, $locationId] = $testData; @@ -282,7 +282,7 @@ public function testCreateUrlAliasPropertyValuesWithAlwaysAvailable(array $testD /** * Test for the createUrlAlias() method. */ - public function testCreateUrlAliasThrowsInvalidArgumentException() + public function testCreateUrlAliasThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -330,7 +330,7 @@ public function testCreateGlobalUrlAlias() } #[Depends('testCreateGlobalUrlAlias')] - public function testCreateGlobalUrlAliasPropertyValues(URLAlias $createdUrlAlias) + public function testCreateGlobalUrlAliasPropertyValues(URLAlias $createdUrlAlias): void { self::assertNotNull($createdUrlAlias->id); @@ -376,7 +376,7 @@ public function testCreateGlobalUrlAliasWithForward() } #[Depends('testCreateGlobalUrlAliasWithForward')] - public function testCreateGlobalUrlAliasWithForwardPropertyValues(URLAlias $createdUrlAlias) + public function testCreateGlobalUrlAliasWithForwardPropertyValues(URLAlias $createdUrlAlias): void { self::assertNotNull($createdUrlAlias->id); @@ -423,7 +423,7 @@ public function testCreateGlobalUrlAliasWithAlwaysAvailable() } #[Depends('testCreateGlobalUrlAliasWithAlwaysAvailable')] - public function testCreateGlobalUrlAliasWithAlwaysAvailablePropertyValues(URLAlias $createdUrlAlias) + public function testCreateGlobalUrlAliasWithAlwaysAvailablePropertyValues(URLAlias $createdUrlAlias): void { self::assertNotNull($createdUrlAlias->id); @@ -512,7 +512,7 @@ public function testCreateGlobalUrlAliasForLocationVariation() * @param array{\Ibexa\Contracts\Core\Repository\Values\Content\URLAlias, int} $testData */ #[Depends('testCreateGlobalUrlAliasForLocation')] - public function testCreateGlobalUrlAliasForLocationPropertyValues($testData) + public function testCreateGlobalUrlAliasForLocationPropertyValues($testData): void { [$createdUrlAlias, $locationId] = $testData; @@ -537,7 +537,7 @@ public function testCreateGlobalUrlAliasForLocationPropertyValues($testData) * @param array{\Ibexa\Contracts\Core\Repository\Values\Content\URLAlias, int} $testData */ #[Depends('testCreateGlobalUrlAliasForLocationVariation')] - public function testCreateGlobalUrlAliasForLocationVariationPropertyValues($testData) + public function testCreateGlobalUrlAliasForLocationVariationPropertyValues($testData): void { $this->testCreateGlobalUrlAliasForLocationPropertyValues($testData); } @@ -545,7 +545,7 @@ public function testCreateGlobalUrlAliasForLocationVariationPropertyValues($test /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAliasThrowsInvalidArgumentException() + public function testCreateGlobalUrlAliasThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -599,7 +599,7 @@ public function testListLocationAliases() * @param array $testData */ #[Depends('testListLocationAliases')] - public function testListLocationAliasesLoadsCorrectly(array $testData) + public function testListLocationAliasesLoadsCorrectly(array $testData): void { [$loadedAliases, $location] = $testData; @@ -618,7 +618,7 @@ public function testListLocationAliasesLoadsCorrectly(array $testData) /** * Test for the listLocationAliases() method. */ - public function testListLocationAliasesWithCustomFilter() + public function testListLocationAliasesWithCustomFilter(): void { $repository = $this->getRepository(); @@ -645,7 +645,7 @@ public function testListLocationAliasesWithCustomFilter() /** * Test for the listLocationAliases() method. */ - public function testListLocationAliasesWithLanguageCodeFilter() + public function testListLocationAliasesWithLanguageCodeFilter(): void { $repository = $this->getRepository(); @@ -671,7 +671,7 @@ public function testListLocationAliasesWithLanguageCodeFilter() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliases() + public function testListGlobalAliases(): void { $repository = $this->getRepository(); @@ -719,7 +719,7 @@ private function createGlobalAliases() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliasesWithLanguageFilter() + public function testListGlobalAliasesWithLanguageFilter(): void { $repository = $this->getRepository(); @@ -740,7 +740,7 @@ public function testListGlobalAliasesWithLanguageFilter() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliasesWithOffset() + public function testListGlobalAliasesWithOffset(): void { $repository = $this->getRepository(); @@ -761,7 +761,7 @@ public function testListGlobalAliasesWithOffset() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliasesWithLimit() + public function testListGlobalAliasesWithLimit(): void { $repository = $this->getRepository(); @@ -782,7 +782,7 @@ public function testListGlobalAliasesWithLimit() /** * Test for the removeAliases() method. */ - public function testRemoveAliases() + public function testRemoveAliases(): void { $repository = $this->getRepository(); @@ -821,7 +821,7 @@ public function testRemoveAliases() /** * Test for the removeAliases() method. */ - public function testRemoveAliasesThrowsInvalidArgumentExceptionIfAutogeneratedAliasesAreToBeRemoved() + public function testRemoveAliasesThrowsInvalidArgumentExceptionIfAutogeneratedAliasesAreToBeRemoved(): void { $this->expectException(InvalidArgumentException::class); @@ -869,7 +869,7 @@ public function testLookUp() /** * Test for the lookUp() method. */ - public function testLookUpWithLanguageFilter() + public function testLookUpWithLanguageFilter(): void { $repository = $this->getRepository(); @@ -895,7 +895,7 @@ public function testLookUpWithLanguageFilter() /** * Test for the lookUp() method. */ - public function testLookUpThrowsNotFoundException() + public function testLookUpThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -912,7 +912,7 @@ public function testLookUpThrowsNotFoundException() /** * Test for the lookUp() method. */ - public function testLookUpThrowsNotFoundExceptionWithLanguageFilter() + public function testLookUpThrowsNotFoundExceptionWithLanguageFilter(): void { $this->expectException(NotFoundException::class); @@ -929,7 +929,7 @@ public function testLookUpThrowsNotFoundExceptionWithLanguageFilter() /** * Test for the lookUp() method. */ - public function testLookUpThrowsInvalidArgumentException() + public function testLookUpThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -948,7 +948,7 @@ public function testLookUpThrowsInvalidArgumentException() * * @see https://issues.ibexa.co/browse/EZP-28046 */ - public function testLookupOnRenamedParent() + public function testLookupOnRenamedParent(): void { $urlAliasService = $this->getRepository()->getURLAliasService(); $locationService = $this->getRepository()->getLocationService(); @@ -1069,7 +1069,7 @@ public function testLookupOnMultilingualNestedLocations() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \ErrorException */ - public function testRefreshSystemUrlAliasesForLocationWithChangedSlugConverterConfiguration() + public function testRefreshSystemUrlAliasesForLocationWithChangedSlugConverterConfiguration(): void { [$topFolderLocation, $nestedFolderLocation] = $this->testLookupOnMultilingualNestedLocations(); @@ -1131,7 +1131,7 @@ public function testRefreshSystemUrlAliasesForLocationWithChangedSlugConverterCo * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRefreshSystemUrlAliasesForContentsWithUpdatedContentTypes() + public function testRefreshSystemUrlAliasesForContentsWithUpdatedContentTypes(): void { [$topFolderLocation, $nestedFolderLocation] = $this->testLookupOnMultilingualNestedLocations(); /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Location $topFolderLocation */ @@ -1184,7 +1184,7 @@ public function testRefreshSystemUrlAliasesForContentsWithUpdatedContentTypes() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testCreateNonLatinNonEmptyUniqueAliases() + public function testCreateNonLatinNonEmptyUniqueAliases(): void { $repository = $this->getRepository(); $urlAliasService = $repository->getURLAliasService(); @@ -1235,7 +1235,7 @@ public function testCreateNonLatinNonEmptyUniqueAliases() * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Exception */ - public function testRefreshSystemUrlAliasesForMissingUrlWithHistory() + public function testRefreshSystemUrlAliasesForMissingUrlWithHistory(): void { $repository = $this->getRepository(); $urlAliasService = $repository->getURLAliasService(); @@ -1334,7 +1334,7 @@ static function (Connection $connection) use ($folderLocation) { * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException * @throws \Exception */ - public function testRefreshSystemUrlAliasesForMovedLocation() + public function testRefreshSystemUrlAliasesForMovedLocation(): void { $repository = $this->getRepository(); $urlAliasService = $repository->getURLAliasService(); @@ -1556,7 +1556,7 @@ protected function updateContentField(ContentInfo $contentInfo, $fieldDefinition * * @throws \ErrorException */ - public function testDeleteCorruptedUrlAliases() + public function testDeleteCorruptedUrlAliases(): void { $repository = $this->getRepository(); $urlAliasService = $repository->getURLAliasService(); diff --git a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php index 2324735446..731c407d99 100644 --- a/tests/integration/Core/Repository/URLServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLServiceAuthorizationTest.php @@ -19,7 +19,7 @@ class URLServiceAuthorizationTest extends BaseURLServiceTestCase /** * Test for the findUrls() method. */ - public function testFindUrlsThrowsUnauthorizedException() + public function testFindUrlsThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -46,7 +46,7 @@ public function testFindUrlsThrowsUnauthorizedException() /** * Test for the updateUrl() method. */ - public function testUpdateUrlThrowsUnauthorizedException() + public function testUpdateUrlThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -75,7 +75,7 @@ public function testUpdateUrlThrowsUnauthorizedException() /** * Test for the loadById() method. */ - public function testLoadByIdThrowsUnauthorizedException() + public function testLoadByIdThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -100,7 +100,7 @@ public function testLoadByIdThrowsUnauthorizedException() /** * Test for the loadByUrl() method. */ - public function testLoadByUrlThrowsUnauthorizedException() + public function testLoadByUrlThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/URLServiceTest.php b/tests/integration/Core/Repository/URLServiceTest.php index 3e8d3487d8..155cfe8eba 100644 --- a/tests/integration/Core/Repository/URLServiceTest.php +++ b/tests/integration/Core/Repository/URLServiceTest.php @@ -174,7 +174,7 @@ protected function setUp(): void /** * Test for URLService::findUrls() method. */ - public function testFindUrls() + public function testFindUrls(): void { $expectedUrls = [ 'https://www.apache.org/', @@ -208,7 +208,7 @@ public function testFindUrls() /** * Test for URLService::findUrls() method. */ - public function testFindUrlsWithoutCounting() + public function testFindUrlsWithoutCounting(): void { $expectedUrls = [ 'https://www.apache.org/', @@ -244,7 +244,7 @@ public function testFindUrlsWithoutCounting() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsUsingMatchNone() + public function testFindUrlsUsingMatchNone(): void { $query = new URLQuery(); $query->filter = new Criterion\MatchNone(); @@ -256,7 +256,7 @@ public function testFindUrlsUsingMatchNone() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsUsingPatternCriterion() + public function testFindUrlsUsingPatternCriterion(): void { $expectedUrls = [ 'https://www.google.de/', @@ -276,7 +276,7 @@ public function testFindUrlsUsingPatternCriterion() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsUsingValidityCriterionValid() + public function testFindUrlsUsingValidityCriterionValid(): void { $expectedUrls = [ 'https://www.google.com/', @@ -413,7 +413,7 @@ public function testFindUrlsUsingSectionIdentifierOrSectionIdCriterion(): void * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsUsingValidityCriterionInvalid() + public function testFindUrlsUsingValidityCriterionInvalid(): void { $expectedUrls = [ '/content/view/tagcloud/2', @@ -429,7 +429,7 @@ public function testFindUrlsUsingValidityCriterionInvalid() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsUsingVisibleOnlyCriterion() + public function testFindUrlsUsingVisibleOnlyCriterion(): void { $expectedUrls = [ 'https://vimeo.com/', @@ -483,7 +483,7 @@ public function testFindUrlsUsingVisibleOnlyCriterionReturnsUniqueItems(): void /** * Test for URLService::findUrls() method. */ - public function testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException() + public function testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException(): void { $query = new URLQuery(); $query->filter = new Criterion\MatchAll(); @@ -502,7 +502,7 @@ public function testFindUrlsWithInvalidOffsetThrowsInvalidArgumentException() /** * Test for URLService::findUrls() method. */ - public function testFindUrlsWithInvalidLimitThrowsInvalidArgumentException() + public function testFindUrlsWithInvalidLimitThrowsInvalidArgumentException(): void { $query = new URLQuery(); $query->filter = new Criterion\MatchAll(); @@ -522,7 +522,7 @@ public function testFindUrlsWithInvalidLimitThrowsInvalidArgumentException() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsWithOffset() + public function testFindUrlsWithOffset(): void { $expectedUrls = [ 'https://www.discuz.net/forum.php', @@ -549,7 +549,7 @@ public function testFindUrlsWithOffset() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsWithOffsetAndLimit() + public function testFindUrlsWithOffsetAndLimit(): void { $expectedUrls = [ 'https://www.discuz.net/forum.php', @@ -570,7 +570,7 @@ public function testFindUrlsWithOffsetAndLimit() * Test for URLService::findUrls() method. */ #[Depends('testFindUrls')] - public function testFindUrlsWithLimitZero() + public function testFindUrlsWithLimitZero(): void { $query = new URLQuery(); $query->filter = new Criterion\MatchAll(); @@ -584,7 +584,7 @@ public function testFindUrlsWithLimitZero() */ #[Depends('testFindUrls')] #[DataProvider('dataProviderForFindUrlsWithSorting')] - public function testFindUrlsWithSorting(SortClause $sortClause, array $expectedUrls) + public function testFindUrlsWithSorting(SortClause $sortClause, array $expectedUrls): void { $query = new URLQuery(); $query->filter = new Criterion\MatchAll(); @@ -593,7 +593,10 @@ public function testFindUrlsWithSorting(SortClause $sortClause, array $expectedU $this->doTestFindUrls($query, $expectedUrls, count($expectedUrls), false); } - public static function dataProviderForFindUrlsWithSorting() + /** + * @return array + */ + public static function dataProviderForFindUrlsWithSorting(): array { $urlsSortedById = [ '/content/view/sitemap/2', @@ -632,7 +635,7 @@ public static function dataProviderForFindUrlsWithSorting() /** * Test for URLService::updateUrl() method. */ - public function testUpdateUrl() + public function testUpdateUrl(): void { $repository = $this->getRepository(); @@ -663,7 +666,7 @@ public function testUpdateUrl() /** * Test for URLService::updateUrl() method. */ - public function testUpdateUrlStatus() + public function testUpdateUrlStatus(): void { $repository = $this->getRepository(); @@ -698,7 +701,7 @@ public function testUpdateUrlStatus() * Test for URLService::updateUrl() method. */ #[Depends('testUpdateUrl')] - public function testUpdateUrlWithNonUniqueUrl() + public function testUpdateUrlWithNonUniqueUrl(): void { $this->expectException(InvalidArgumentException::class); @@ -721,7 +724,7 @@ public function testUpdateUrlWithNonUniqueUrl() /** * Test for URLService::loadById() method. */ - public function testLoadById() + public function testLoadById(): void { $repository = $this->getRepository(); @@ -748,7 +751,7 @@ public function testLoadById() * Test for URLService::loadById() method. */ #[Depends('testLoadById')] - public function testLoadByIdThrowsNotFoundException() + public function testLoadByIdThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -764,7 +767,7 @@ public function testLoadByIdThrowsNotFoundException() /** * Test for URLService::loadByUrl() method. */ - public function testLoadByUrl() + public function testLoadByUrl(): void { $repository = $this->getRepository(); @@ -791,7 +794,7 @@ public function testLoadByUrl() * Test for URLService::loadByUrl() method. */ #[Depends('testLoadByUrl')] - public function testLoadByUrlThrowsNotFoundException() + public function testLoadByUrlThrowsNotFoundException(): void { $repository = $this->getRepository(); @@ -830,7 +833,7 @@ public function testCreateUpdateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\URL\URLUpdateStruct $updateStruct */ #[Depends('testCreateUpdateStruct')] - public function testCreateUpdateStructValues(URLUpdateStruct $updateStruct) + public function testCreateUpdateStructValues(URLUpdateStruct $updateStruct): void { $this->assertPropertiesCorrect([ 'url' => null, @@ -844,7 +847,7 @@ public function testCreateUpdateStructValues(URLUpdateStruct $updateStruct) */ #[Depends('testLoadById')] #[DataProvider('dataProviderForFindUsages')] - public function testFindUsages($urlId, $offset, $limit, array $expectedContentInfos, $expectedTotalCount = null) + public function testFindUsages($urlId, $offset, $limit, array $expectedContentInfos, $expectedTotalCount = null): void { $repository = $this->getRepository(); @@ -862,7 +865,10 @@ public function testFindUsages($urlId, $offset, $limit, array $expectedContentIn $this->assertUsagesSearchResultItems($usagesSearchResults, $expectedContentInfos); } - public static function dataProviderForFindUsages() + /** + * @return array + */ + public static function dataProviderForFindUsages(): array { return [ // findUsages($url, 0, -1) @@ -876,7 +882,7 @@ public static function dataProviderForFindUsages() * Test for URLService::testFindUsages() method. */ #[Depends('testFindUsages')] - public function testFindUsagesReturnsEmptySearchResults() + public function testFindUsagesReturnsEmptySearchResults(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php index d01cf027d1..6d22080efc 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceAuthorizationTest.php @@ -47,7 +47,7 @@ public function testCreateThrowsUnauthorizedException(): void * Test for the remove() method. */ #[DependsExternal(URLWildcardServiceTest::class, 'testRemove')] - public function testRemoveThrowsUnauthorizedException() + public function testRemoveThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/URLWildcardServiceTest.php b/tests/integration/Core/Repository/URLWildcardServiceTest.php index 55dfcd7009..743b1ed258 100644 --- a/tests/integration/Core/Repository/URLWildcardServiceTest.php +++ b/tests/integration/Core/Repository/URLWildcardServiceTest.php @@ -55,7 +55,7 @@ public function testCreate() * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard */ #[Depends('testCreate')] - public function testCreateSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) + public function testCreateSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard): void { $this->assertPropertiesCorrect( [ @@ -71,7 +71,7 @@ public function testCreateSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) * Test for the create() method. */ #[Depends('testCreate')] - public function testCreateWithOptionalForwardParameter() + public function testCreateWithOptionalForwardParameter(): void { $repository = $this->getRepository(); @@ -96,7 +96,7 @@ public function testCreateWithOptionalForwardParameter() * Test for the create() method. */ #[Depends('testCreate')] - public function testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl() + public function testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl(): void { $this->expectException(InvalidArgumentException::class); @@ -118,7 +118,7 @@ public function testCreateThrowsInvalidArgumentExceptionOnDuplicateSourceUrl() * Test for the create() method. */ #[Depends('testCreate')] - public function testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceholdersNotMatch() + public function testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceholdersNotMatch(): void { $this->expectException(ContentValidationException::class); @@ -137,7 +137,7 @@ public function testCreateThrowsContentValidationExceptionWhenPatternsAndPlaceho * Test for the create() method. */ #[Depends('testCreate')] - public function testCreateThrowsContentValidationExceptionWhenPlaceholdersNotValidNumberSequence() + public function testCreateThrowsContentValidationExceptionWhenPlaceholdersNotValidNumberSequence(): void { $this->expectException(ContentValidationException::class); @@ -186,7 +186,7 @@ public function testLoad() * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard */ #[Depends('testLoad')] - public function testLoadSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) + public function testLoadSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard): void { $this->assertPropertiesCorrect( [ @@ -204,7 +204,7 @@ public function testLoadSetsPropertiesOnURLWildcard(URLWildcard $urlWildcard) * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcard $urlWildcard */ #[Depends('testLoad')] - public function testLoadThrowsNotFoundException(URLWildcard $urlWildcard) + public function testLoadThrowsNotFoundException(URLWildcard $urlWildcard): void { $this->expectException(NotFoundException::class); @@ -264,7 +264,7 @@ public function testUpdate(): void * Test for the remove() method. */ #[Depends('testLoad')] - public function testRemove() + public function testRemove(): void { $this->expectException(NotFoundException::class); @@ -291,7 +291,7 @@ public function testRemove() * Test for the loadAll() method. */ #[Depends('testCreate')] - public function testLoadAll() + public function testLoadAll(): void { $repository = $this->getRepository(); @@ -319,7 +319,7 @@ public function testLoadAll() * Test for the loadAll() method. */ #[Depends('testLoadAll')] - public function testLoadAllWithOffsetParameter() + public function testLoadAllWithOffsetParameter(): void { $repository = $this->getRepository(); @@ -341,7 +341,7 @@ public function testLoadAllWithOffsetParameter() * Test for the loadAll() method. */ #[Depends('testLoadAll')] - public function testLoadAllWithOffsetAndLimitParameter() + public function testLoadAllWithOffsetAndLimitParameter(): void { $repository = $this->getRepository(); @@ -363,7 +363,7 @@ public function testLoadAllWithOffsetAndLimitParameter() * Test for the loadAll() method. */ #[Depends('testLoadAll')] - public function testLoadAllReturnsEmptyArrayByDefault() + public function testLoadAllReturnsEmptyArrayByDefault(): void { $repository = $this->getRepository(); @@ -411,7 +411,7 @@ public function testTranslate() * @param \Ibexa\Contracts\Core\Repository\Values\Content\URLWildcardTranslationResult $result */ #[Depends('testTranslate')] - public function testTranslateSetsPropertiesOnTranslationResult(URLWildcardTranslationResult $result) + public function testTranslateSetsPropertiesOnTranslationResult(URLWildcardTranslationResult $result): void { $this->assertPropertiesCorrect( [ @@ -426,7 +426,7 @@ public function testTranslateSetsPropertiesOnTranslationResult(URLWildcardTransl * Test for the translate() method. */ #[Depends('testTranslate')] - public function testTranslateWithForwardSetToTrue() + public function testTranslateWithForwardSetToTrue(): void { $repository = $this->getRepository(); @@ -453,7 +453,7 @@ public function testTranslateWithForwardSetToTrue() * Test for the translate() method. */ #[Depends('testTranslate')] - public function testTranslateReturnsLongestMatchingWildcard() + public function testTranslateReturnsLongestMatchingWildcard(): void { $repository = $this->getRepository(); @@ -475,7 +475,7 @@ public function testTranslateReturnsLongestMatchingWildcard() * Test for the translate() method. */ #[Depends('testTranslate')] - public function testTranslateThrowsNotFoundExceptionWhenNotAliasOrWildcardMatches() + public function testTranslateThrowsNotFoundExceptionWhenNotAliasOrWildcardMatches(): void { $this->expectException(NotFoundException::class); diff --git a/tests/integration/Core/Repository/UserPreferenceServiceTest.php b/tests/integration/Core/Repository/UserPreferenceServiceTest.php index 7f8d831003..639070b2a5 100644 --- a/tests/integration/Core/Repository/UserPreferenceServiceTest.php +++ b/tests/integration/Core/Repository/UserPreferenceServiceTest.php @@ -22,7 +22,7 @@ #[CoversClass(UserPreferenceService::class)] class UserPreferenceServiceTest extends BaseTestCase { - public function testLoadUserPreferences() + public function testLoadUserPreferences(): void { $repository = $this->getRepository(); @@ -37,7 +37,7 @@ public function testLoadUserPreferences() self::assertEquals(5, $userPreferenceList->totalCount); } - public function testGetUserPreference() + public function testGetUserPreference(): void { $repository = $this->getRepository(); @@ -54,7 +54,7 @@ public function testGetUserPreference() } #[Depends('testGetUserPreference')] - public function testSetUserPreference() + public function testSetUserPreference(): void { $repository = $this->getRepository(); @@ -77,7 +77,7 @@ public function testSetUserPreference() } #[Depends('testSetUserPreference')] - public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValue() + public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValue(): void { $this->expectException(InvalidArgumentException::class); @@ -97,7 +97,7 @@ public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnInvalidValu } #[Depends('testSetUserPreference')] - public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName() + public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName(): void { $this->expectException(InvalidArgumentException::class); @@ -115,7 +115,7 @@ public function testSetUserPreferenceThrowsInvalidArgumentExceptionOnEmptyName() /* END: Use Case */ } - public function testGetUserPreferenceCount() + public function testGetUserPreferenceCount(): void { $repository = $this->getRepository(); diff --git a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php index 601f75ae0a..eb911320f2 100644 --- a/tests/integration/Core/Repository/UserServiceAuthorizationTest.php +++ b/tests/integration/Core/Repository/UserServiceAuthorizationTest.php @@ -25,7 +25,7 @@ class UserServiceAuthorizationTest extends BaseTestCase * Test for the loadUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testLoadUserGroup')] - public function testLoadUserGroupThrowsUnauthorizedException() + public function testLoadUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -73,7 +73,7 @@ public function testLoadUserGroupByRemoteIdThrowsUnauthorizedException(): void * Test for the loadSubUserGroups() method. */ #[DependsExternal(UserServiceTest::class, 'testLoadSubUserGroups')] - public function testLoadSubUserGroupsThrowsUnauthorizedException() + public function testLoadSubUserGroupsThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -98,7 +98,7 @@ public function testLoadSubUserGroupsThrowsUnauthorizedException() * Test for the createUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testCreateUserGroup')] - public function testCreateUserGroupThrowsUnauthorizedException() + public function testCreateUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -130,7 +130,7 @@ public function testCreateUserGroupThrowsUnauthorizedException() * Test for the deleteUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testDeleteUserGroup')] - public function testDeleteUserGroupThrowsUnauthorizedException() + public function testDeleteUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -155,7 +155,7 @@ public function testDeleteUserGroupThrowsUnauthorizedException() * Test for the moveUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testMoveUserGroup')] - public function testMoveUserGroupThrowsUnauthorizedException() + public function testMoveUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -187,7 +187,7 @@ public function testMoveUserGroupThrowsUnauthorizedException() * Test for the updateUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testUpdateUserGroup')] - public function testUpdateUserGroupThrowsUnauthorizedException() + public function testUpdateUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -222,7 +222,7 @@ public function testUpdateUserGroupThrowsUnauthorizedException() * Test for the createUser() method. */ #[DependsExternal(UserServiceTest::class, 'testCreateUser')] - public function testCreateUserThrowsUnauthorizedException() + public function testCreateUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -263,7 +263,7 @@ public function testCreateUserThrowsUnauthorizedException() * Test for the deleteUser() method. */ #[DependsExternal(UserServiceTest::class, 'testDeleteUser')] - public function testDeleteUserThrowsUnauthorizedException() + public function testDeleteUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -285,7 +285,7 @@ public function testDeleteUserThrowsUnauthorizedException() /** * Test for the updateUser() method. */ - public function testUpdateUserThrowsUnauthorizedException() + public function testUpdateUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -334,7 +334,7 @@ public function testUpdateUserPasswordThrowsUnauthorizedException(): void * Test for the assignUserToUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testAssignUserToUserGroup')] - public function testAssignUserToUserGroupThrowsUnauthorizedException() + public function testAssignUserToUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -364,7 +364,7 @@ public function testAssignUserToUserGroupThrowsUnauthorizedException() * Test for the unAssignUssrFromUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testUnAssignUserFromUserGroup')] - public function testUnAssignUserFromUserGroupThrowsUnauthorizedException() + public function testUnAssignUserFromUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -402,7 +402,7 @@ public function testUnAssignUserFromUserGroupThrowsUnauthorizedException() * Test for the loadUserGroupsOfUser() method. */ #[DependsExternal(UserServiceTest::class, 'testLoadUserGroupsOfUser')] - public function testLoadUserGroupsOfUserThrowsUnauthorizedException() + public function testLoadUserGroupsOfUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -426,7 +426,7 @@ public function testLoadUserGroupsOfUserThrowsUnauthorizedException() * Test for the loadUsersOfUserGroup() method. */ #[DependsExternal(UserServiceTest::class, 'testLoadUsersOfUserGroup')] - public function testLoadUsersOfUserGroupThrowsUnauthorizedException() + public function testLoadUsersOfUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/UserServiceTest.php b/tests/integration/Core/Repository/UserServiceTest.php index 29f9cf2ab9..f70973f974 100644 --- a/tests/integration/Core/Repository/UserServiceTest.php +++ b/tests/integration/Core/Repository/UserServiceTest.php @@ -60,7 +60,7 @@ class UserServiceTest extends BaseTestCase /** * Test for the loadUserGroup() method. */ - public function testLoadUserGroup() + public function testLoadUserGroup(): void { $repository = $this->getRepository(); @@ -102,7 +102,7 @@ public function testLoadUserGroupByRemoteId(): void * Test for the loadUserGroup() method to ensure that DomainUserGroupObject is created properly even if a user * has no access to parent of UserGroup. */ - public function testLoadUserGroupWithNoAccessToParent() + public function testLoadUserGroupWithNoAccessToParent(): void { $repository = $this->getRepository(); @@ -136,7 +136,7 @@ public function testLoadUserGroupWithNoAccessToParent() * Test for the loadUserGroup() method. */ #[Depends('testLoadUserGroup')] - public function testLoadUserGroupThrowsNotFoundException() + public function testLoadUserGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -169,7 +169,7 @@ public function testLoadUserGroupByRemoteIdThrowsNotFoundException(): void * Test for the loadSubUserGroups() method. */ #[Depends('testLoadUserGroup')] - public function testLoadSubUserGroups() + public function testLoadSubUserGroups(): void { $repository = $this->getRepository(); @@ -192,7 +192,7 @@ public function testLoadSubUserGroups() /** * Test loading sub groups throwing NotFoundException. */ - public function testLoadSubUserGroupsThrowsNotFoundException() + public function testLoadSubUserGroupsThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -247,7 +247,7 @@ public function testNewUserGroupCreateStruct() * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroupCreateStruct $groupCreate */ #[Depends('testNewUserGroupCreateStruct')] - public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate) + public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate): void { self::assertEquals('eng-US', $groupCreate->mainLanguageCode); } @@ -258,7 +258,7 @@ public function testNewUserGroupCreateStructSetsMainLanguageCode($groupCreate) * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroupCreateStruct $groupCreate */ #[Depends('testNewUserGroupCreateStruct')] - public function testNewUserGroupCreateStructSetsContentType($groupCreate) + public function testNewUserGroupCreateStructSetsContentType($groupCreate): void { self::assertInstanceOf( ContentType::class, @@ -270,7 +270,7 @@ public function testNewUserGroupCreateStructSetsContentType($groupCreate) * Test for the newUserGroupCreateStruct() method. */ #[Depends('testNewUserGroupCreateStruct')] - public function testNewUserGroupCreateStructWithSecondParameter() + public function testNewUserGroupCreateStructWithSecondParameter(): void { $repository = $this->getRepository(); @@ -323,7 +323,7 @@ public function testCreateUserGroup() * @param \Ibexa\Contracts\Core\Repository\Values\User\UserGroup $userGroup */ #[Depends('testCreateUserGroup')] - public function testCreateUserGroupSetsExpectedProperties($userGroup) + public function testCreateUserGroupSetsExpectedProperties($userGroup): void { self::assertEquals( [ @@ -339,7 +339,7 @@ public function testCreateUserGroupSetsExpectedProperties($userGroup) * Test for the createUserGroup() method. */ #[Depends('testCreateUserGroup')] - public function testCreateUserGroupThrowsInvalidArgumentException() + public function testCreateUserGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -372,7 +372,7 @@ public function testCreateUserGroupThrowsInvalidArgumentException() * Test for the createUserGroup() method. */ #[Depends('testCreateUserGroup')] - public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAccept() + public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAccept(): void { $this->expectException(InvalidArgumentException::class); @@ -404,7 +404,7 @@ public function testCreateUserGroupThrowsInvalidArgumentExceptionFieldTypeNotAcc * Test for the createUserGroup() method. */ #[Depends('testCreateUserGroup')] - public function testCreateUserGroupWhenMissingField() + public function testCreateUserGroupWhenMissingField(): void { $this->expectException(ContentFieldValidationException::class); @@ -481,7 +481,7 @@ public function testCreateUserGroupInTransactionWithRollback(): void * Test for the deleteUserGroup() method. */ #[Depends('testCreateUserGroup')] - public function testDeleteUserGroup() + public function testDeleteUserGroup(): void { $this->expectException(NotFoundException::class); @@ -502,7 +502,7 @@ public function testDeleteUserGroup() /** * Test deleting user group throwing NotFoundException. */ - public function testDeleteUserGroupThrowsNotFoundException() + public function testDeleteUserGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -529,7 +529,7 @@ public function testDeleteUserGroupThrowsNotFoundException() */ #[Depends('testCreateUserGroup')] #[Depends('testLoadSubUserGroups')] - public function testMoveUserGroup() + public function testMoveUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -572,7 +572,7 @@ static function ($content) { /** * Test moving a user group below another group throws NotFoundException. */ - public function testMoveUserGroupThrowsNotFoundException() + public function testMoveUserGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -609,7 +609,7 @@ public function testMoveUserGroupThrowsNotFoundException() /** * Test for the newUserGroupUpdateStruct() method. */ - public function testNewUserGroupUpdateStruct() + public function testNewUserGroupUpdateStruct(): void { $repository = $this->getRepository(); @@ -633,7 +633,7 @@ public function testNewUserGroupUpdateStruct() */ #[Depends('testCreateUserGroup')] #[Depends('testNewUserGroupUpdateStruct')] - public function testUpdateUserGroup() + public function testUpdateUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -663,7 +663,7 @@ public function testUpdateUserGroup() * Test for the updateUserGroup() method. */ #[Depends('testUpdateUserGroup')] - public function testUpdateUserGroupWithSubContentUpdateStruct() + public function testUpdateUserGroupWithSubContentUpdateStruct(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -701,7 +701,7 @@ public function testUpdateUserGroupWithSubContentUpdateStruct() * Test for the updateUserGroup() method. */ #[Depends('testUpdateUserGroup')] - public function testUpdateUserGroupWithSubContentMetadataUpdateStruct() + public function testUpdateUserGroupWithSubContentMetadataUpdateStruct(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -742,7 +742,7 @@ public function testUpdateUserGroupWithSubContentMetadataUpdateStruct() * Test for the updateUserGroup() method. */ #[Depends('testUpdateUserGroup')] - public function testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() + public function testUpdateUserGroupThrowsInvalidArgumentExceptionOnFieldTypeNotAccept(): void { $this->expectException(InvalidArgumentException::class); @@ -799,7 +799,7 @@ public function testNewUserCreateStruct() /** * Test updating a user group throws ContentFieldValidationException. */ - public function testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequiredFieldEmpty() + public function testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequiredFieldEmpty(): void { $this->expectException(ContentFieldValidationException::class); @@ -821,7 +821,7 @@ public function testUpdateUserGroupThrowsContentFieldValidationExceptionOnRequir * @param \Ibexa\Contracts\Core\Repository\Values\User\UserCreateStruct $userCreate */ #[Depends('testNewUserCreateStruct')] - public function testNewUserCreateStructSetsExpectedProperties($userCreate) + public function testNewUserCreateStructSetsExpectedProperties($userCreate): void { self::assertEquals( [ @@ -843,7 +843,7 @@ public function testNewUserCreateStructSetsExpectedProperties($userCreate) * Test for the newUserCreateStruct() method. */ #[Depends('testNewUserCreateStruct')] - public function testNewUserCreateStructWithFifthParameter() + public function testNewUserCreateStructWithFifthParameter(): void { $repository = $this->getRepository(); @@ -905,7 +905,7 @@ public function testCreateUser() * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user */ #[Depends('testCreateUser')] - public function testCreateUserSetsExpectedProperties(User $user) + public function testCreateUserSetsExpectedProperties(User $user): void { self::assertEquals( [ @@ -925,7 +925,7 @@ public function testCreateUserSetsExpectedProperties(User $user) * Test for the createUser() method. */ #[Depends('testCreateUser')] - public function testCreateUserWhenMissingField() + public function testCreateUserWhenMissingField(): void { $this->expectException(ContentFieldValidationException::class); @@ -963,7 +963,7 @@ public function testCreateUserWhenMissingField() * Test for the createUser() method. */ #[Depends('testCreateUser')] - public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() + public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept(): void { $this->expectException(InvalidArgumentException::class); @@ -1001,7 +1001,7 @@ public function testCreateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept * Test for the createUser() method. */ #[Depends('testCreateUser')] - public function testCreateUserThrowsInvalidArgumentException() + public function testCreateUserThrowsInvalidArgumentException(): void { $repository = $this->getRepository(); @@ -1184,7 +1184,7 @@ public function testCreateUserInTransactionWithRollback(): void /** * Test creating a user throwing NotFoundException. */ - public function testCreateUserThrowsNotFoundException() + public function testCreateUserThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -1215,7 +1215,7 @@ public function testCreateUserThrowsNotFoundException() /** * Test creating a user throwing UserPasswordValidationException when password doesn't follow specific rules. */ - public function testCreateUserWithWeakPasswordThrowsUserPasswordValidationException() + public function testCreateUserWithWeakPasswordThrowsUserPasswordValidationException(): void { $userContentType = $this->createUserContentTypeWithStrongPassword(); @@ -1244,7 +1244,7 @@ public function testCreateUserWithWeakPasswordThrowsUserPasswordValidationExcept /** * Opposite test case for testCreateUserWithWeakPasswordThrowsUserPasswordValidationException. */ - public function testCreateUserWithStrongPassword() + public function testCreateUserWithStrongPassword(): void { $userContentType = $this->createUserContentTypeWithStrongPassword(); @@ -1283,7 +1283,7 @@ public function testLoadUser(): void * Test for the loadUser() method. */ #[Depends('testLoadUser')] - public function testLoadUserThrowsNotFoundException() + public function testLoadUserThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -1337,7 +1337,7 @@ public function testCheckUserCredentialsInvalid(): void * Test for the loadUserByLogin() method. */ #[Depends('testCreateUser')] - public function testLoadUserByLogin() + public function testLoadUserByLogin(): void { $repository = $this->getRepository(); @@ -1371,7 +1371,7 @@ public function testLoadUserByLogin() * Test for the loadUserByLogin() method. */ #[Depends('testLoadUserByLogin')] - public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin() + public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin(): void { $this->expectException(NotFoundException::class); @@ -1392,7 +1392,7 @@ public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLogin() * Test for the loadUserByLogin() method. */ #[Depends('testLoadUserByLogin')] - public function testLoadUserByLoginWorksForLoginWithWrongCase() + public function testLoadUserByLoginWorksForLoginWithWrongCase(): void { $repository = $this->getRepository(); @@ -1428,7 +1428,7 @@ public function testLoadUserByLoginWorksForLoginWithWrongCase() * In some cases people use email as login name, make sure system works as exepcted when asking for user by email. */ #[Depends('testLoadUserByLogin')] - public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLoginByEmail() + public function testLoadUserByLoginThrowsNotFoundExceptionForUnknownLoginByEmail(): void { $this->expectException(NotFoundException::class); @@ -1464,7 +1464,7 @@ public function testLoadUserByEmail(): void * Test for the loadUsersByEmail() method. */ #[Depends('testLoadUserByEmail')] - public function testLoadUserByEmailReturnsEmptyInUnknownEmail() + public function testLoadUserByEmailReturnsEmptyInUnknownEmail(): void { $repository = $this->getRepository(); @@ -1486,7 +1486,7 @@ public function testLoadUserByEmailReturnsEmptyInUnknownEmail() */ #[Depends('testCreateUser')] #[Depends('testLoadUser')] - public function testDeleteUser() + public function testDeleteUser(): void { $this->expectException(NotFoundException::class); @@ -1510,7 +1510,7 @@ public function testDeleteUser() */ #[Depends('testCreateUser')] #[Depends('testLoadUser')] - public function testDeleteUserDeletesRelatedBookmarks() + public function testDeleteUserDeletesRelatedBookmarks(): void { $repository = $this->getRepository(); @@ -1541,7 +1541,7 @@ public function testDeleteUserDeletesRelatedBookmarks() /** * Test for the newUserUpdateStruct() method. */ - public function testNewUserUpdateStruct() + public function testNewUserUpdateStruct(): void { $repository = $this->getRepository(); @@ -1684,7 +1684,7 @@ public function testUpdateUserNoPassword(): void * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user */ #[Depends('testUpdateUser')] - public function testUpdateUserUpdatesExpectedProperties(User $user) + public function testUpdateUserUpdatesExpectedProperties(User $user): void { self::assertEquals( [ @@ -1716,7 +1716,7 @@ public function testUpdateUserUpdatesExpectedProperties(User $user) * @param \Ibexa\Contracts\Core\Repository\Values\User\User $user */ #[Depends('testUpdateUser')] - public function testUpdateUserReturnsPublishedVersion(User $user) + public function testUpdateUserReturnsPublishedVersion(User $user): void { self::assertEquals( APIVersionInfo::STATUS_PUBLISHED, @@ -1728,7 +1728,7 @@ public function testUpdateUserReturnsPublishedVersion(User $user) * Test for the updateUser() method. */ #[Depends('testUpdateUser')] - public function testUpdateUserWithContentMetadataUpdateStruct() + public function testUpdateUserWithContentMetadataUpdateStruct(): void { $repository = $this->getRepository(); @@ -1764,7 +1764,7 @@ public function testUpdateUserWithContentMetadataUpdateStruct() * Test for the updateUser() method. */ #[Depends('testUpdateUser')] - public function testUpdateUserWithContentUpdateStruct() + public function testUpdateUserWithContentUpdateStruct(): void { $repository = $this->getRepository(); @@ -1804,7 +1804,7 @@ public function testUpdateUserWithContentUpdateStruct() * Test for the updateUser() method. */ #[Depends('testUpdateUser')] - public function testUpdateUserWhenMissingField() + public function testUpdateUserWhenMissingField(): void { $this->expectException(ContentFieldValidationException::class); @@ -1839,7 +1839,7 @@ public function testUpdateUserWhenMissingField() * Test for the updateUser() method. */ #[Depends('testUpdateUser')] - public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept() + public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept(): void { $this->expectException(InvalidArgumentException::class); @@ -1873,7 +1873,7 @@ public function testUpdateUserThrowsInvalidArgumentExceptionOnFieldTypeNotAccept /** * Test updating a user throwing UserPasswordValidationException when password doesn't follow specified rules. */ - public function testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException() + public function testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException(): void { $userService = $this->getRepository()->getUserService(); @@ -1906,7 +1906,7 @@ public function testUpdateUserWithWeakPasswordThrowsUserPasswordValidationExcept /** * Opposite test case for testUpdateUserWithWeakPasswordThrowsUserPasswordValidationException. */ - public function testUpdateUserWithStrongPassword() + public function testUpdateUserWithStrongPassword(): void { $userService = $this->getRepository()->getUserService(); @@ -2006,7 +2006,7 @@ public function testUpdateUserPasswordWithUnsupportedHashType(): void * Test for the loadUserGroupsOfUser() method. */ #[Depends('testCreateUser')] - public function testLoadUserGroupsOfUser() + public function testLoadUserGroupsOfUser(): void { $repository = $this->getRepository(); @@ -2030,7 +2030,7 @@ public function testLoadUserGroupsOfUser() * Test for the loadUsersOfUserGroup() method. */ #[Depends('testCreateUser')] - public function testLoadUsersOfUserGroup() + public function testLoadUsersOfUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2056,7 +2056,7 @@ public function testLoadUsersOfUserGroup() * Test for the assignUserToUserGroup() method. */ #[Depends('testLoadUserGroupsOfUser')] - public function testAssignUserToUserGroup() + public function testAssignUserToUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2096,7 +2096,7 @@ public function testAssignUserToUserGroup() * Test for the assignUserToUserGroup() method. */ #[Depends('testAssignUserToUserGroup')] - public function testAssignUserToUserGroupThrowsInvalidArgumentException() + public function testAssignUserToUserGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'user\' is invalid: User is already in the given User Group'); @@ -2153,7 +2153,7 @@ public function testAssignUserToGroupWithLocationsValidation(): void * Test for the unAssignUssrFromUserGroup() method. */ #[Depends('testLoadUserGroupsOfUser')] - public function testUnAssignUserFromUserGroup() + public function testUnAssignUserFromUserGroup(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2193,7 +2193,7 @@ public function testUnAssignUserFromUserGroup() * Test for the unAssignUserFromUserGroup() method. */ #[Depends('testUnAssignUserFromUserGroup')] - public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException() + public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -2219,7 +2219,7 @@ public function testUnAssignUserFromUserGroupThrowsInvalidArgumentException() * Test for the unAssignUserFromUserGroup() method removing user from the last group. */ #[Depends('testUnAssignUserFromUserGroup')] - public function testUnAssignUserFromUserGroupThrowsBadStateArgumentException() + public function testUnAssignUserFromUserGroupThrowsBadStateArgumentException(): void { $this->expectException(BadStateException::class); $this->expectExceptionMessage('Argument \'user\' has a bad state: User only has one User Group, cannot unassign from last group'); @@ -2291,7 +2291,7 @@ public function testUnAssignUserToGroupWithLocationValidation(): void public function testLoadUserGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2324,7 +2324,7 @@ public function testLoadUserGroupWithPrioritizedLanguagesList( public function testLoadUserGroupWithPrioritizedLanguagesListAfterMainLanguageUpdate( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $contentService = $repository->getContentService(); @@ -2364,7 +2364,7 @@ public function testLoadUserGroupWithPrioritizedLanguagesListAfterMainLanguageUp public function testLoadSubUserGroupsWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2405,7 +2405,7 @@ public function testLoadSubUserGroupsWithPrioritizedLanguagesList( public function testLoadUserWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2442,7 +2442,7 @@ public function testLoadUserWithPrioritizedLanguagesList( public function testLoadUserWithPrioritizedLanguagesListAfterMainLanguageUpdate( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $contentService = $repository->getContentService(); @@ -2486,7 +2486,7 @@ public function testLoadUserWithPrioritizedLanguagesListAfterMainLanguageUpdate( public function testLoadUserByLoginWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $user = $this->createMultiLanguageUser(); @@ -2523,7 +2523,7 @@ public function testLoadUserByLoginWithPrioritizedLanguagesList( public function testLoadUsersByEmailWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $user = $this->createMultiLanguageUser(); @@ -2562,7 +2562,7 @@ public function testLoadUsersByEmailWithPrioritizedLanguagesList( public function testLoadUserGroupsOfUserWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); $userGroup = $this->createMultiLanguageUserGroup(); @@ -2594,7 +2594,7 @@ public function testLoadUserGroupsOfUserWithPrioritizedLanguagesList( public function testLoadUsersOfUserGroupWithPrioritizedLanguagesList( array $prioritizedLanguages, $expectedLanguageCode - ) { + ): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -2635,7 +2635,7 @@ public function testLoadUsersOfUserGroupWithPrioritizedLanguagesList( * * @return array */ - public static function getPrioritizedLanguageList() + public static function getPrioritizedLanguageList(): array { return [ [[], null], @@ -2815,7 +2815,7 @@ public function testLoadUserByToken(): string * @param string $originalUserToken */ #[Depends('testLoadUserByToken')] - public function testUpdateUserToken($originalUserToken) + public function testUpdateUserToken($originalUserToken): void { $repository = $this->getRepository(false); $userService = $repository->getUserService(); @@ -2840,7 +2840,7 @@ public function testUpdateUserToken($originalUserToken) * @param string $userToken */ #[Depends('testLoadUserByToken')] - public function testExpireUserToken($userToken) + public function testExpireUserToken($userToken): void { $this->expectException(NotFoundException::class); @@ -2868,7 +2868,7 @@ public function testLoadUserByTokenThrowsNotFoundException(): void $userService->loadUserByToken('not_existing_token'); } - public function testValidatePasswordWithDefaultContext() + public function testValidatePasswordWithDefaultContext(): void { $userService = $this->getRepository()->getUserService(); @@ -2880,7 +2880,7 @@ public function testValidatePasswordWithDefaultContext() } #[DataProvider('dataProviderForValidatePassword')] - public function testValidatePassword(string $password, array $expectedErrors) + public function testValidatePassword(string $password, array $expectedErrors): void { $userService = $this->getRepository()->getUserService(); $contentType = $this->createUserContentTypeWithStrongPassword(); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php index 295c8883b4..9da50b2e5f 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ContentTypeLimitationTest.php @@ -22,7 +22,7 @@ class ContentTypeLimitationTest extends BaseLimitationTestCase * * @throws \ErrorException */ - public function testContentTypeLimitationAllow() + public function testContentTypeLimitationAllow(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -92,7 +92,7 @@ public function testContentTypeLimitationAllow() * * @throws \ErrorException */ - public function testContentTypeLimitationForbid() + public function testContentTypeLimitationForbid(): void { $this->expectException(UnauthorizedException::class); @@ -150,7 +150,7 @@ public function testContentTypeLimitationForbid() /** * @throws \ErrorException */ - public function testContentTypeLimitationForbidVariant() + public function testContentTypeLimitationForbidVariant(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php index e7bd0e61a1..6628360157 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/LocationLimitationTest.php @@ -20,7 +20,7 @@ class LocationLimitationTest extends BaseLimitationTestCase /** * Tests a LocationLimitation. */ - public function testLocationLimitationAllow() + public function testLocationLimitationAllow(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -53,7 +53,7 @@ public function testLocationLimitationAllow() ); } - public function testLocationLimitationForbid() + public function testLocationLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php index 7df3d0eda1..8ae6194452 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/NewObjectStateLimitationTest.php @@ -17,7 +17,7 @@ #[Group('limitation')] class NewObjectStateLimitationTest extends BaseLimitationTestCase { - public function testNewObjectStateLimitationAllow() + public function testNewObjectStateLimitationAllow(): void { $repository = $this->getRepository(); $notLockedState = $this->generateId('objectstate', 2); @@ -60,7 +60,7 @@ public function testNewObjectStateLimitationAllow() * * @throws \ErrorException if a mandatory test fixture not exists. */ - public function testNewObjectStateLimitationForbid() + public function testNewObjectStateLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php index 272013749f..4100bb3d28 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/NewSectionLimitationTest.php @@ -17,7 +17,7 @@ #[Group('limitation')] class NewSectionLimitationTest extends BaseLimitationTestCase { - public function testNewSectionLimitationAllow() + public function testNewSectionLimitationAllow(): void { $repository = $this->getRepository(); @@ -68,7 +68,7 @@ public function testNewSectionLimitationAllow() ); } - public function testNewSectionLimitationForbid() + public function testNewSectionLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php index 5f78e5a7db..7a3eb558f4 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/OwnerLimitationTest.php @@ -18,7 +18,7 @@ #[Group('limitation')] class OwnerLimitationTest extends BaseLimitationTestCase { - public function testOwnerLimitationAllow() + public function testOwnerLimitationAllow(): void { $this->expectException(NotFoundException::class); @@ -85,7 +85,7 @@ public function testOwnerLimitationAllow() $contentService->loadContent($content->id); } - public function testOwnerLimitationForbid() + public function testOwnerLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php index d152e8a2d2..4f03ebbf2e 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentContentTypeLimitationTest.php @@ -18,7 +18,7 @@ #[Group('limitation')] class ParentContentTypeLimitationTest extends BaseLimitationTestCase { - public function testParentContentTypeLimitationAllow() + public function testParentContentTypeLimitationAllow(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -66,7 +66,7 @@ public function testParentContentTypeLimitationAllow() ); } - public function testParentContentTypeLimitationForbid() + public function testParentContentTypeLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php index 85ac78d76b..6593134955 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentDepthLimitationTest.php @@ -19,7 +19,7 @@ #[Group('limitation')] class ParentDepthLimitationTest extends BaseLimitationTestCase { - public function testParentDepthLimitationForbid() + public function testParentDepthLimitationForbid(): void { $this->expectException(UnauthorizedException::class); @@ -59,7 +59,7 @@ public function testParentDepthLimitationForbid() ); } - public function testParentDepthLimitationAllow() + public function testParentDepthLimitationAllow(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -103,7 +103,7 @@ public function testParentDepthLimitationAllow() * Tests a combination of ParentDepthLimitation and ContentTypeLimitation. */ #[Depends('testParentDepthLimitationAllow')] - public function testParentDepthLimitationAllowPublish() + public function testParentDepthLimitationAllowPublish(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php index 796e785634..dffaaabaff 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentOwnerLimitationTest.php @@ -17,7 +17,7 @@ #[Group('limitation')] class ParentOwnerLimitationTest extends BaseLimitationTestCase { - public function testParentOwnerLimitationAllow() + public function testParentOwnerLimitationAllow(): void { $repository = $this->getRepository(); @@ -60,7 +60,7 @@ public function testParentOwnerLimitationAllow() ); } - public function testParentOwnerLimitationForbid() + public function testParentOwnerLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php index 3de31a7135..a9bfaea10e 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/ParentUserGroupLimitationTest.php @@ -17,7 +17,7 @@ #[Group('limitation')] class ParentUserGroupLimitationTest extends BaseLimitationTestCase { - public function testParentUserGroupLimitationAllow() + public function testParentUserGroupLimitationAllow(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -79,7 +79,7 @@ public function testParentUserGroupLimitationAllow() ); } - public function testParentUserGroupLimitationForbid() + public function testParentUserGroupLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php index 9fc3ffd2a8..ce8bda9db2 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/RolePolicyLimitationTest.php @@ -20,8 +20,10 @@ class RolePolicyLimitationTest extends BaseLimitationTestCase { /** * Data provider for {@see testRolePoliciesWithOverlappingLimitations}. + * + * @return array */ - public static function providerForTestRolePoliciesWithOverlappingLimitations() + public static function providerForTestRolePoliciesWithOverlappingLimitations(): array { // get actual locations count for the given subtree when user is (by default) an admin $actualSubtreeLocationsCount = static::getSubtreeLocationsCountForFreshRepository('/1/2/'); @@ -49,7 +51,7 @@ public function testRolePoliciesWithOverlappingLimitations( $expectedSubtreeLocationsCount, $widePolicyModule, $widePolicyFunction - ) { + ): void { $repository = $this->getRepository(); $roleService = $repository->getRoleService(); $permissionResolver = $repository->getPermissionResolver(); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php index 71cb38cd7e..d32d057285 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/SectionLimitationTest.php @@ -17,7 +17,7 @@ #[Group('limitation')] class SectionLimitationTest extends BaseLimitationTestCase { - public function testSectionLimitationAllow() + public function testSectionLimitationAllow(): void { $repository = $this->getRepository(); @@ -75,7 +75,7 @@ public function testSectionLimitationAllow() ); } - public function testSectionLimitationForbid() + public function testSectionLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php index 7c3fdcd9f3..e9e1aa979e 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/StatusLimitationTest.php @@ -18,7 +18,7 @@ #[Group('limitation')] class StatusLimitationTest extends BaseLimitationTestCase { - public function testStatusLimitationAllow() + public function testStatusLimitationAllow(): void { $repository = $this->getRepository(); $permissionResolver = $repository->getPermissionResolver(); @@ -79,7 +79,7 @@ public function testStatusLimitationAllow() ); } - public function testStatusLimitationForbid() + public function testStatusLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php index a2695cb8a0..3a11b02a07 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/SubtreeLimitationTest.php @@ -27,7 +27,7 @@ class SubtreeLimitationTest extends BaseLimitationTestCase * @see \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation * @see \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation */ - public function testSubtreeLimitationAllow() + public function testSubtreeLimitationAllow(): void { $repository = $this->getRepository(); @@ -67,7 +67,7 @@ public function testSubtreeLimitationAllow() * @see \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation * @see \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation */ - public function testSubtreeLimitationForbid() + public function testSubtreeLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php b/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php index 80dfbfdb3f..66bbb122d7 100644 --- a/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php +++ b/tests/integration/Core/Repository/Values/User/Limitation/UserGroupLimitationTest.php @@ -19,7 +19,7 @@ #[Group('limitation')] class UserGroupLimitationTest extends BaseLimitationTestCase { - public function testUserGroupLimitationAllow() + public function testUserGroupLimitationAllow(): void { $repository = $this->getRepository(); $userService = $repository->getUserService(); @@ -43,7 +43,7 @@ public function testUserGroupLimitationAllow() ); } - public function testUserGroupLimitationForbid() + public function testUserGroupLimitationForbid(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php b/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php index 790dffe71e..773f61b1ff 100644 --- a/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/FieldTypeRegistryPassTest.php @@ -35,7 +35,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void } #[DataProvider('tagsProvider')] - public function testRegisterFieldType(string $tag) + public function testRegisterFieldType(string $tag): void { $fieldTypeIdentifier = 'field_type_identifier'; $serviceId = 'service_id'; @@ -56,7 +56,7 @@ public function testRegisterFieldType(string $tag) * @param string $tag */ #[DataProvider('tagsProvider')] - public function testRegisterFieldTypeNoAlias(string $tag) + public function testRegisterFieldTypeNoAlias(string $tag): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php b/tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php index 1efb7e677c..526494fca9 100644 --- a/tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/Search/FieldTypeRegistryPassTest.php @@ -33,7 +33,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new FieldRegistryPass()); } - public function testRegisterFieldType() + public function testRegisterFieldType(): void { $fieldTypeIdentifier = 'field_type_identifier'; $serviceId = 'service_id'; @@ -50,7 +50,7 @@ public function testRegisterFieldType() ); } - public function testRegisterFieldTypeNoAlias() + public function testRegisterFieldTypeNoAlias(): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php b/tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php index 7cb1b9e5f8..0502c551b9 100644 --- a/tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/Search/Legacy/CriterionFieldValueHandlerRegistryPassTest.php @@ -36,7 +36,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new CriterionFieldValueHandlerRegistryPass()); } - public function testRegisterValueHandler() + public function testRegisterValueHandler(): void { $fieldTypeIdentifier = 'field_type_identifier'; $serviceId = 'service_id'; @@ -56,7 +56,7 @@ public function testRegisterValueHandler() ); } - public function testRegisterValueHandlerNoAlias() + public function testRegisterValueHandlerNoAlias(): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php b/tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php index 1fa7eb7372..4fe405fcb2 100644 --- a/tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php +++ b/tests/lib/Base/Container/Compiler/Search/Legacy/SortClauseConverterPassTest.php @@ -26,7 +26,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new SortClauseConverterPass()); } - public function testAddContentHandlers() + public function testAddContentHandlers(): void { $this->setDefinition( 'ibexa.search.legacy.gateway.sort_clause_converter.content', @@ -47,7 +47,7 @@ public function testAddContentHandlers() ); } - public function testAddLocationHandlers() + public function testAddLocationHandlers(): void { $this->setDefinition( 'ibexa.search.legacy.gateway.sort_clause_converter.location', @@ -68,7 +68,7 @@ public function testAddLocationHandlers() ); } - public function testAddLocationAndContentHandlers() + public function testAddLocationAndContentHandlers(): void { $this->setDefinition( 'ibexa.search.legacy.gateway.sort_clause_converter.content', diff --git a/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php b/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php index 4996fbe608..e0dfd94d62 100644 --- a/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/Storage/ExternalStorageRegistryPassTest.php @@ -30,7 +30,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void } #[DataProvider('externalStorageHandlerTagsProvider')] - public function testRegisterExternalStorageHandler(string $tag) + public function testRegisterExternalStorageHandler(string $tag): void { $def = new Definition(); $fieldTypeIdentifier = 'field_type_identifier'; @@ -48,7 +48,7 @@ public function testRegisterExternalStorageHandler(string $tag) } #[DataProvider('externalStorageHandlerTagsProvider')] - public function testRegisterExternalStorageHandlerNoAlias(string $tag) + public function testRegisterExternalStorageHandlerNoAlias(string $tag): void { $this->expectException(\LogicException::class); @@ -68,7 +68,7 @@ public function testRegisterExternalStorageHandlerNoAlias(string $tag) } #[DataProvider('externalStorageHandlerGatewayTagsProvider')] - public function testRegisterExternalStorageHandlerWithGateway(string $tag) + public function testRegisterExternalStorageHandlerWithGateway(string $tag): void { $handlerDef = new Definition(); $handlerDef->setClass(GatewayBasedStorageHandler::class); @@ -98,7 +98,7 @@ public function testRegisterExternalStorageHandlerWithGateway(string $tag) } #[DataProvider('externalStorageHandlerGatewayTagsProvider')] - public function testRegisterExternalStorageHandlerWithoutRegisteredGateway(string $tag) + public function testRegisterExternalStorageHandlerWithoutRegisteredGateway(string $tag): void { $this->expectException(\LogicException::class); @@ -121,7 +121,7 @@ public function testRegisterExternalStorageHandlerWithoutRegisteredGateway(strin } #[DataProvider('externalStorageHandlerGatewayTagsProvider')] - public function testRegisterExternalStorageHandlerWithGatewayNoAlias(string $tag) + public function testRegisterExternalStorageHandlerWithGatewayNoAlias(string $tag): void { $this->expectException(\LogicException::class); @@ -150,7 +150,7 @@ public function testRegisterExternalStorageHandlerWithGatewayNoAlias(string $tag } #[DataProvider('externalStorageHandlerGatewayTagsProvider')] - public function testRegisterExternalStorageHandlerWithGatewayNoIdentifier(string $tag) + public function testRegisterExternalStorageHandlerWithGatewayNoIdentifier(string $tag): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/Base/Container/Compiler/Storage/Legacy/FieldValueConverterRegistryPassTest.php b/tests/lib/Base/Container/Compiler/Storage/Legacy/FieldValueConverterRegistryPassTest.php index 9764a3adbd..2a421d456d 100644 --- a/tests/lib/Base/Container/Compiler/Storage/Legacy/FieldValueConverterRegistryPassTest.php +++ b/tests/lib/Base/Container/Compiler/Storage/Legacy/FieldValueConverterRegistryPassTest.php @@ -33,7 +33,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new FieldValueConverterRegistryPass()); } - public function testRegisterConverterNoLazy() + public function testRegisterConverterNoLazy(): void { $fieldTypeIdentifier = 'fieldtype_identifier'; $serviceId = 'some_service_id'; diff --git a/tests/lib/Base/Container/Compiler/Storage/Legacy/RoleLimitationConverterPassTest.php b/tests/lib/Base/Container/Compiler/Storage/Legacy/RoleLimitationConverterPassTest.php index cb71ba5b9c..011a4af10e 100644 --- a/tests/lib/Base/Container/Compiler/Storage/Legacy/RoleLimitationConverterPassTest.php +++ b/tests/lib/Base/Container/Compiler/Storage/Legacy/RoleLimitationConverterPassTest.php @@ -36,7 +36,7 @@ protected function registerCompilerPass(ContainerBuilder $container): void $container->addCompilerPass(new RoleLimitationConverterPass()); } - public function testRegisterRoleLimitationConverter() + public function testRegisterRoleLimitationConverter(): void { $serviceId = 'service_id'; $def = new Definition(); diff --git a/tests/lib/Event/BookmarkServiceTest.php b/tests/lib/Event/BookmarkServiceTest.php index fbc41b3fd9..42f11a7b84 100644 --- a/tests/lib/Event/BookmarkServiceTest.php +++ b/tests/lib/Event/BookmarkServiceTest.php @@ -17,7 +17,7 @@ class BookmarkServiceTest extends AbstractServiceTestCase { - public function testCreateBookmarkEvents() + public function testCreateBookmarkEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateBookmarkEvent::class, @@ -42,7 +42,7 @@ public function testCreateBookmarkEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateBookmarkStopPropagationInBeforeEvents() + public function testCreateBookmarkStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateBookmarkEvent::class, @@ -74,7 +74,7 @@ public function testCreateBookmarkStopPropagationInBeforeEvents() ]); } - public function testDeleteBookmarkEvents() + public function testDeleteBookmarkEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteBookmarkEvent::class, @@ -99,7 +99,7 @@ public function testDeleteBookmarkEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteBookmarkStopPropagationInBeforeEvents() + public function testDeleteBookmarkStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteBookmarkEvent::class, diff --git a/tests/lib/Event/ContentServiceTest.php b/tests/lib/Event/ContentServiceTest.php index 50a73d203f..d7086dad6c 100644 --- a/tests/lib/Event/ContentServiceTest.php +++ b/tests/lib/Event/ContentServiceTest.php @@ -47,7 +47,7 @@ class ContentServiceTest extends AbstractServiceTestCase { - public function testDeleteContentEvents() + public function testDeleteContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentEvent::class, @@ -75,7 +75,7 @@ public function testDeleteContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnDeleteContentResultInBeforeEvents() + public function testReturnDeleteContentResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentEvent::class, @@ -109,7 +109,7 @@ public function testReturnDeleteContentResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteContentStopPropagationInBeforeEvents() + public function testDeleteContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentEvent::class, @@ -146,7 +146,7 @@ public function testDeleteContentStopPropagationInBeforeEvents() ]); } - public function testCopyContentEvents() + public function testCopyContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentEvent::class, @@ -176,7 +176,7 @@ public function testCopyContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCopyContentResultInBeforeEvents() + public function testReturnCopyContentResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentEvent::class, @@ -212,7 +212,7 @@ public function testReturnCopyContentResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCopyContentStopPropagationInBeforeEvents() + public function testCopyContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentEvent::class, @@ -251,7 +251,7 @@ public function testCopyContentStopPropagationInBeforeEvents() ]); } - public function testUpdateContentEvents() + public function testUpdateContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentEvent::class, @@ -280,7 +280,7 @@ public function testUpdateContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateContentResultInBeforeEvents() + public function testReturnUpdateContentResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentEvent::class, @@ -315,7 +315,7 @@ public function testReturnUpdateContentResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateContentStopPropagationInBeforeEvents() + public function testUpdateContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentEvent::class, @@ -353,7 +353,7 @@ public function testUpdateContentStopPropagationInBeforeEvents() ]); } - public function testDeleteRelationEvents() + public function testDeleteRelationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRelationEvent::class, @@ -379,7 +379,7 @@ public function testDeleteRelationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteRelationStopPropagationInBeforeEvents() + public function testDeleteRelationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRelationEvent::class, @@ -412,7 +412,7 @@ public function testDeleteRelationStopPropagationInBeforeEvents() ]); } - public function testCreateContentEvents() + public function testCreateContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentEvent::class, @@ -441,7 +441,7 @@ public function testCreateContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateContentResultInBeforeEvents() + public function testReturnCreateContentResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentEvent::class, @@ -476,7 +476,7 @@ public function testReturnCreateContentResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateContentStopPropagationInBeforeEvents() + public function testCreateContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentEvent::class, @@ -514,7 +514,7 @@ public function testCreateContentStopPropagationInBeforeEvents() ]); } - public function testHideContentEvents() + public function testHideContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeHideContentEvent::class, @@ -539,7 +539,7 @@ public function testHideContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testHideContentStopPropagationInBeforeEvents() + public function testHideContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeHideContentEvent::class, @@ -571,7 +571,7 @@ public function testHideContentStopPropagationInBeforeEvents() ]); } - public function testDeleteVersionEvents() + public function testDeleteVersionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteVersionEvent::class, @@ -596,7 +596,7 @@ public function testDeleteVersionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteVersionStopPropagationInBeforeEvents() + public function testDeleteVersionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteVersionEvent::class, @@ -628,7 +628,7 @@ public function testDeleteVersionStopPropagationInBeforeEvents() ]); } - public function testAddRelationEvents() + public function testAddRelationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddRelationEvent::class, @@ -657,7 +657,7 @@ public function testAddRelationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnAddRelationResultInBeforeEvents() + public function testReturnAddRelationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddRelationEvent::class, @@ -692,7 +692,7 @@ public function testReturnAddRelationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAddRelationStopPropagationInBeforeEvents() + public function testAddRelationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddRelationEvent::class, @@ -730,7 +730,7 @@ public function testAddRelationStopPropagationInBeforeEvents() ]); } - public function testUpdateContentMetadataEvents() + public function testUpdateContentMetadataEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentMetadataEvent::class, @@ -759,7 +759,7 @@ public function testUpdateContentMetadataEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateContentMetadataResultInBeforeEvents() + public function testReturnUpdateContentMetadataResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentMetadataEvent::class, @@ -794,7 +794,7 @@ public function testReturnUpdateContentMetadataResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateContentMetadataStopPropagationInBeforeEvents() + public function testUpdateContentMetadataStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentMetadataEvent::class, @@ -832,7 +832,7 @@ public function testUpdateContentMetadataStopPropagationInBeforeEvents() ]); } - public function testDeleteTranslationEvents() + public function testDeleteTranslationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteTranslationEvent::class, @@ -858,7 +858,7 @@ public function testDeleteTranslationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteTranslationStopPropagationInBeforeEvents() + public function testDeleteTranslationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteTranslationEvent::class, @@ -891,7 +891,7 @@ public function testDeleteTranslationStopPropagationInBeforeEvents() ]); } - public function testPublishVersionEvents() + public function testPublishVersionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishVersionEvent::class, @@ -920,7 +920,7 @@ public function testPublishVersionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnPublishVersionResultInBeforeEvents() + public function testReturnPublishVersionResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishVersionEvent::class, @@ -955,7 +955,7 @@ public function testReturnPublishVersionResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testPublishVersionStopPropagationInBeforeEvents() + public function testPublishVersionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishVersionEvent::class, @@ -993,7 +993,7 @@ public function testPublishVersionStopPropagationInBeforeEvents() ]); } - public function testCreateContentDraftEvents() + public function testCreateContentDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentDraftEvent::class, @@ -1023,7 +1023,7 @@ public function testCreateContentDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateContentDraftResultInBeforeEvents() + public function testReturnCreateContentDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentDraftEvent::class, @@ -1059,7 +1059,7 @@ public function testReturnCreateContentDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateContentDraftStopPropagationInBeforeEvents() + public function testCreateContentDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentDraftEvent::class, @@ -1098,7 +1098,7 @@ public function testCreateContentDraftStopPropagationInBeforeEvents() ]); } - public function testRevealContentEvents() + public function testRevealContentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRevealContentEvent::class, @@ -1123,7 +1123,7 @@ public function testRevealContentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRevealContentStopPropagationInBeforeEvents() + public function testRevealContentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRevealContentEvent::class, diff --git a/tests/lib/Event/ContentTypeServiceTest.php b/tests/lib/Event/ContentTypeServiceTest.php index b076aa1e7b..3f4594b4e7 100644 --- a/tests/lib/Event/ContentTypeServiceTest.php +++ b/tests/lib/Event/ContentTypeServiceTest.php @@ -53,7 +53,7 @@ class ContentTypeServiceTest extends AbstractServiceTestCase { - public function testAddFieldDefinitionEvents() + public function testAddFieldDefinitionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddFieldDefinitionEvent::class, @@ -79,7 +79,7 @@ public function testAddFieldDefinitionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAddFieldDefinitionStopPropagationInBeforeEvents() + public function testAddFieldDefinitionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddFieldDefinitionEvent::class, @@ -112,7 +112,7 @@ public function testAddFieldDefinitionStopPropagationInBeforeEvents() ]); } - public function testDeleteContentTypeGroupEvents() + public function testDeleteContentTypeGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentTypeGroupEvent::class, @@ -137,7 +137,7 @@ public function testDeleteContentTypeGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteContentTypeGroupStopPropagationInBeforeEvents() + public function testDeleteContentTypeGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentTypeGroupEvent::class, @@ -169,7 +169,7 @@ public function testDeleteContentTypeGroupStopPropagationInBeforeEvents() ]); } - public function testCreateContentTypeDraftEvents() + public function testCreateContentTypeDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeDraftEvent::class, @@ -197,7 +197,7 @@ public function testCreateContentTypeDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateContentTypeDraftResultInBeforeEvents() + public function testReturnCreateContentTypeDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeDraftEvent::class, @@ -231,7 +231,7 @@ public function testReturnCreateContentTypeDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateContentTypeDraftStopPropagationInBeforeEvents() + public function testCreateContentTypeDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeDraftEvent::class, @@ -268,7 +268,7 @@ public function testCreateContentTypeDraftStopPropagationInBeforeEvents() ]); } - public function testCreateContentTypeGroupEvents() + public function testCreateContentTypeGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeGroupEvent::class, @@ -296,7 +296,7 @@ public function testCreateContentTypeGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateContentTypeGroupResultInBeforeEvents() + public function testReturnCreateContentTypeGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeGroupEvent::class, @@ -330,7 +330,7 @@ public function testReturnCreateContentTypeGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateContentTypeGroupStopPropagationInBeforeEvents() + public function testCreateContentTypeGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeGroupEvent::class, @@ -367,7 +367,7 @@ public function testCreateContentTypeGroupStopPropagationInBeforeEvents() ]); } - public function testUpdateContentTypeGroupEvents() + public function testUpdateContentTypeGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentTypeGroupEvent::class, @@ -393,7 +393,7 @@ public function testUpdateContentTypeGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateContentTypeGroupStopPropagationInBeforeEvents() + public function testUpdateContentTypeGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentTypeGroupEvent::class, @@ -426,7 +426,7 @@ public function testUpdateContentTypeGroupStopPropagationInBeforeEvents() ]); } - public function testCreateContentTypeEvents() + public function testCreateContentTypeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeEvent::class, @@ -455,7 +455,7 @@ public function testCreateContentTypeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateContentTypeResultInBeforeEvents() + public function testReturnCreateContentTypeResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeEvent::class, @@ -490,7 +490,7 @@ public function testReturnCreateContentTypeResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateContentTypeStopPropagationInBeforeEvents() + public function testCreateContentTypeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateContentTypeEvent::class, @@ -528,7 +528,7 @@ public function testCreateContentTypeStopPropagationInBeforeEvents() ]); } - public function testRemoveContentTypeTranslationEvents() + public function testRemoveContentTypeTranslationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveContentTypeTranslationEvent::class, @@ -557,7 +557,7 @@ public function testRemoveContentTypeTranslationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnRemoveContentTypeTranslationResultInBeforeEvents() + public function testReturnRemoveContentTypeTranslationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveContentTypeTranslationEvent::class, @@ -592,7 +592,7 @@ public function testReturnRemoveContentTypeTranslationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRemoveContentTypeTranslationStopPropagationInBeforeEvents() + public function testRemoveContentTypeTranslationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveContentTypeTranslationEvent::class, @@ -630,7 +630,7 @@ public function testRemoveContentTypeTranslationStopPropagationInBeforeEvents() ]); } - public function testUnassignContentTypeGroupEvents() + public function testUnassignContentTypeGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnassignContentTypeGroupEvent::class, @@ -656,7 +656,7 @@ public function testUnassignContentTypeGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUnassignContentTypeGroupStopPropagationInBeforeEvents() + public function testUnassignContentTypeGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnassignContentTypeGroupEvent::class, @@ -689,7 +689,7 @@ public function testUnassignContentTypeGroupStopPropagationInBeforeEvents() ]); } - public function testPublishContentTypeDraftEvents() + public function testPublishContentTypeDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishContentTypeDraftEvent::class, @@ -714,7 +714,7 @@ public function testPublishContentTypeDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testPublishContentTypeDraftStopPropagationInBeforeEvents() + public function testPublishContentTypeDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishContentTypeDraftEvent::class, @@ -746,7 +746,7 @@ public function testPublishContentTypeDraftStopPropagationInBeforeEvents() ]); } - public function testUpdateFieldDefinitionEvents() + public function testUpdateFieldDefinitionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateFieldDefinitionEvent::class, @@ -773,7 +773,7 @@ public function testUpdateFieldDefinitionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateFieldDefinitionStopPropagationInBeforeEvents() + public function testUpdateFieldDefinitionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateFieldDefinitionEvent::class, @@ -807,7 +807,7 @@ public function testUpdateFieldDefinitionStopPropagationInBeforeEvents() ]); } - public function testRemoveFieldDefinitionEvents() + public function testRemoveFieldDefinitionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveFieldDefinitionEvent::class, @@ -833,7 +833,7 @@ public function testRemoveFieldDefinitionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRemoveFieldDefinitionStopPropagationInBeforeEvents() + public function testRemoveFieldDefinitionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveFieldDefinitionEvent::class, @@ -866,7 +866,7 @@ public function testRemoveFieldDefinitionStopPropagationInBeforeEvents() ]); } - public function testAssignContentTypeGroupEvents() + public function testAssignContentTypeGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignContentTypeGroupEvent::class, @@ -892,7 +892,7 @@ public function testAssignContentTypeGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignContentTypeGroupStopPropagationInBeforeEvents() + public function testAssignContentTypeGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignContentTypeGroupEvent::class, @@ -925,7 +925,7 @@ public function testAssignContentTypeGroupStopPropagationInBeforeEvents() ]); } - public function testUpdateContentTypeDraftEvents() + public function testUpdateContentTypeDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentTypeDraftEvent::class, @@ -951,7 +951,7 @@ public function testUpdateContentTypeDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateContentTypeDraftStopPropagationInBeforeEvents() + public function testUpdateContentTypeDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateContentTypeDraftEvent::class, @@ -984,7 +984,7 @@ public function testUpdateContentTypeDraftStopPropagationInBeforeEvents() ]); } - public function testDeleteContentTypeEvents() + public function testDeleteContentTypeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentTypeEvent::class, @@ -1009,7 +1009,7 @@ public function testDeleteContentTypeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteContentTypeStopPropagationInBeforeEvents() + public function testDeleteContentTypeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteContentTypeEvent::class, @@ -1041,7 +1041,7 @@ public function testDeleteContentTypeStopPropagationInBeforeEvents() ]); } - public function testCopyContentTypeEvents() + public function testCopyContentTypeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentTypeEvent::class, @@ -1070,7 +1070,7 @@ public function testCopyContentTypeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCopyContentTypeResultInBeforeEvents() + public function testReturnCopyContentTypeResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentTypeEvent::class, @@ -1105,7 +1105,7 @@ public function testReturnCopyContentTypeResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCopyContentTypeStopPropagationInBeforeEvents() + public function testCopyContentTypeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopyContentTypeEvent::class, diff --git a/tests/lib/Event/LanguageServiceTest.php b/tests/lib/Event/LanguageServiceTest.php index 280460455f..c09012bbe2 100644 --- a/tests/lib/Event/LanguageServiceTest.php +++ b/tests/lib/Event/LanguageServiceTest.php @@ -24,7 +24,7 @@ class LanguageServiceTest extends AbstractServiceTestCase { - public function testDeleteLanguageEvents() + public function testDeleteLanguageEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteLanguageEvent::class, @@ -49,7 +49,7 @@ public function testDeleteLanguageEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteLanguageStopPropagationInBeforeEvents() + public function testDeleteLanguageStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteLanguageEvent::class, @@ -81,7 +81,7 @@ public function testDeleteLanguageStopPropagationInBeforeEvents() ]); } - public function testCreateLanguageEvents() + public function testCreateLanguageEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLanguageEvent::class, @@ -109,7 +109,7 @@ public function testCreateLanguageEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateLanguageResultInBeforeEvents() + public function testReturnCreateLanguageResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLanguageEvent::class, @@ -143,7 +143,7 @@ public function testReturnCreateLanguageResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateLanguageStopPropagationInBeforeEvents() + public function testCreateLanguageStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLanguageEvent::class, @@ -180,7 +180,7 @@ public function testCreateLanguageStopPropagationInBeforeEvents() ]); } - public function testUpdateLanguageNameEvents() + public function testUpdateLanguageNameEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLanguageNameEvent::class, @@ -209,7 +209,7 @@ public function testUpdateLanguageNameEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateLanguageNameResultInBeforeEvents() + public function testReturnUpdateLanguageNameResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLanguageNameEvent::class, @@ -244,7 +244,7 @@ public function testReturnUpdateLanguageNameResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateLanguageNameStopPropagationInBeforeEvents() + public function testUpdateLanguageNameStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLanguageNameEvent::class, @@ -282,7 +282,7 @@ public function testUpdateLanguageNameStopPropagationInBeforeEvents() ]); } - public function testDisableLanguageEvents() + public function testDisableLanguageEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDisableLanguageEvent::class, @@ -310,7 +310,7 @@ public function testDisableLanguageEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnDisableLanguageResultInBeforeEvents() + public function testReturnDisableLanguageResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDisableLanguageEvent::class, @@ -344,7 +344,7 @@ public function testReturnDisableLanguageResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDisableLanguageStopPropagationInBeforeEvents() + public function testDisableLanguageStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDisableLanguageEvent::class, @@ -381,7 +381,7 @@ public function testDisableLanguageStopPropagationInBeforeEvents() ]); } - public function testEnableLanguageEvents() + public function testEnableLanguageEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEnableLanguageEvent::class, @@ -409,7 +409,7 @@ public function testEnableLanguageEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnEnableLanguageResultInBeforeEvents() + public function testReturnEnableLanguageResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEnableLanguageEvent::class, @@ -443,7 +443,7 @@ public function testReturnEnableLanguageResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testEnableLanguageStopPropagationInBeforeEvents() + public function testEnableLanguageStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEnableLanguageEvent::class, diff --git a/tests/lib/Event/LocationServiceTest.php b/tests/lib/Event/LocationServiceTest.php index f0c7a3354d..0d86219665 100644 --- a/tests/lib/Event/LocationServiceTest.php +++ b/tests/lib/Event/LocationServiceTest.php @@ -32,7 +32,7 @@ class LocationServiceTest extends AbstractServiceTestCase { - public function testCopySubtreeEvents() + public function testCopySubtreeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopySubtreeEvent::class, @@ -61,7 +61,7 @@ public function testCopySubtreeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCopySubtreeResultInBeforeEvents() + public function testReturnCopySubtreeResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopySubtreeEvent::class, @@ -96,7 +96,7 @@ public function testReturnCopySubtreeResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCopySubtreeStopPropagationInBeforeEvents() + public function testCopySubtreeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCopySubtreeEvent::class, @@ -134,7 +134,7 @@ public function testCopySubtreeStopPropagationInBeforeEvents() ]); } - public function testDeleteLocationEvents() + public function testDeleteLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteLocationEvent::class, @@ -159,7 +159,7 @@ public function testDeleteLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteLocationStopPropagationInBeforeEvents() + public function testDeleteLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteLocationEvent::class, @@ -191,7 +191,7 @@ public function testDeleteLocationStopPropagationInBeforeEvents() ]); } - public function testUnhideLocationEvents() + public function testUnhideLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnhideLocationEvent::class, @@ -219,7 +219,7 @@ public function testUnhideLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUnhideLocationResultInBeforeEvents() + public function testReturnUnhideLocationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnhideLocationEvent::class, @@ -253,7 +253,7 @@ public function testReturnUnhideLocationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUnhideLocationStopPropagationInBeforeEvents() + public function testUnhideLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnhideLocationEvent::class, @@ -290,7 +290,7 @@ public function testUnhideLocationStopPropagationInBeforeEvents() ]); } - public function testHideLocationEvents() + public function testHideLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeHideLocationEvent::class, @@ -318,7 +318,7 @@ public function testHideLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnHideLocationResultInBeforeEvents() + public function testReturnHideLocationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeHideLocationEvent::class, @@ -352,7 +352,7 @@ public function testReturnHideLocationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testHideLocationStopPropagationInBeforeEvents() + public function testHideLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeHideLocationEvent::class, @@ -389,7 +389,7 @@ public function testHideLocationStopPropagationInBeforeEvents() ]); } - public function testSwapLocationEvents() + public function testSwapLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSwapLocationEvent::class, @@ -415,7 +415,7 @@ public function testSwapLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testSwapLocationStopPropagationInBeforeEvents() + public function testSwapLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSwapLocationEvent::class, @@ -448,7 +448,7 @@ public function testSwapLocationStopPropagationInBeforeEvents() ]); } - public function testMoveSubtreeEvents() + public function testMoveSubtreeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeMoveSubtreeEvent::class, @@ -474,7 +474,7 @@ public function testMoveSubtreeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testMoveSubtreeStopPropagationInBeforeEvents() + public function testMoveSubtreeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeMoveSubtreeEvent::class, @@ -507,7 +507,7 @@ public function testMoveSubtreeStopPropagationInBeforeEvents() ]); } - public function testUpdateLocationEvents() + public function testUpdateLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLocationEvent::class, @@ -536,7 +536,7 @@ public function testUpdateLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateLocationResultInBeforeEvents() + public function testReturnUpdateLocationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLocationEvent::class, @@ -571,7 +571,7 @@ public function testReturnUpdateLocationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateLocationStopPropagationInBeforeEvents() + public function testUpdateLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateLocationEvent::class, @@ -609,7 +609,7 @@ public function testUpdateLocationStopPropagationInBeforeEvents() ]); } - public function testCreateLocationEvents() + public function testCreateLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLocationEvent::class, @@ -638,7 +638,7 @@ public function testCreateLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateLocationResultInBeforeEvents() + public function testReturnCreateLocationResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLocationEvent::class, @@ -673,7 +673,7 @@ public function testReturnCreateLocationResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateLocationStopPropagationInBeforeEvents() + public function testCreateLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateLocationEvent::class, diff --git a/tests/lib/Event/ObjectStateServiceTest.php b/tests/lib/Event/ObjectStateServiceTest.php index de10e22bbe..ed7981a517 100644 --- a/tests/lib/Event/ObjectStateServiceTest.php +++ b/tests/lib/Event/ObjectStateServiceTest.php @@ -35,7 +35,7 @@ class ObjectStateServiceTest extends AbstractServiceTestCase { - public function testSetContentStateEvents() + public function testSetContentStateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetContentStateEvent::class, @@ -62,7 +62,7 @@ public function testSetContentStateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testSetContentStateStopPropagationInBeforeEvents() + public function testSetContentStateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetContentStateEvent::class, @@ -96,7 +96,7 @@ public function testSetContentStateStopPropagationInBeforeEvents() ]); } - public function testCreateObjectStateGroupEvents() + public function testCreateObjectStateGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateGroupEvent::class, @@ -124,7 +124,7 @@ public function testCreateObjectStateGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateObjectStateGroupResultInBeforeEvents() + public function testReturnCreateObjectStateGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateGroupEvent::class, @@ -158,7 +158,7 @@ public function testReturnCreateObjectStateGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateObjectStateGroupStopPropagationInBeforeEvents() + public function testCreateObjectStateGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateGroupEvent::class, @@ -195,7 +195,7 @@ public function testCreateObjectStateGroupStopPropagationInBeforeEvents() ]); } - public function testUpdateObjectStateEvents() + public function testUpdateObjectStateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateEvent::class, @@ -224,7 +224,7 @@ public function testUpdateObjectStateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateObjectStateResultInBeforeEvents() + public function testReturnUpdateObjectStateResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateEvent::class, @@ -259,7 +259,7 @@ public function testReturnUpdateObjectStateResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateObjectStateStopPropagationInBeforeEvents() + public function testUpdateObjectStateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateEvent::class, @@ -297,7 +297,7 @@ public function testUpdateObjectStateStopPropagationInBeforeEvents() ]); } - public function testCreateObjectStateEvents() + public function testCreateObjectStateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateEvent::class, @@ -326,7 +326,7 @@ public function testCreateObjectStateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateObjectStateResultInBeforeEvents() + public function testReturnCreateObjectStateResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateEvent::class, @@ -361,7 +361,7 @@ public function testReturnCreateObjectStateResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateObjectStateStopPropagationInBeforeEvents() + public function testCreateObjectStateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateObjectStateEvent::class, @@ -399,7 +399,7 @@ public function testCreateObjectStateStopPropagationInBeforeEvents() ]); } - public function testUpdateObjectStateGroupEvents() + public function testUpdateObjectStateGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateGroupEvent::class, @@ -428,7 +428,7 @@ public function testUpdateObjectStateGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateObjectStateGroupResultInBeforeEvents() + public function testReturnUpdateObjectStateGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateGroupEvent::class, @@ -463,7 +463,7 @@ public function testReturnUpdateObjectStateGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateObjectStateGroupStopPropagationInBeforeEvents() + public function testUpdateObjectStateGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateObjectStateGroupEvent::class, @@ -501,7 +501,7 @@ public function testUpdateObjectStateGroupStopPropagationInBeforeEvents() ]); } - public function testSetPriorityOfObjectStateEvents() + public function testSetPriorityOfObjectStateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetPriorityOfObjectStateEvent::class, @@ -527,7 +527,7 @@ public function testSetPriorityOfObjectStateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testSetPriorityOfObjectStateStopPropagationInBeforeEvents() + public function testSetPriorityOfObjectStateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetPriorityOfObjectStateEvent::class, @@ -560,7 +560,7 @@ public function testSetPriorityOfObjectStateStopPropagationInBeforeEvents() ]); } - public function testDeleteObjectStateGroupEvents() + public function testDeleteObjectStateGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteObjectStateGroupEvent::class, @@ -585,7 +585,7 @@ public function testDeleteObjectStateGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteObjectStateGroupStopPropagationInBeforeEvents() + public function testDeleteObjectStateGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteObjectStateGroupEvent::class, @@ -617,7 +617,7 @@ public function testDeleteObjectStateGroupStopPropagationInBeforeEvents() ]); } - public function testDeleteObjectStateEvents() + public function testDeleteObjectStateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteObjectStateEvent::class, @@ -642,7 +642,7 @@ public function testDeleteObjectStateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteObjectStateStopPropagationInBeforeEvents() + public function testDeleteObjectStateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteObjectStateEvent::class, diff --git a/tests/lib/Event/RoleServiceTest.php b/tests/lib/Event/RoleServiceTest.php index 2787ae236a..c73293fd88 100644 --- a/tests/lib/Event/RoleServiceTest.php +++ b/tests/lib/Event/RoleServiceTest.php @@ -47,7 +47,7 @@ class RoleServiceTest extends AbstractServiceTestCase { - public function testPublishRoleDraftEvents() + public function testPublishRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishRoleDraftEvent::class, @@ -72,7 +72,7 @@ public function testPublishRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testPublishRoleDraftStopPropagationInBeforeEvents() + public function testPublishRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforePublishRoleDraftEvent::class, @@ -104,7 +104,7 @@ public function testPublishRoleDraftStopPropagationInBeforeEvents() ]); } - public function testAssignRoleToUserEvents() + public function testAssignRoleToUserEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignRoleToUserEvent::class, @@ -131,7 +131,7 @@ public function testAssignRoleToUserEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignRoleToUserStopPropagationInBeforeEvents() + public function testAssignRoleToUserStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignRoleToUserEvent::class, @@ -165,7 +165,7 @@ public function testAssignRoleToUserStopPropagationInBeforeEvents() ]); } - public function testUpdateRoleDraftEvents() + public function testUpdateRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateRoleDraftEvent::class, @@ -194,7 +194,7 @@ public function testUpdateRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateRoleDraftResultInBeforeEvents() + public function testReturnUpdateRoleDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateRoleDraftEvent::class, @@ -229,7 +229,7 @@ public function testReturnUpdateRoleDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateRoleDraftStopPropagationInBeforeEvents() + public function testUpdateRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateRoleDraftEvent::class, @@ -267,7 +267,7 @@ public function testUpdateRoleDraftStopPropagationInBeforeEvents() ]); } - public function testAssignRoleToUserGroupEvents() + public function testAssignRoleToUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignRoleToUserGroupEvent::class, @@ -294,7 +294,7 @@ public function testAssignRoleToUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignRoleToUserGroupStopPropagationInBeforeEvents() + public function testAssignRoleToUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignRoleToUserGroupEvent::class, @@ -328,7 +328,7 @@ public function testAssignRoleToUserGroupStopPropagationInBeforeEvents() ]); } - public function testUpdatePolicyByRoleDraftEvents() + public function testUpdatePolicyByRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdatePolicyByRoleDraftEvent::class, @@ -358,7 +358,7 @@ public function testUpdatePolicyByRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdatePolicyByRoleDraftResultInBeforeEvents() + public function testReturnUpdatePolicyByRoleDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdatePolicyByRoleDraftEvent::class, @@ -394,7 +394,7 @@ public function testReturnUpdatePolicyByRoleDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdatePolicyByRoleDraftStopPropagationInBeforeEvents() + public function testUpdatePolicyByRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdatePolicyByRoleDraftEvent::class, @@ -433,7 +433,7 @@ public function testUpdatePolicyByRoleDraftStopPropagationInBeforeEvents() ]); } - public function testCreateRoleEvents() + public function testCreateRoleEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleEvent::class, @@ -461,7 +461,7 @@ public function testCreateRoleEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateRoleResultInBeforeEvents() + public function testReturnCreateRoleResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleEvent::class, @@ -495,7 +495,7 @@ public function testReturnCreateRoleResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateRoleStopPropagationInBeforeEvents() + public function testCreateRoleStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleEvent::class, @@ -532,7 +532,7 @@ public function testCreateRoleStopPropagationInBeforeEvents() ]); } - public function testRemovePolicyByRoleDraftEvents() + public function testRemovePolicyByRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemovePolicyByRoleDraftEvent::class, @@ -561,7 +561,7 @@ public function testRemovePolicyByRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnRemovePolicyByRoleDraftResultInBeforeEvents() + public function testReturnRemovePolicyByRoleDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemovePolicyByRoleDraftEvent::class, @@ -596,7 +596,7 @@ public function testReturnRemovePolicyByRoleDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRemovePolicyByRoleDraftStopPropagationInBeforeEvents() + public function testRemovePolicyByRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemovePolicyByRoleDraftEvent::class, @@ -634,7 +634,7 @@ public function testRemovePolicyByRoleDraftStopPropagationInBeforeEvents() ]); } - public function testAddPolicyByRoleDraftEvents() + public function testAddPolicyByRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddPolicyByRoleDraftEvent::class, @@ -663,7 +663,7 @@ public function testAddPolicyByRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnAddPolicyByRoleDraftResultInBeforeEvents() + public function testReturnAddPolicyByRoleDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddPolicyByRoleDraftEvent::class, @@ -698,7 +698,7 @@ public function testReturnAddPolicyByRoleDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAddPolicyByRoleDraftStopPropagationInBeforeEvents() + public function testAddPolicyByRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAddPolicyByRoleDraftEvent::class, @@ -736,7 +736,7 @@ public function testAddPolicyByRoleDraftStopPropagationInBeforeEvents() ]); } - public function testDeleteRoleEvents() + public function testDeleteRoleEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRoleEvent::class, @@ -761,7 +761,7 @@ public function testDeleteRoleEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteRoleStopPropagationInBeforeEvents() + public function testDeleteRoleStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRoleEvent::class, @@ -793,7 +793,7 @@ public function testDeleteRoleStopPropagationInBeforeEvents() ]); } - public function testDeleteRoleDraftEvents() + public function testDeleteRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRoleDraftEvent::class, @@ -818,7 +818,7 @@ public function testDeleteRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteRoleDraftStopPropagationInBeforeEvents() + public function testDeleteRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteRoleDraftEvent::class, @@ -850,7 +850,7 @@ public function testDeleteRoleDraftStopPropagationInBeforeEvents() ]); } - public function testRemoveRoleAssignmentEvents() + public function testRemoveRoleAssignmentEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveRoleAssignmentEvent::class, @@ -875,7 +875,7 @@ public function testRemoveRoleAssignmentEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRemoveRoleAssignmentStopPropagationInBeforeEvents() + public function testRemoveRoleAssignmentStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveRoleAssignmentEvent::class, @@ -907,7 +907,7 @@ public function testRemoveRoleAssignmentStopPropagationInBeforeEvents() ]); } - public function testCreateRoleDraftEvents() + public function testCreateRoleDraftEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleDraftEvent::class, @@ -935,7 +935,7 @@ public function testCreateRoleDraftEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateRoleDraftResultInBeforeEvents() + public function testReturnCreateRoleDraftResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleDraftEvent::class, @@ -969,7 +969,7 @@ public function testReturnCreateRoleDraftResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateRoleDraftStopPropagationInBeforeEvents() + public function testCreateRoleDraftStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateRoleDraftEvent::class, diff --git a/tests/lib/Event/SectionServiceTest.php b/tests/lib/Event/SectionServiceTest.php index 94d7fe0397..92b29d8027 100644 --- a/tests/lib/Event/SectionServiceTest.php +++ b/tests/lib/Event/SectionServiceTest.php @@ -27,7 +27,7 @@ class SectionServiceTest extends AbstractServiceTestCase { - public function testAssignSectionEvents() + public function testAssignSectionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignSectionEvent::class, @@ -53,7 +53,7 @@ public function testAssignSectionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignSectionStopPropagationInBeforeEvents() + public function testAssignSectionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignSectionEvent::class, @@ -86,7 +86,7 @@ public function testAssignSectionStopPropagationInBeforeEvents() ]); } - public function testUpdateSectionEvents() + public function testUpdateSectionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateSectionEvent::class, @@ -115,7 +115,7 @@ public function testUpdateSectionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateSectionResultInBeforeEvents() + public function testReturnUpdateSectionResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateSectionEvent::class, @@ -150,7 +150,7 @@ public function testReturnUpdateSectionResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateSectionStopPropagationInBeforeEvents() + public function testUpdateSectionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateSectionEvent::class, @@ -188,7 +188,7 @@ public function testUpdateSectionStopPropagationInBeforeEvents() ]); } - public function testAssignSectionToSubtreeEvents() + public function testAssignSectionToSubtreeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignSectionToSubtreeEvent::class, @@ -214,7 +214,7 @@ public function testAssignSectionToSubtreeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignSectionToSubtreeStopPropagationInBeforeEvents() + public function testAssignSectionToSubtreeStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignSectionToSubtreeEvent::class, @@ -247,7 +247,7 @@ public function testAssignSectionToSubtreeStopPropagationInBeforeEvents() ]); } - public function testDeleteSectionEvents() + public function testDeleteSectionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteSectionEvent::class, @@ -272,7 +272,7 @@ public function testDeleteSectionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteSectionStopPropagationInBeforeEvents() + public function testDeleteSectionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteSectionEvent::class, @@ -304,7 +304,7 @@ public function testDeleteSectionStopPropagationInBeforeEvents() ]); } - public function testCreateSectionEvents() + public function testCreateSectionEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateSectionEvent::class, @@ -332,7 +332,7 @@ public function testCreateSectionEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateSectionResultInBeforeEvents() + public function testReturnCreateSectionResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateSectionEvent::class, @@ -366,7 +366,7 @@ public function testReturnCreateSectionResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateSectionStopPropagationInBeforeEvents() + public function testCreateSectionStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateSectionEvent::class, diff --git a/tests/lib/Event/TrashServiceTest.php b/tests/lib/Event/TrashServiceTest.php index a4af97b03c..056924f816 100644 --- a/tests/lib/Event/TrashServiceTest.php +++ b/tests/lib/Event/TrashServiceTest.php @@ -24,7 +24,7 @@ class TrashServiceTest extends AbstractServiceTestCase { - public function testEmptyTrashEvents() + public function testEmptyTrashEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEmptyTrashEvent::class, @@ -51,7 +51,7 @@ public function testEmptyTrashEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnEmptyTrashResultInBeforeEvents() + public function testReturnEmptyTrashResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEmptyTrashEvent::class, @@ -84,7 +84,7 @@ public function testReturnEmptyTrashResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testEmptyTrashStopPropagationInBeforeEvents() + public function testEmptyTrashStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeEmptyTrashEvent::class, @@ -120,7 +120,7 @@ public function testEmptyTrashStopPropagationInBeforeEvents() ]); } - public function testTrashEvents() + public function testTrashEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTrashEvent::class, @@ -148,7 +148,7 @@ public function testTrashEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnTrashResultInBeforeEvents() + public function testReturnTrashResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTrashEvent::class, @@ -182,7 +182,7 @@ public function testReturnTrashResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testTrashStopPropagationInBeforeEvents() + public function testTrashStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTrashEvent::class, @@ -254,7 +254,7 @@ public function testTrashStopPropagationInBeforeEventsSetsNullResult(): void ]); } - public function testRecoverEvents() + public function testRecoverEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRecoverEvent::class, @@ -283,7 +283,7 @@ public function testRecoverEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnRecoverResultInBeforeEvents() + public function testReturnRecoverResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRecoverEvent::class, @@ -318,7 +318,7 @@ public function testReturnRecoverResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRecoverStopPropagationInBeforeEvents() + public function testRecoverStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRecoverEvent::class, @@ -356,7 +356,7 @@ public function testRecoverStopPropagationInBeforeEvents() ]); } - public function testDeleteTrashItemEvents() + public function testDeleteTrashItemEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteTrashItemEvent::class, @@ -384,7 +384,7 @@ public function testDeleteTrashItemEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnDeleteTrashItemResultInBeforeEvents() + public function testReturnDeleteTrashItemResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteTrashItemEvent::class, @@ -418,7 +418,7 @@ public function testReturnDeleteTrashItemResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteTrashItemStopPropagationInBeforeEvents() + public function testDeleteTrashItemStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteTrashItemEvent::class, diff --git a/tests/lib/Event/URLAliasServiceTest.php b/tests/lib/Event/URLAliasServiceTest.php index 0a20185192..725611a1dc 100644 --- a/tests/lib/Event/URLAliasServiceTest.php +++ b/tests/lib/Event/URLAliasServiceTest.php @@ -22,7 +22,7 @@ class URLAliasServiceTest extends AbstractServiceTestCase { - public function testCreateGlobalUrlAliasEvents() + public function testCreateGlobalUrlAliasEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateGlobalUrlAliasEvent::class, @@ -54,7 +54,7 @@ public function testCreateGlobalUrlAliasEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateGlobalUrlAliasResultInBeforeEvents() + public function testReturnCreateGlobalUrlAliasResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateGlobalUrlAliasEvent::class, @@ -92,7 +92,7 @@ public function testReturnCreateGlobalUrlAliasResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateGlobalUrlAliasStopPropagationInBeforeEvents() + public function testCreateGlobalUrlAliasStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateGlobalUrlAliasEvent::class, @@ -133,7 +133,7 @@ public function testCreateGlobalUrlAliasStopPropagationInBeforeEvents() ]); } - public function testRefreshSystemUrlAliasesForLocationEvents() + public function testRefreshSystemUrlAliasesForLocationEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRefreshSystemUrlAliasesForLocationEvent::class, @@ -158,7 +158,7 @@ public function testRefreshSystemUrlAliasesForLocationEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRefreshSystemUrlAliasesForLocationStopPropagationInBeforeEvents() + public function testRefreshSystemUrlAliasesForLocationStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRefreshSystemUrlAliasesForLocationEvent::class, @@ -190,7 +190,7 @@ public function testRefreshSystemUrlAliasesForLocationStopPropagationInBeforeEve ]); } - public function testCreateUrlAliasEvents() + public function testCreateUrlAliasEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUrlAliasEvent::class, @@ -222,7 +222,7 @@ public function testCreateUrlAliasEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateUrlAliasResultInBeforeEvents() + public function testReturnCreateUrlAliasResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUrlAliasEvent::class, @@ -260,7 +260,7 @@ public function testReturnCreateUrlAliasResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateUrlAliasStopPropagationInBeforeEvents() + public function testCreateUrlAliasStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUrlAliasEvent::class, @@ -301,7 +301,7 @@ public function testCreateUrlAliasStopPropagationInBeforeEvents() ]); } - public function testRemoveAliasesEvents() + public function testRemoveAliasesEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveAliasesEvent::class, @@ -326,7 +326,7 @@ public function testRemoveAliasesEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testRemoveAliasesStopPropagationInBeforeEvents() + public function testRemoveAliasesStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveAliasesEvent::class, diff --git a/tests/lib/Event/URLServiceTest.php b/tests/lib/Event/URLServiceTest.php index 9f55b6b859..33c84641fd 100644 --- a/tests/lib/Event/URLServiceTest.php +++ b/tests/lib/Event/URLServiceTest.php @@ -16,7 +16,7 @@ class URLServiceTest extends AbstractServiceTestCase { - public function testUpdateUrlEvents() + public function testUpdateUrlEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUrlEvent::class, @@ -45,7 +45,7 @@ public function testUpdateUrlEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateUrlResultInBeforeEvents() + public function testReturnUpdateUrlResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUrlEvent::class, @@ -80,7 +80,7 @@ public function testReturnUpdateUrlResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateUrlStopPropagationInBeforeEvents() + public function testUpdateUrlStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUrlEvent::class, diff --git a/tests/lib/Event/URLWildcardServiceTest.php b/tests/lib/Event/URLWildcardServiceTest.php index 4925d738f5..593bba2ba3 100644 --- a/tests/lib/Event/URLWildcardServiceTest.php +++ b/tests/lib/Event/URLWildcardServiceTest.php @@ -26,7 +26,7 @@ class URLWildcardServiceTest extends AbstractServiceTestCase /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRemoveEvents() + public function testRemoveEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveEvent::class, @@ -54,7 +54,7 @@ public function testRemoveEvents() /** * @throws \Ibexa\Contracts\Core\Repository\Exceptions\UnauthorizedException */ - public function testRemoveStopPropagationInBeforeEvents() + public function testRemoveStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeRemoveEvent::class, @@ -159,7 +159,7 @@ static function (BeforeUpdateEvent $event) { ]); } - public function testCreateEvents() + public function testCreateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateEvent::class, @@ -189,7 +189,7 @@ public function testCreateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateResultInBeforeEvents() + public function testReturnCreateResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateEvent::class, @@ -225,7 +225,7 @@ public function testReturnCreateResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateStopPropagationInBeforeEvents() + public function testCreateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateEvent::class, @@ -264,7 +264,7 @@ public function testCreateStopPropagationInBeforeEvents() ]); } - public function testTranslateEvents() + public function testTranslateEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTranslateEvent::class, @@ -292,7 +292,7 @@ public function testTranslateEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnTranslateResultInBeforeEvents() + public function testReturnTranslateResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTranslateEvent::class, @@ -326,7 +326,7 @@ public function testReturnTranslateResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testTranslateStopPropagationInBeforeEvents() + public function testTranslateStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeTranslateEvent::class, diff --git a/tests/lib/Event/UserPreferenceServiceTest.php b/tests/lib/Event/UserPreferenceServiceTest.php index 9e81b176d8..9cdc3a72b1 100644 --- a/tests/lib/Event/UserPreferenceServiceTest.php +++ b/tests/lib/Event/UserPreferenceServiceTest.php @@ -14,7 +14,7 @@ class UserPreferenceServiceTest extends AbstractServiceTestCase { - public function testSetUserPreferenceEvents() + public function testSetUserPreferenceEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetUserPreferenceEvent::class, @@ -39,7 +39,7 @@ public function testSetUserPreferenceEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testSetUserPreferenceStopPropagationInBeforeEvents() + public function testSetUserPreferenceStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeSetUserPreferenceEvent::class, diff --git a/tests/lib/Event/UserServiceTest.php b/tests/lib/Event/UserServiceTest.php index 13390c1d9f..3a173108b9 100644 --- a/tests/lib/Event/UserServiceTest.php +++ b/tests/lib/Event/UserServiceTest.php @@ -39,7 +39,7 @@ class UserServiceTest extends AbstractServiceTestCase { - public function testUpdateUserGroupEvents() + public function testUpdateUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserGroupEvent::class, @@ -68,7 +68,7 @@ public function testUpdateUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateUserGroupResultInBeforeEvents() + public function testReturnUpdateUserGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserGroupEvent::class, @@ -103,7 +103,7 @@ public function testReturnUpdateUserGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateUserGroupStopPropagationInBeforeEvents() + public function testUpdateUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserGroupEvent::class, @@ -141,7 +141,7 @@ public function testUpdateUserGroupStopPropagationInBeforeEvents() ]); } - public function testUpdateUserEvents() + public function testUpdateUserEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserEvent::class, @@ -170,7 +170,7 @@ public function testUpdateUserEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateUserResultInBeforeEvents() + public function testReturnUpdateUserResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserEvent::class, @@ -205,7 +205,7 @@ public function testReturnUpdateUserResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateUserStopPropagationInBeforeEvents() + public function testUpdateUserStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserEvent::class, @@ -243,7 +243,7 @@ public function testUpdateUserStopPropagationInBeforeEvents() ]); } - public function testUnAssignUserFromUserGroupEvents() + public function testUnAssignUserFromUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnAssignUserFromUserGroupEvent::class, @@ -269,7 +269,7 @@ public function testUnAssignUserFromUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUnAssignUserFromUserGroupStopPropagationInBeforeEvents() + public function testUnAssignUserFromUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUnAssignUserFromUserGroupEvent::class, @@ -302,7 +302,7 @@ public function testUnAssignUserFromUserGroupStopPropagationInBeforeEvents() ]); } - public function testDeleteUserGroupEvents() + public function testDeleteUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserGroupEvent::class, @@ -330,7 +330,7 @@ public function testDeleteUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnDeleteUserGroupResultInBeforeEvents() + public function testReturnDeleteUserGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserGroupEvent::class, @@ -364,7 +364,7 @@ public function testReturnDeleteUserGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteUserGroupStopPropagationInBeforeEvents() + public function testDeleteUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserGroupEvent::class, @@ -401,7 +401,7 @@ public function testDeleteUserGroupStopPropagationInBeforeEvents() ]); } - public function testAssignUserToUserGroupEvents() + public function testAssignUserToUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignUserToUserGroupEvent::class, @@ -427,7 +427,7 @@ public function testAssignUserToUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testAssignUserToUserGroupStopPropagationInBeforeEvents() + public function testAssignUserToUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeAssignUserToUserGroupEvent::class, @@ -460,7 +460,7 @@ public function testAssignUserToUserGroupStopPropagationInBeforeEvents() ]); } - public function testDeleteUserEvents() + public function testDeleteUserEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserEvent::class, @@ -488,7 +488,7 @@ public function testDeleteUserEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnDeleteUserResultInBeforeEvents() + public function testReturnDeleteUserResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserEvent::class, @@ -522,7 +522,7 @@ public function testReturnDeleteUserResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testDeleteUserStopPropagationInBeforeEvents() + public function testDeleteUserStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeDeleteUserEvent::class, @@ -559,7 +559,7 @@ public function testDeleteUserStopPropagationInBeforeEvents() ]); } - public function testMoveUserGroupEvents() + public function testMoveUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeMoveUserGroupEvent::class, @@ -585,7 +585,7 @@ public function testMoveUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testMoveUserGroupStopPropagationInBeforeEvents() + public function testMoveUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeMoveUserGroupEvent::class, @@ -618,7 +618,7 @@ public function testMoveUserGroupStopPropagationInBeforeEvents() ]); } - public function testCreateUserEvents() + public function testCreateUserEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserEvent::class, @@ -647,7 +647,7 @@ public function testCreateUserEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateUserResultInBeforeEvents() + public function testReturnCreateUserResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserEvent::class, @@ -682,7 +682,7 @@ public function testReturnCreateUserResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateUserStopPropagationInBeforeEvents() + public function testCreateUserStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserEvent::class, @@ -720,7 +720,7 @@ public function testCreateUserStopPropagationInBeforeEvents() ]); } - public function testCreateUserGroupEvents() + public function testCreateUserGroupEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserGroupEvent::class, @@ -749,7 +749,7 @@ public function testCreateUserGroupEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnCreateUserGroupResultInBeforeEvents() + public function testReturnCreateUserGroupResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserGroupEvent::class, @@ -784,7 +784,7 @@ public function testReturnCreateUserGroupResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testCreateUserGroupStopPropagationInBeforeEvents() + public function testCreateUserGroupStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeCreateUserGroupEvent::class, @@ -822,7 +822,7 @@ public function testCreateUserGroupStopPropagationInBeforeEvents() ]); } - public function testUpdateUserTokenEvents() + public function testUpdateUserTokenEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserTokenEvent::class, @@ -851,7 +851,7 @@ public function testUpdateUserTokenEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testReturnUpdateUserTokenResultInBeforeEvents() + public function testReturnUpdateUserTokenResultInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserTokenEvent::class, @@ -886,7 +886,7 @@ public function testReturnUpdateUserTokenResultInBeforeEvents() self::assertSame([], $traceableEventDispatcher->getNotCalledListeners()); } - public function testUpdateUserTokenStopPropagationInBeforeEvents() + public function testUpdateUserTokenStopPropagationInBeforeEvents(): void { $traceableEventDispatcher = $this->getEventDispatcher( BeforeUpdateUserTokenEvent::class, diff --git a/tests/lib/FieldType/APIFieldTypeTest.php b/tests/lib/FieldType/APIFieldTypeTest.php index dcc073adf8..2924f3a710 100644 --- a/tests/lib/FieldType/APIFieldTypeTest.php +++ b/tests/lib/FieldType/APIFieldTypeTest.php @@ -29,7 +29,7 @@ protected function setUp(): void $this->fieldType = new FieldType($this->innerFieldType); } - public function testValidateValidatorConfigurationNoError() + public function testValidateValidatorConfigurationNoError(): void { $validatorConfig = ['foo' => 'bar']; $validationErrors = []; @@ -42,7 +42,7 @@ public function testValidateValidatorConfigurationNoError() self::assertSame($validationErrors, $this->fieldType->validateValidatorConfiguration($validatorConfig)); } - public function testValidateValidatorConfiguration() + public function testValidateValidatorConfiguration(): void { $validatorConfig = ['foo' => 'bar']; $validationErrors = [ @@ -59,7 +59,7 @@ public function testValidateValidatorConfiguration() self::assertSame($validationErrors, $this->fieldType->validateValidatorConfiguration($validatorConfig)); } - public function testValidateFieldSettingsNoError() + public function testValidateFieldSettingsNoError(): void { $fieldSettings = ['foo' => 'bar']; $validationErrors = []; @@ -72,7 +72,7 @@ public function testValidateFieldSettingsNoError() self::assertSame($validationErrors, $this->fieldType->validateFieldSettings($fieldSettings)); } - public function testValidateFieldSettings() + public function testValidateFieldSettings(): void { $fieldSettings = ['foo' => 'bar']; $validationErrors = [ @@ -89,7 +89,7 @@ public function testValidateFieldSettings() self::assertSame($validationErrors, $this->fieldType->validateFieldSettings($fieldSettings)); } - public function testValidateValueNoError() + public function testValidateValueNoError(): void { $fieldDefinition = $this->getMockForAbstractClass(APIFieldDefinition::class); $value = $this->getMockForAbstractClass(Value::class); @@ -103,7 +103,7 @@ public function testValidateValueNoError() self::assertSame($validationErrors, $this->fieldType->validateValue($fieldDefinition, $value)); } - public function testValidateValue() + public function testValidateValue(): void { $fieldDefinition = $this->getMockForAbstractClass(APIFieldDefinition::class); $value = $this->getMockForAbstractClass(Value::class); diff --git a/tests/lib/FieldType/FileSizeValidatorTest.php b/tests/lib/FieldType/FileSizeValidatorTest.php index e9474c263a..9d5c5db685 100644 --- a/tests/lib/FieldType/FileSizeValidatorTest.php +++ b/tests/lib/FieldType/FileSizeValidatorTest.php @@ -107,7 +107,7 @@ public function testGetBadConstraint(): void * @param int $size */ #[DataProvider('providerForValidateOK')] - public function testValidateCorrectValues($size) + public function testValidateCorrectValues($size): void { self::markTestSkipped('BinaryFile field type does not use this validator anymore.'); $validator = new FileSizeValidator(); @@ -130,7 +130,10 @@ protected function getBinaryFileValue($size) return $value; } - public static function providerForValidateOK() + /** + * @return array + */ + public static function providerForValidateOK(): array { return [ [0], @@ -143,7 +146,7 @@ public static function providerForValidateOK() * Tests validating a wrong value. */ #[DataProvider('providerForValidateKO')] - public function testValidateWrongValues($size, $message, $values) + public function testValidateWrongValues($size, $message, $values): void { self::markTestSkipped('BinaryFile field type does not use this validator anymore.'); $validator = new FileSizeValidator(); @@ -173,7 +176,10 @@ public function testValidateWrongValues($size, $message, $values) ); } - public static function providerForValidateKO() + /** + * @return array + */ + public static function providerForValidateKO(): array { return [ [ diff --git a/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php b/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php index 878ec5c513..2649aeff19 100644 --- a/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php +++ b/tests/lib/FieldType/Image/PathGenerator/LegacyPathGeneratorTest.php @@ -21,7 +21,7 @@ class LegacyPathGeneratorTest extends TestCase * @param mixed $expectedPath */ #[DataProvider('provideStoragePathForFieldData')] - public function testGetStoragePathForField($data, $expectedPath) + public function testGetStoragePathForField($data, $expectedPath): void { $pathGenerator = new LegacyPathGenerator(); @@ -35,7 +35,10 @@ public function testGetStoragePathForField($data, $expectedPath) ); } - public static function provideStoragePathForFieldData() + /** + * @return array + */ + public static function provideStoragePathForFieldData(): array { return [ [ diff --git a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php index af88d3af1e..cd16e6037e 100644 --- a/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php +++ b/tests/lib/FieldType/Url/Gateway/DoctrineStorageTest.php @@ -19,7 +19,7 @@ class DoctrineStorageTest extends TestCase { private DoctrineStorage $storageGateway; - public function testGetIdUrlMap() + public function testGetIdUrlMap(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); @@ -36,7 +36,7 @@ public function testGetIdUrlMap() ); } - public function testGetUrlIdMap() + public function testGetUrlIdMap(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); @@ -57,7 +57,7 @@ public function testGetUrlIdMap() ); } - public function testInsertUrl() + public function testInsertUrl(): void { $gateway = $this->getStorageGateway(); @@ -100,7 +100,7 @@ public function testInsertUrl() self::assertEquals($expected, $result); } - public function testLinkUrl() + public function testLinkUrl(): void { $gateway = $this->getStorageGateway(); @@ -134,7 +134,7 @@ public function testLinkUrl() self::assertEquals($expected, $result); } - public function testUnlinkUrl() + public function testUnlinkUrl(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urls.php'); diff --git a/tests/lib/FieldType/Url/UrlStorageTest.php b/tests/lib/FieldType/Url/UrlStorageTest.php index 5d4a5af38d..5e3a930190 100644 --- a/tests/lib/FieldType/Url/UrlStorageTest.php +++ b/tests/lib/FieldType/Url/UrlStorageTest.php @@ -17,7 +17,7 @@ class UrlStorageTest extends TestCase { - public function testStoreFieldDataWithExistingUrl() + public function testStoreFieldDataWithExistingUrl(): void { $versionInfo = new VersionInfo(['versionNo' => 24]); $fieldValue = new FieldValue(['externalData' => 'http://ibexa.co']); @@ -51,7 +51,7 @@ public function testStoreFieldDataWithExistingUrl() self::assertEquals(12, $field->value->data['urlId']); } - public function testStoreFieldDataWithNewUrl() + public function testStoreFieldDataWithNewUrl(): void { $versionInfo = new VersionInfo(['versionNo' => 24]); $fieldValue = new FieldValue(['externalData' => 'http://ibexa.co']); @@ -91,7 +91,7 @@ public function testStoreFieldDataWithNewUrl() self::assertEquals(12, $field->value->data['urlId']); } - public function testStoreFieldDataWithEmptyUrl() + public function testStoreFieldDataWithEmptyUrl(): void { $versionInfo = new VersionInfo(['versionNo' => 24]); $fieldValue = new FieldValue(['externalData' => '']); @@ -121,7 +121,7 @@ public function testStoreFieldDataWithEmptyUrl() self::assertNull($field->value->data); } - public function testGetFieldData() + public function testGetFieldData(): void { $versionInfo = new VersionInfo(); $fieldValue = new FieldValue(['data' => ['urlId' => 12]]); @@ -140,7 +140,7 @@ public function testGetFieldData() self::assertEquals('http://ibexa.co', $field->value->externalData); } - public function testGetFieldDataNotFound() + public function testGetFieldDataNotFound(): void { $versionInfo = new VersionInfo(); $fieldValue = new FieldValue(['data' => ['urlId' => 12]]); @@ -165,7 +165,7 @@ public function testGetFieldDataNotFound() self::assertEquals('', $field->value->externalData); } - public function testGetFieldDataWithEmptyUrlId() + public function testGetFieldDataWithEmptyUrlId(): void { $versionInfo = new VersionInfo(); $fieldValue = new FieldValue(['data' => ['urlId' => null]]); @@ -187,7 +187,7 @@ public function testGetFieldDataWithEmptyUrlId() self::assertNull($field->value->externalData); } - public function testDeleteFieldData() + public function testDeleteFieldData(): void { $versionInfo = new VersionInfo(['versionNo' => 24]); $fieldIds = [12, 23, 34]; @@ -207,7 +207,7 @@ public function testDeleteFieldData() $storage->deleteFieldData($versionInfo, $fieldIds); } - public function testHasFieldData() + public function testHasFieldData(): void { $storage = $this->getPartlyMockedStorage($this->getGatewayMock()); diff --git a/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php b/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php index 9aa3f27c22..2298dcf869 100644 --- a/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php +++ b/tests/lib/Helper/ContentInfoLocationLoader/SudoMainLocationLoaderTest.php @@ -30,7 +30,7 @@ protected function setUp(): void $this->loader = new SudoMainLocationLoader($this->getRepositoryMock()); } - public function testLoadLocationNoMainLocation() + public function testLoadLocationNoMainLocation(): void { $this->expectException(NotFoundException::class); @@ -43,7 +43,7 @@ public function testLoadLocationNoMainLocation() $this->loader->loadLocation($contentInfo); } - public function testLoadLocation() + public function testLoadLocation(): void { $contentInfo = new ContentInfo([ 'id' => 123, @@ -70,7 +70,7 @@ public function testLoadLocation() self::assertSame($location, $this->loader->loadLocation($contentInfo)); } - public function testLoadLocationError() + public function testLoadLocationError(): void { $this->expectException(NotFoundException::class); diff --git a/tests/lib/Helper/ContentPreviewHelperTest.php b/tests/lib/Helper/ContentPreviewHelperTest.php index 2c840ae1df..fd6940ab60 100644 --- a/tests/lib/Helper/ContentPreviewHelperTest.php +++ b/tests/lib/Helper/ContentPreviewHelperTest.php @@ -36,7 +36,7 @@ protected function setUp(): void $this->previewHelper = new ContentPreviewHelper($this->eventDispatcher, $this->siteAccessRouter); } - public function testChangeConfigScope() + public function testChangeConfigScope(): void { $newSiteAccessName = 'test'; $newSiteAccess = new SiteAccess($newSiteAccessName); @@ -61,7 +61,7 @@ public function testChangeConfigScope() ); } - public function testRestoreConfigScope() + public function testRestoreConfigScope(): void { $originalSiteAccess = new SiteAccess('foo', 'bar'); $event = new ScopeChangeEvent($originalSiteAccess); @@ -77,7 +77,7 @@ public function testRestoreConfigScope() ); } - public function testPreviewActive() + public function testPreviewActive(): void { $originalSiteAccess = new SiteAccess('foo', 'bar'); $this->previewHelper->setSiteAccess($originalSiteAccess); @@ -91,7 +91,7 @@ public function testPreviewActive() self::assertNotSame($originalSiteAccess, $this->previewHelper->getOriginalSiteAccess()); } - public function testPreviewedContent() + public function testPreviewedContent(): void { self::assertNull($this->previewHelper->getPreviewedContent()); $content = self::createStub(APIContent::class); @@ -99,7 +99,7 @@ public function testPreviewedContent() self::assertSame($content, $this->previewHelper->getPreviewedContent()); } - public function testPreviewedLocation() + public function testPreviewedLocation(): void { self::assertNull($this->previewHelper->getPreviewedLocation()); $location = self::createStub(APILocation::class); diff --git a/tests/lib/Helper/FieldHelperTest.php b/tests/lib/Helper/FieldHelperTest.php index 175f0f099d..b418b3af7e 100644 --- a/tests/lib/Helper/FieldHelperTest.php +++ b/tests/lib/Helper/FieldHelperTest.php @@ -39,7 +39,7 @@ protected function setUp(): void $this->fieldHelper = new FieldHelper($this->translationHelper, $this->fieldTypeServiceMock); } - public function testIsFieldEmpty() + public function testIsFieldEmpty(): void { $contentTypeId = 123; $contentInfo = new ContentInfo(['contentTypeId' => $contentTypeId]); @@ -85,7 +85,7 @@ public function testIsFieldEmpty() self::assertTrue($this->fieldHelper->isFieldEmpty($content, $fieldDefIdentifier)); } - public function testIsFieldNotEmpty() + public function testIsFieldNotEmpty(): void { $contentTypeId = 123; $contentInfo = new ContentInfo(['contentTypeId' => $contentTypeId]); diff --git a/tests/lib/Helper/PreviewLocationProviderTest.php b/tests/lib/Helper/PreviewLocationProviderTest.php index c6735e3e09..0215d10520 100644 --- a/tests/lib/Helper/PreviewLocationProviderTest.php +++ b/tests/lib/Helper/PreviewLocationProviderTest.php @@ -37,7 +37,7 @@ protected function setUp(): void $this->provider = new PreviewLocationProvider($this->locationService, $this->locationHandler); } - public function testGetPreviewLocationDraft() + public function testGetPreviewLocationDraft(): void { $contentId = 123; $parentLocationId = 456; @@ -65,7 +65,7 @@ public function testGetPreviewLocationDraft() self::assertTrue($location->isDraft()); } - public function testGetPreviewLocation() + public function testGetPreviewLocation(): void { $contentId = 123; $locationId = 456; @@ -89,7 +89,7 @@ public function testGetPreviewLocation() self::assertSame($content, $location->getContent()); } - public function testGetPreviewLocationNoLocation() + public function testGetPreviewLocationNoLocation(): void { $contentId = 123; $content = $this->getContentMock($contentId); diff --git a/tests/lib/Helper/TranslationHelperTest.php b/tests/lib/Helper/TranslationHelperTest.php index 489a5bc8a6..3c6468de7b 100644 --- a/tests/lib/Helper/TranslationHelperTest.php +++ b/tests/lib/Helper/TranslationHelperTest.php @@ -106,7 +106,7 @@ private function generateVersionInfo() * @param string $expectedLocale */ #[DataProvider('getTranslatedNameProvider')] - public function testGetTranslatedName(array $prioritizedLanguages, $expectedLocale) + public function testGetTranslatedName(array $prioritizedLanguages, $expectedLocale): void { $content = $this->generateContent(); $this->configResolver @@ -123,7 +123,7 @@ public function testGetTranslatedName(array $prioritizedLanguages, $expectedLoca * @param string $expectedLocale */ #[DataProvider('getTranslatedNameProvider')] - public function testGetTranslatedNameByContentInfo(array $prioritizedLanguages, $expectedLocale) + public function testGetTranslatedNameByContentInfo(array $prioritizedLanguages, $expectedLocale): void { $versionInfo = $this->generateVersionInfo(); $contentInfo = new ContentInfo([ @@ -145,7 +145,10 @@ public function testGetTranslatedNameByContentInfo(array $prioritizedLanguages, self::assertSame($this->translatedNames[$expectedLocale], $this->translationHelper->getTranslatedContentNameByContentInfo($contentInfo)); } - public static function getTranslatedNameProvider() + /** + * @return array + */ + public static function getTranslatedNameProvider(): array { return [ [['fre-FR', 'eng-GB'], 'fre-FR'], @@ -156,7 +159,7 @@ public static function getTranslatedNameProvider() ]; } - public function testGetTranslatedNameByContentInfoForcedLanguage() + public function testGetTranslatedNameByContentInfoForcedLanguage(): void { $versionInfo = $this->generateVersionInfo(); $contentInfo = new ContentInfo([ @@ -178,7 +181,7 @@ public function testGetTranslatedNameByContentInfoForcedLanguage() self::assertSame('Mon nom en français', $this->translationHelper->getTranslatedContentNameByContentInfo($contentInfo, 'eng-US')); } - public function testGetTranslatedNameByContentInfoForcedLanguageMainLanguage() + public function testGetTranslatedNameByContentInfoForcedLanguageMainLanguage(): void { $name = 'Name in main language'; $mainLanguage = 'eng-GB'; @@ -204,7 +207,7 @@ public function testGetTranslatedNameByContentInfoForcedLanguageMainLanguage() ); } - public function testGetTranslatedNameForcedLanguage() + public function testGetTranslatedNameForcedLanguage(): void { $content = $this->generateContent(); $this->configResolver @@ -232,7 +235,10 @@ public function getTranslatedField(array $prioritizedLanguages, $expectedLocale) self::assertSame($this->translatedFields[$expectedLocale], $this->translationHelper->getTranslatedField($content, 'test')); } - public static function getTranslatedFieldProvider() + /** + * @return array + */ + public static function getTranslatedFieldProvider(): array { return [ [['fre-FR', 'eng-GB'], 'fre-FR'], @@ -243,7 +249,7 @@ public static function getTranslatedFieldProvider() ]; } - public function testGetTranslationSiteAccessUnkownLanguage() + public function testGetTranslationSiteAccessUnkownLanguage(): void { $this->configResolver ->expects(self::exactly(2)) @@ -265,7 +271,7 @@ public function testGetTranslationSiteAccessUnkownLanguage() } #[DataProvider('getTranslationSiteAccessProvider')] - public function testGetTranslationSiteAccess($language, array $translationSiteAccesses, array $relatedSiteAccesses, $expectedResult) + public function testGetTranslationSiteAccess($language, array $translationSiteAccesses, array $relatedSiteAccesses, $expectedResult): void { $this->configResolver ->expects(self::exactly(2)) @@ -282,7 +288,10 @@ public function testGetTranslationSiteAccess($language, array $translationSiteAc self::assertSame($expectedResult, $this->translationHelper->getTranslationSiteAccess($language)); } - public static function getTranslationSiteAccessProvider() + /** + * @return array + */ + public static function getTranslationSiteAccessProvider(): array { return [ ['eng-GB', ['fre', 'eng', 'heb'], ['esl', 'fre', 'eng', 'heb'], 'eng'], @@ -300,7 +309,7 @@ public static function getTranslationSiteAccessProvider() ]; } - public function testGetAvailableLanguagesWithTranslationSiteAccesses() + public function testGetAvailableLanguagesWithTranslationSiteAccesses(): void { $this->configResolver ->expects(self::any()) @@ -321,7 +330,7 @@ public function testGetAvailableLanguagesWithTranslationSiteAccesses() self::assertSame($expectedLanguages, $this->translationHelper->getAvailableLanguages()); } - public function testGetAvailableLanguagesWithoutTranslationSiteAccesses() + public function testGetAvailableLanguagesWithoutTranslationSiteAccesses(): void { $this->configResolver ->expects(self::any()) diff --git a/tests/lib/IO/IOBinarydataHandler/FlysystemTest.php b/tests/lib/IO/IOBinarydataHandler/FlysystemTest.php index f0bd268204..3b20fd8d1b 100644 --- a/tests/lib/IO/IOBinarydataHandler/FlysystemTest.php +++ b/tests/lib/IO/IOBinarydataHandler/FlysystemTest.php @@ -59,7 +59,7 @@ public function testCreate(): void $this->handler->create($spiBinaryFileCreateStruct); } - public function testDelete() + public function testDelete(): void { $this->filesystem ->expects(self::once()) diff --git a/tests/lib/IO/IOMetadataHandler/FlysystemTest.php b/tests/lib/IO/IOMetadataHandler/FlysystemTest.php index 7ba8c96268..1dc16675ad 100644 --- a/tests/lib/IO/IOMetadataHandler/FlysystemTest.php +++ b/tests/lib/IO/IOMetadataHandler/FlysystemTest.php @@ -64,7 +64,7 @@ public function testCreate(): void self::assertEquals($expectedSpiBinaryFile, $spiBinaryFile); } - public function testDelete() + public function testDelete(): void { $this->filesystem->expects(self::never())->method('delete'); $this->handler->delete('prefix/my/file.png'); diff --git a/tests/lib/IO/UrlDecorator/PrefixTest.php b/tests/lib/IO/UrlDecorator/PrefixTest.php index fb0b3d01e9..5c6af49384 100644 --- a/tests/lib/IO/UrlDecorator/PrefixTest.php +++ b/tests/lib/IO/UrlDecorator/PrefixTest.php @@ -17,7 +17,7 @@ class PrefixTest extends TestCase { #[DataProvider('provideData')] - public function testDecorate($url, $prefix, $decoratedUrl) + public function testDecorate($url, $prefix, $decoratedUrl): void { $decorator = $this->buildDecorator($prefix); @@ -28,7 +28,7 @@ public function testDecorate($url, $prefix, $decoratedUrl) } #[DataProvider('provideData')] - public function testUndecorate($url, $prefix, $decoratedUrl) + public function testUndecorate($url, $prefix, $decoratedUrl): void { $decorator = $this->buildDecorator($prefix); @@ -48,7 +48,10 @@ protected function buildDecorator(string $prefix): UrlDecorator return new Prefix($ioConfigResolverMock); } - public static function provideData() + /** + * @return array + */ + public static function provideData(): array { return [ [ diff --git a/tests/lib/IO/UrlRedecoratorTest.php b/tests/lib/IO/UrlRedecoratorTest.php index 45ede2b84b..574ba672b0 100644 --- a/tests/lib/IO/UrlRedecoratorTest.php +++ b/tests/lib/IO/UrlRedecoratorTest.php @@ -30,7 +30,7 @@ protected function setUp(): void ); } - public function testRedecorateFromSource() + public function testRedecorateFromSource(): void { $this->sourceDecoratorMock ->expects(self::once()) @@ -50,7 +50,7 @@ public function testRedecorateFromSource() ); } - public function testRedecorateFromTarget() + public function testRedecorateFromTarget(): void { $this->targetDecoratorMock ->expects(self::once()) diff --git a/tests/lib/Limitation/BlockingLimitationTypeTest.php b/tests/lib/Limitation/BlockingLimitationTypeTest.php index 03083c28f8..0f2da47c1a 100644 --- a/tests/lib/Limitation/BlockingLimitationTypeTest.php +++ b/tests/lib/Limitation/BlockingLimitationTypeTest.php @@ -30,7 +30,7 @@ class BlockingLimitationTypeTest extends Base /** * @return \Ibexa\Core\Limitation\BlockingLimitationType */ - public function testConstruct() + public function testConstruct(): BlockingLimitationType { return new BlockingLimitationType('Test'); } @@ -38,7 +38,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new BlockingLimitation('Test', [])], @@ -52,7 +52,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(BlockingLimitation $limitation, BlockingLimitationType $limitationType) + public function testAcceptValue(BlockingLimitation $limitation, BlockingLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -60,7 +60,7 @@ public function testAcceptValue(BlockingLimitation $limitation, BlockingLimitati /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -73,7 +73,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, BlockingLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, BlockingLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -83,7 +83,7 @@ public function testAcceptValueException(Limitation $limitation, BlockingLimitat /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new BlockingLimitation('Test', ['limitationValues' => ['ezjscore::call']])], @@ -95,7 +95,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\BlockingLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(BlockingLimitation $limitation) + public function testValidatePass(BlockingLimitation $limitation): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -107,7 +107,7 @@ public function testValidatePass(BlockingLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new BlockingLimitation('Test', []), 1], @@ -121,7 +121,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(BlockingLimitation $limitation, $errorCount) + public function testValidateError(BlockingLimitation $limitation, $errorCount): void { $this->getPersistenceMock() ->expects(self::never()) @@ -138,7 +138,7 @@ public function testValidateError(BlockingLimitation $limitation, $errorCount) * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(BlockingLimitationType $limitationType) + public function testBuildValue(BlockingLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -151,7 +151,7 @@ public function testBuildValue(BlockingLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { return [ // ContentInfo, no access @@ -197,7 +197,7 @@ public function testEvaluate( BlockingLimitation $limitation, ValueObject $object, array $targets - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -224,7 +224,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -241,7 +241,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, array $targets - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -270,7 +270,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterion(BlockingLimitationType $limitationType) + public function testGetCriterion(BlockingLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new BlockingLimitation('Test', []), @@ -284,7 +284,7 @@ public function testGetCriterion(BlockingLimitationType $limitationType) * @param \Ibexa\Core\Limitation\BlockingLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(BlockingLimitationType $limitationType) + public function testValueSchema(BlockingLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/ContentTypeLimitationTypeTest.php b/tests/lib/Limitation/ContentTypeLimitationTypeTest.php index 904c2f3104..e1b48158d4 100644 --- a/tests/lib/Limitation/ContentTypeLimitationTypeTest.php +++ b/tests/lib/Limitation/ContentTypeLimitationTypeTest.php @@ -57,7 +57,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\ContentTypeLimitationType */ - public function testConstruct() + public function testConstruct(): ContentTypeLimitationType { return new ContentTypeLimitationType($this->getPersistenceMock()); } @@ -65,7 +65,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new ContentTypeLimitation()], @@ -80,7 +80,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(ContentTypeLimitation $limitation, ContentTypeLimitationType $limitationType) + public function testAcceptValue(ContentTypeLimitation $limitation, ContentTypeLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -88,7 +88,7 @@ public function testAcceptValue(ContentTypeLimitation $limitation, ContentTypeLi /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -102,7 +102,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, ContentTypeLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, ContentTypeLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -112,7 +112,7 @@ public function testAcceptValueException(Limitation $limitation, ContentTypeLimi /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new ContentTypeLimitation()], @@ -125,7 +125,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ContentTypeLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(ContentTypeLimitation $limitation) + public function testValidatePass(ContentTypeLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -153,7 +153,7 @@ public function testValidatePass(ContentTypeLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new ContentTypeLimitation(), 0], @@ -167,7 +167,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(ContentTypeLimitation $limitation, $errorCount) + public function testValidateError(ContentTypeLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -203,7 +203,7 @@ public function testValidateError(ContentTypeLimitation $limitation, $errorCount * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(ContentTypeLimitationType $limitationType) + public function testBuildValue(ContentTypeLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -216,7 +216,7 @@ public function testBuildValue(ContentTypeLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { $contentMock = new CoreContent([ 'versionInfo' => new CoreVersionInfo([ @@ -301,7 +301,7 @@ public function testEvaluate( ValueObject $object, array $targets, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -329,7 +329,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -352,7 +352,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, array $targets - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -381,7 +381,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(ContentTypeLimitationType $limitationType) + public function testGetCriterionInvalidValue(ContentTypeLimitationType $limitationType): void { $this->expectException(\RuntimeException::class); @@ -395,7 +395,7 @@ public function testGetCriterionInvalidValue(ContentTypeLimitationType $limitati * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionSingleValue(ContentTypeLimitationType $limitationType) + public function testGetCriterionSingleValue(ContentTypeLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new ContentTypeLimitation(['limitationValues' => [9]]), @@ -413,7 +413,7 @@ public function testGetCriterionSingleValue(ContentTypeLimitationType $limitatio * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionMultipleValues(ContentTypeLimitationType $limitationType) + public function testGetCriterionMultipleValues(ContentTypeLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new ContentTypeLimitation(['limitationValues' => [9, 55]]), @@ -431,7 +431,7 @@ public function testGetCriterionMultipleValues(ContentTypeLimitationType $limita * @param \Ibexa\Core\Limitation\ContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(ContentTypeLimitationType $limitationType) + public function testValueSchema(ContentTypeLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/LocationLimitationTypeTest.php b/tests/lib/Limitation/LocationLimitationTypeTest.php index 6a0bc19fd2..8ad043a4ce 100644 --- a/tests/lib/Limitation/LocationLimitationTypeTest.php +++ b/tests/lib/Limitation/LocationLimitationTypeTest.php @@ -55,7 +55,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\LocationLimitationType */ - public function testConstruct() + public function testConstruct(): LocationLimitationType { return new LocationLimitationType($this->getPersistenceMock()); } @@ -63,7 +63,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new LocationLimitation()], @@ -78,7 +78,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(LocationLimitation $limitation, LocationLimitationType $limitationType) + public function testAcceptValue(LocationLimitation $limitation, LocationLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -86,7 +86,7 @@ public function testAcceptValue(LocationLimitation $limitation, LocationLimitati /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -100,7 +100,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, LocationLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, LocationLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -110,7 +110,7 @@ public function testAcceptValueException(Limitation $limitation, LocationLimitat /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new LocationLimitation()], @@ -123,7 +123,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\LocationLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(LocationLimitation $limitation) + public function testValidatePass(LocationLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -151,7 +151,7 @@ public function testValidatePass(LocationLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new LocationLimitation(), 0], @@ -165,7 +165,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(LocationLimitation $limitation, $errorCount) + public function testValidateError(LocationLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -201,7 +201,7 @@ public function testValidateError(LocationLimitation $limitation, $errorCount) * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(LocationLimitationType $limitationType) + public function testBuildValue(LocationLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -214,7 +214,7 @@ public function testBuildValue(LocationLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { $contentMock = new CoreContent([ 'versionInfo' => new CoreVersionInfo([ @@ -341,7 +341,7 @@ public function testEvaluate( $targets, array $persistenceLocations, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -382,7 +382,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -422,7 +422,7 @@ public function testEvaluateInvalidArgument( ValueObject $object, $targets, array $persistenceLocations - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -451,7 +451,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(LocationLimitationType $limitationType) + public function testGetCriterionInvalidValue(LocationLimitationType $limitationType): void { $this->expectException(\RuntimeException::class); @@ -465,7 +465,7 @@ public function testGetCriterionInvalidValue(LocationLimitationType $limitationT * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionSingleValue(LocationLimitationType $limitationType) + public function testGetCriterionSingleValue(LocationLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new LocationLimitation(['limitationValues' => [9]]), @@ -483,7 +483,7 @@ public function testGetCriterionSingleValue(LocationLimitationType $limitationTy * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionMultipleValues(LocationLimitationType $limitationType) + public function testGetCriterionMultipleValues(LocationLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new LocationLimitation(['limitationValues' => [9, 55]]), @@ -501,7 +501,7 @@ public function testGetCriterionMultipleValues(LocationLimitationType $limitatio * @param \Ibexa\Core\Limitation\LocationLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(LocationLimitationType $limitationType) + public function testValueSchema(LocationLimitationType $limitationType): void { self::assertEquals( LocationLimitationType::VALUE_SCHEMA_LOCATION_ID, diff --git a/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php b/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php index 83678bcd31..6231705f61 100644 --- a/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php +++ b/tests/lib/Limitation/NewObjectStateLimitationTypeTest.php @@ -53,7 +53,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\NewObjectStateLimitationType */ - public function testConstruct() + public function testConstruct(): NewObjectStateLimitationType { return new NewObjectStateLimitationType($this->getPersistenceMock()); } @@ -61,7 +61,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new NewObjectStateLimitation()], @@ -76,7 +76,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(NewObjectStateLimitation $limitation, NewObjectStateLimitationType $limitationType) + public function testAcceptValue(NewObjectStateLimitation $limitation, NewObjectStateLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -84,7 +84,7 @@ public function testAcceptValue(NewObjectStateLimitation $limitation, NewObjectS /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -98,7 +98,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, NewObjectStateLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, NewObjectStateLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -108,7 +108,7 @@ public function testAcceptValueException(Limitation $limitation, NewObjectStateL /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new NewObjectStateLimitation()], @@ -121,7 +121,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\NewObjectStateLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(NewObjectStateLimitation $limitation) + public function testValidatePass(NewObjectStateLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -149,7 +149,7 @@ public function testValidatePass(NewObjectStateLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new NewObjectStateLimitation(), 0], @@ -163,7 +163,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(NewObjectStateLimitation $limitation, $errorCount) + public function testValidateError(NewObjectStateLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -199,7 +199,7 @@ public function testValidateError(NewObjectStateLimitation $limitation, $errorCo * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(NewObjectStateLimitationType $limitationType) + public function testBuildValue(NewObjectStateLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -212,7 +212,7 @@ public function testBuildValue(NewObjectStateLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { return [ // ContentInfo, no access @@ -266,7 +266,7 @@ public function testEvaluate( ValueObject $object, array $targets, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -294,7 +294,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -323,7 +323,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, array $targets - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -352,7 +352,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterion(NewObjectStateLimitationType $limitationType) + public function testGetCriterion(NewObjectStateLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); @@ -366,7 +366,7 @@ public function testGetCriterion(NewObjectStateLimitationType $limitationType) * @param \Ibexa\Core\Limitation\NewObjectStateLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(NewObjectStateLimitationType $limitationType) + public function testValueSchema(NewObjectStateLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/ObjectStateLimitationTypeTest.php b/tests/lib/Limitation/ObjectStateLimitationTypeTest.php index a19458592b..c517c263fb 100644 --- a/tests/lib/Limitation/ObjectStateLimitationTypeTest.php +++ b/tests/lib/Limitation/ObjectStateLimitationTypeTest.php @@ -82,7 +82,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\ObjectStateLimitationType */ - public function testConstruct() + public function testConstruct(): ObjectStateLimitationType { return new ObjectStateLimitationType($this->getPersistenceMock()); } @@ -184,7 +184,7 @@ public function testEvaluate( ObjectStateLimitation $limitation, ValueObject $object, $expected - ) { + ): void { $getContentStateMap = [ [ 1, @@ -241,7 +241,7 @@ public function testEvaluate( * @param \Ibexa\Core\Limitation\ObjectStateLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(ObjectStateLimitationType $limitationType) + public function testGetCriterionInvalidValue(ObjectStateLimitationType $limitationType): void { $this->expectException(\RuntimeException::class); @@ -255,7 +255,7 @@ public function testGetCriterionInvalidValue(ObjectStateLimitationType $limitati * @param \Ibexa\Core\Limitation\ObjectStateLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionSingleValue(ObjectStateLimitationType $limitationType) + public function testGetCriterionSingleValue(ObjectStateLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new ObjectStateLimitation(['limitationValues' => [2]]), @@ -269,7 +269,7 @@ public function testGetCriterionSingleValue(ObjectStateLimitationType $limitatio self::assertEquals([2], $criterion->value); } - public function testGetCriterionMultipleValuesFromSingleGroup() + public function testGetCriterionMultipleValuesFromSingleGroup(): void { $this->getPersistenceMock() ->method('objectStateHandler') @@ -298,7 +298,7 @@ public function testGetCriterionMultipleValuesFromSingleGroup() self::assertEquals([1, 2], $criterion->value); } - public function testGetCriterionMultipleValuesFromMultipleGroups() + public function testGetCriterionMultipleValuesFromMultipleGroups(): void { $this->getPersistenceMock() ->method('objectStateHandler') diff --git a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php index f017946ca4..ef1df5efe9 100644 --- a/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentContentTypeLimitationTypeTest.php @@ -69,7 +69,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\ParentContentTypeLimitationType */ - public function testConstruct() + public function testConstruct(): ParentContentTypeLimitationType { return new ParentContentTypeLimitationType($this->getPersistenceMock()); } @@ -77,7 +77,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new ParentContentTypeLimitation()], @@ -92,7 +92,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(ParentContentTypeLimitation $limitation, ParentContentTypeLimitationType $limitationType) + public function testAcceptValue(ParentContentTypeLimitation $limitation, ParentContentTypeLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -100,7 +100,7 @@ public function testAcceptValue(ParentContentTypeLimitation $limitation, ParentC /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -115,7 +115,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, ParentContentTypeLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, ParentContentTypeLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -125,7 +125,7 @@ public function testAcceptValueException(Limitation $limitation, ParentContentTy /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new ParentContentTypeLimitation()], @@ -138,7 +138,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\ParentContentTypeLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(ParentContentTypeLimitation $limitation) + public function testValidatePass(ParentContentTypeLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -168,7 +168,7 @@ public function testValidatePass(ParentContentTypeLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new ParentContentTypeLimitation(), 0], @@ -182,7 +182,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(ParentContentTypeLimitation $limitation, $errorCount) + public function testValidateError(ParentContentTypeLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -218,7 +218,7 @@ public function testValidateError(ParentContentTypeLimitation $limitation, $erro * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(ParentContentTypeLimitationType $limitationType) + public function testBuildValue(ParentContentTypeLimitationType $limitationType): void { $expected = ['test', 'test' => '1']; $value = $limitationType->buildValue($expected); @@ -255,7 +255,7 @@ protected function getTestEvaluateVersionInfoMock() /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { return [ // ContentInfo, with API targets, no access @@ -509,7 +509,7 @@ public function testEvaluate( $targets, array $persistence, $expected - ) { + ): void { if ($object === 'contentMock') { $object = $this->getTestEvaluateContentMock(); } elseif ($object === 'versionInfoMock') { @@ -631,7 +631,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -662,7 +662,7 @@ public static function providerForTestEvaluateInvalidArgument() } #[DataProvider('providerForTestEvaluateInvalidArgument')] - public function testEvaluateInvalidArgument(Limitation $limitation, ValueObject $object, $targets) + public function testEvaluateInvalidArgument(Limitation $limitation, ValueObject $object, $targets): void { $this->expectException(InvalidArgumentException::class); @@ -691,7 +691,7 @@ public function testEvaluateInvalidArgument(Limitation $limitation, ValueObject * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(ParentContentTypeLimitationType $limitationType) + public function testGetCriterionInvalidValue(ParentContentTypeLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); @@ -705,7 +705,7 @@ public function testGetCriterionInvalidValue(ParentContentTypeLimitationType $li * @param \Ibexa\Core\Limitation\ParentContentTypeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(ParentContentTypeLimitationType $limitationType) + public function testValueSchema(ParentContentTypeLimitationType $limitationType): void { self::markTestIncomplete('Method is not implemented yet: ' . __METHOD__); } diff --git a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php index 69eccbdf94..81e42df05c 100644 --- a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php @@ -54,7 +54,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\ParentDepthLimitationType */ - public function testConstruct() + public function testConstruct(): ParentDepthLimitationType { return new ParentDepthLimitationType($this->getPersistenceMock()); } @@ -62,7 +62,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new ParentDepthLimitation()], @@ -77,7 +77,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType) + public function testAcceptValue(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -85,7 +85,7 @@ public function testAcceptValue(ParentDepthLimitation $limitation, ParentDepthLi /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -99,7 +99,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, ParentDepthLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, ParentDepthLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -109,7 +109,7 @@ public function testAcceptValueException(Limitation $limitation, ParentDepthLimi /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new ParentDepthLimitation()], @@ -123,7 +123,7 @@ public static function providerForTestValidatePass() */ #[Depends('testConstruct')] #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType) + public function testValidatePass(ParentDepthLimitation $limitation, ParentDepthLimitationType $limitationType): void { $validationErrors = $limitationType->validate($limitation); self::assertEmpty($validationErrors); @@ -133,7 +133,7 @@ public function testValidatePass(ParentDepthLimitation $limitation, ParentDepthL * @param \Ibexa\Core\Limitation\ParentDepthLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(ParentDepthLimitationType $limitationType) + public function testBuildValue(ParentDepthLimitationType $limitationType): void { $expected = [2, 7]; $value = $limitationType->buildValue($expected); @@ -149,7 +149,7 @@ public function testBuildValue(ParentDepthLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { // Real Content & VersionInfo objects, avoiding mocks since providers must be static. $content = new CoreContent([ @@ -285,7 +285,7 @@ public function testEvaluate( $targets, array $persistenceLocations, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -343,7 +343,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -383,7 +383,7 @@ public function testEvaluateInvalidArgument( ValueObject $object, $targets, array $persistenceLocations - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance diff --git a/tests/lib/Limitation/RoleLimitationTypeTest.php b/tests/lib/Limitation/RoleLimitationTypeTest.php index 586a968b45..9e36564597 100644 --- a/tests/lib/Limitation/RoleLimitationTypeTest.php +++ b/tests/lib/Limitation/RoleLimitationTypeTest.php @@ -175,7 +175,10 @@ public function testValidateError(UserRoleLimitation $limitation, int $errorCoun self::assertCount($errorCount, $validationErrors); } - public static function providerForTestValidateError() + /** + * @return array + */ + public static function providerForTestValidateError(): array { return [ [ @@ -220,7 +223,10 @@ public function testEvaluate( self::assertEquals($expected, $value); } - public static function providerForTestEvaluate() + /** + * @return array + */ + public static function providerForTestEvaluate(): array { return [ 'valid_role_limitation' => [ diff --git a/tests/lib/Limitation/SectionLimitationTypeTest.php b/tests/lib/Limitation/SectionLimitationTypeTest.php index 4895b85fc1..54645f877f 100644 --- a/tests/lib/Limitation/SectionLimitationTypeTest.php +++ b/tests/lib/Limitation/SectionLimitationTypeTest.php @@ -58,7 +58,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\SectionLimitationType */ - public function testConstruct() + public function testConstruct(): SectionLimitationType { return new SectionLimitationType($this->getPersistenceMock()); } @@ -66,7 +66,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new SectionLimitation()], @@ -81,7 +81,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(SectionLimitation $limitation, SectionLimitationType $limitationType) + public function testAcceptValue(SectionLimitation $limitation, SectionLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -89,7 +89,7 @@ public function testAcceptValue(SectionLimitation $limitation, SectionLimitation /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -106,7 +106,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, SectionLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, SectionLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -116,7 +116,7 @@ public function testAcceptValueException(Limitation $limitation, SectionLimitati /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new SectionLimitation()], @@ -129,7 +129,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SectionLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(SectionLimitation $limitation) + public function testValidatePass(SectionLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -160,7 +160,7 @@ public function testValidatePass(SectionLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new SectionLimitation(), 0], @@ -174,7 +174,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(SectionLimitation $limitation, $errorCount) + public function testValidateError(SectionLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -210,7 +210,7 @@ public function testValidateError(SectionLimitation $limitation, $errorCount) * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(SectionLimitationType $limitationType) + public function testBuildValue(SectionLimitationType $limitationType): void { $expected = ['test', 'test' => '33']; $value = $limitationType->buildValue($expected); @@ -223,7 +223,7 @@ public function testBuildValue(SectionLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { $contentMock = new CoreContent([ 'versionInfo' => new CoreVersionInfo([ @@ -343,7 +343,7 @@ public function testEvaluate( ValueObject $object, $targets, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -369,7 +369,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -386,7 +386,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, $targets - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -414,7 +414,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(SectionLimitationType $limitationType) + public function testGetCriterionInvalidValue(SectionLimitationType $limitationType): void { $this->expectException(\RuntimeException::class); @@ -428,7 +428,7 @@ public function testGetCriterionInvalidValue(SectionLimitationType $limitationTy * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionSingleValue(SectionLimitationType $limitationType) + public function testGetCriterionSingleValue(SectionLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new SectionLimitation(['limitationValues' => ['9']]), @@ -446,7 +446,7 @@ public function testGetCriterionSingleValue(SectionLimitationType $limitationTyp * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionMultipleValues(SectionLimitationType $limitationType) + public function testGetCriterionMultipleValues(SectionLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new SectionLimitation(['limitationValues' => ['9', '55']]), @@ -464,7 +464,7 @@ public function testGetCriterionMultipleValues(SectionLimitationType $limitation * @param \Ibexa\Core\Limitation\SectionLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(SectionLimitationType $limitationType) + public function testValueSchema(SectionLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); diff --git a/tests/lib/Limitation/SiteAccessLimitationTypeTest.php b/tests/lib/Limitation/SiteAccessLimitationTypeTest.php index 0af4aa916a..377ebe97a0 100644 --- a/tests/lib/Limitation/SiteAccessLimitationTypeTest.php +++ b/tests/lib/Limitation/SiteAccessLimitationTypeTest.php @@ -42,7 +42,7 @@ protected function setUp(): void /** * @return \Ibexa\Core\Limitation\SiteAccessLimitationType */ - public function testConstruct() + public function testConstruct(): SiteAccessLimitationType { return new SiteAccessLimitationType( $this->siteAccessServiceMock @@ -52,7 +52,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new SiteAccessLimitation()], @@ -88,7 +88,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(SiteAccessLimitation $limitation, SiteAccessLimitationType $limitationType) + public function testAcceptValue(SiteAccessLimitation $limitation, SiteAccessLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -96,7 +96,7 @@ public function testAcceptValue(SiteAccessLimitation $limitation, SiteAccessLimi /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -110,7 +110,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, SiteAccessLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, SiteAccessLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -120,7 +120,7 @@ public function testAcceptValueException(Limitation $limitation, SiteAccessLimit /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new SiteAccessLimitation(), 0], @@ -167,7 +167,7 @@ public static function providerForTestValidateError() */ #[Depends('testConstruct')] #[DataProvider('providerForTestValidateError')] - public function testValidateError(SiteAccessLimitation $limitation, $errorCount, SiteAccessLimitationType $limitationType) + public function testValidateError(SiteAccessLimitation $limitation, $errorCount, SiteAccessLimitationType $limitationType): void { $validationErrors = $limitationType->validate($limitation); self::assertCount($errorCount, $validationErrors); @@ -177,7 +177,7 @@ public function testValidateError(SiteAccessLimitation $limitation, $errorCount, * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(SiteAccessLimitationType $limitationType) + public function testBuildValue(SiteAccessLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -190,7 +190,7 @@ public function testBuildValue(SiteAccessLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { return [ // SiteAccess, no access @@ -221,7 +221,7 @@ public function testEvaluate( ValueObject $object, $expected, SiteAccessLimitationType $limitationType - ) { + ): void { $userMock = $this->getUserMock(); $userMock->expects(self::never())->method(self::anything()); @@ -238,7 +238,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -260,7 +260,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, SiteAccessLimitationType $limitationType - ) { + ): void { $this->expectException(InvalidArgumentException::class); $userMock = $this->getUserMock(); @@ -277,7 +277,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterion(SiteAccessLimitationType $limitationType) + public function testGetCriterion(SiteAccessLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); @@ -288,7 +288,7 @@ public function testGetCriterion(SiteAccessLimitationType $limitationType) * @param \Ibexa\Core\Limitation\SiteAccessLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(SiteAccessLimitationType $limitationType) + public function testValueSchema(SiteAccessLimitationType $limitationType): void { self::markTestSkipped('Method valueSchema() is not implemented'); } diff --git a/tests/lib/Limitation/StatusLimitationTypeTest.php b/tests/lib/Limitation/StatusLimitationTypeTest.php index 91c97df5ff..ac8db09046 100644 --- a/tests/lib/Limitation/StatusLimitationTypeTest.php +++ b/tests/lib/Limitation/StatusLimitationTypeTest.php @@ -30,7 +30,7 @@ class StatusLimitationTypeTest extends Base /** * @return \Ibexa\Core\Limitation\StatusLimitationType */ - public function testConstruct() + public function testConstruct(): StatusLimitationType { return new StatusLimitationType(); } @@ -38,7 +38,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new StatusLimitation()], @@ -63,7 +63,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(StatusLimitation $limitation, StatusLimitationType $limitationType) + public function testAcceptValue(StatusLimitation $limitation, StatusLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -71,7 +71,7 @@ public function testAcceptValue(StatusLimitation $limitation, StatusLimitationTy /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -85,7 +85,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, StatusLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, StatusLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -95,7 +95,7 @@ public function testAcceptValueException(Limitation $limitation, StatusLimitatio /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new StatusLimitation(), 0], @@ -153,7 +153,7 @@ public static function providerForTestValidateError() */ #[Depends('testConstruct')] #[DataProvider('providerForTestValidateError')] - public function testValidateError(StatusLimitation $limitation, $errorCount, StatusLimitationType $limitationType) + public function testValidateError(StatusLimitation $limitation, $errorCount, StatusLimitationType $limitationType): void { $validationErrors = $limitationType->validate($limitation); self::assertCount($errorCount, $validationErrors); @@ -163,7 +163,7 @@ public function testValidateError(StatusLimitation $limitation, $errorCount, Sta * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(StatusLimitationType $limitationType) + public function testBuildValue(StatusLimitationType $limitationType): void { $expected = ['test', 'test' => 9]; $value = $limitationType->buildValue($expected); @@ -213,7 +213,7 @@ protected function getContentMock($shouldBeCalled = true) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { return [ // VersionInfo, no access @@ -269,7 +269,7 @@ public function testEvaluate( bool $shouldBeCalled, $expected, StatusLimitationType $limitationType - ) { + ): void { $object = $objectType === 'versionInfo' ? $this->getVersionInfoMock($shouldBeCalled) : $this->getContentMock($shouldBeCalled); $userMock = $this->getUserMock(); @@ -290,7 +290,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { $versionInfoStub = new class() extends APIVersionInfo { public function getContentInfo(): \Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo @@ -344,7 +344,7 @@ public function testEvaluateInvalidArgument( Limitation $limitation, ValueObject $object, StatusLimitationType $limitationType - ) { + ): void { $this->expectException(InvalidArgumentException::class); $userMock = $this->getUserMock(); @@ -362,7 +362,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterion(StatusLimitationType $limitationType) + public function testGetCriterion(StatusLimitationType $limitationType): void { $this->expectException(NotImplementedException::class); @@ -373,7 +373,7 @@ public function testGetCriterion(StatusLimitationType $limitationType) * @param \Ibexa\Core\Limitation\StatusLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(StatusLimitationType $limitationType) + public function testValueSchema(StatusLimitationType $limitationType): void { self::markTestSkipped('Method valueSchema() is not implemented'); } diff --git a/tests/lib/Limitation/SubtreeLimitationTypeTest.php b/tests/lib/Limitation/SubtreeLimitationTypeTest.php index 62a982ac41..2ceb8585ea 100644 --- a/tests/lib/Limitation/SubtreeLimitationTypeTest.php +++ b/tests/lib/Limitation/SubtreeLimitationTypeTest.php @@ -60,7 +60,7 @@ protected function tearDown(): void /** * @return \Ibexa\Core\Limitation\SubtreeLimitationType */ - public function testConstruct() + public function testConstruct(): SubtreeLimitationType { return new SubtreeLimitationType($this->getPersistenceMock()); } @@ -68,7 +68,7 @@ public function testConstruct() /** * @return array */ - public static function providerForTestAcceptValue() + public static function providerForTestAcceptValue(): array { return [ [new SubtreeLimitation()], @@ -83,7 +83,7 @@ public static function providerForTestAcceptValue() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValue')] - public function testAcceptValue(SubtreeLimitation $limitation, SubtreeLimitationType $limitationType) + public function testAcceptValue(SubtreeLimitation $limitation, SubtreeLimitationType $limitationType): void { $limitationType->acceptValue($limitation); } @@ -91,7 +91,7 @@ public function testAcceptValue(SubtreeLimitation $limitation, SubtreeLimitation /** * @return array */ - public static function providerForTestAcceptValueException() + public static function providerForTestAcceptValueException(): array { return [ [new ObjectStateLimitation()], @@ -108,7 +108,7 @@ public static function providerForTestAcceptValueException() */ #[Depends('testConstruct')] #[DataProvider('providerForTestAcceptValueException')] - public function testAcceptValueException(Limitation $limitation, SubtreeLimitationType $limitationType) + public function testAcceptValueException(Limitation $limitation, SubtreeLimitationType $limitationType): void { $this->expectException(InvalidArgumentException::class); @@ -118,7 +118,7 @@ public function testAcceptValueException(Limitation $limitation, SubtreeLimitati /** * @return array */ - public static function providerForTestValidatePass() + public static function providerForTestValidatePass(): array { return [ [new SubtreeLimitation()], @@ -131,7 +131,7 @@ public static function providerForTestValidatePass() * @param \Ibexa\Contracts\Core\Repository\Values\User\Limitation\SubtreeLimitation $limitation */ #[DataProvider('providerForTestValidatePass')] - public function testValidatePass(SubtreeLimitation $limitation) + public function testValidatePass(SubtreeLimitation $limitation): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -168,7 +168,7 @@ public function testValidatePass(SubtreeLimitation $limitation) /** * @return array */ - public static function providerForTestValidateError() + public static function providerForTestValidateError(): array { return [ [new SubtreeLimitation(), 0], @@ -182,7 +182,7 @@ public static function providerForTestValidateError() * @param int $errorCount */ #[DataProvider('providerForTestValidateError')] - public function testValidateError(SubtreeLimitation $limitation, $errorCount) + public function testValidateError(SubtreeLimitation $limitation, $errorCount): void { if (!empty($limitation->limitationValues)) { $this->getPersistenceMock() @@ -220,7 +220,7 @@ public function testValidateError(SubtreeLimitation $limitation, $errorCount) self::assertCount($errorCount, $validationErrors); } - public function testValidateErrorWrongPath() + public function testValidateErrorWrongPath(): void { $limitation = new SubtreeLimitation(['limitationValues' => ['/1/2/42/']]); @@ -258,7 +258,7 @@ public function testValidateErrorWrongPath() * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testBuildValue(SubtreeLimitationType $limitationType) + public function testBuildValue(SubtreeLimitationType $limitationType): void { $expected = ['test', 'test' => '/1/999/']; $value = $limitationType->buildValue($expected); @@ -271,7 +271,7 @@ public function testBuildValue(SubtreeLimitationType $limitationType) /** * @return array */ - public static function providerForTestEvaluate() + public static function providerForTestEvaluate(): array { // Real Content & VersionInfo objects, avoiding mocks since providers must be static. $content = new CoreContent([ @@ -423,7 +423,7 @@ public function testEvaluate( $targets, array $persistenceLocations, $expected - ) { + ): void { // Need to create inline instead of depending on testConstruct() to get correct mock instance $limitationType = $this->testConstruct(); @@ -485,7 +485,7 @@ public function testEvaluate( /** * @return array */ - public static function providerForTestEvaluateInvalidArgument() + public static function providerForTestEvaluateInvalidArgument(): array { return [ // invalid limitation @@ -511,7 +511,7 @@ public function testEvaluateInvalidArgument( ValueObject $object, $targets, array $persistenceLocations - ) { + ): void { $this->expectException(InvalidArgumentException::class); // Need to create inline instead of depending on testConstruct() to get correct mock instance @@ -540,7 +540,7 @@ public function testEvaluateInvalidArgument( * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionInvalidValue(SubtreeLimitationType $limitationType) + public function testGetCriterionInvalidValue(SubtreeLimitationType $limitationType): void { $this->expectException(\RuntimeException::class); @@ -554,7 +554,7 @@ public function testGetCriterionInvalidValue(SubtreeLimitationType $limitationTy * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionSingleValue(SubtreeLimitationType $limitationType) + public function testGetCriterionSingleValue(SubtreeLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new SubtreeLimitation(['limitationValues' => ['/1/9/']]), @@ -574,7 +574,7 @@ public function testGetCriterionSingleValue(SubtreeLimitationType $limitationTyp * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testGetCriterionMultipleValues(SubtreeLimitationType $limitationType) + public function testGetCriterionMultipleValues(SubtreeLimitationType $limitationType): void { $criterion = $limitationType->getCriterion( new SubtreeLimitation(['limitationValues' => ['/1/9/', '/1/55/']]), @@ -594,7 +594,7 @@ public function testGetCriterionMultipleValues(SubtreeLimitationType $limitation * @param \Ibexa\Core\Limitation\SubtreeLimitationType $limitationType */ #[Depends('testConstruct')] - public function testValueSchema(SubtreeLimitationType $limitationType) + public function testValueSchema(SubtreeLimitationType $limitationType): void { self::assertEquals( SubtreeLimitationType::VALUE_SCHEMA_LOCATION_PATH, diff --git a/tests/lib/MVC/Symfony/Controller/ControllerTest.php b/tests/lib/MVC/Symfony/Controller/ControllerTest.php index 7c2adb0edf..f135b3640a 100644 --- a/tests/lib/MVC/Symfony/Controller/ControllerTest.php +++ b/tests/lib/MVC/Symfony/Controller/ControllerTest.php @@ -41,7 +41,7 @@ protected function setUp(): void ->will(self::returnValue($this->templateEngineMock)); } - public function testRender() + public function testRender(): void { $view = 'some:valid:view.html.twig'; $params = ['foo' => 'bar', 'truc' => 'muche']; @@ -56,7 +56,7 @@ public function testRender() self::assertSame($tplResult, $response->getContent()); } - public function testRenderWithResponse() + public function testRenderWithResponse(): void { $response = new Response(); $view = 'some:valid:view.html.twig'; diff --git a/tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php b/tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php index 09c47f2133..79cb947c98 100644 --- a/tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php +++ b/tests/lib/MVC/Symfony/Event/RouteReferenceGenerationEventTest.php @@ -14,7 +14,7 @@ class RouteReferenceGenerationEventTest extends TestCase { - public function testConstruct() + public function testConstruct(): void { $routeReference = new RouteReference('foo'); $request = new Request(); @@ -23,7 +23,7 @@ public function testConstruct() self::assertSame($request, $event->getRequest()); } - public function testGetSet() + public function testGetSet(): void { $routeReference = new RouteReference('foo'); $request = new Request(); diff --git a/tests/lib/MVC/Symfony/Event/ScopeChangeEventTest.php b/tests/lib/MVC/Symfony/Event/ScopeChangeEventTest.php index c44d0c463b..8869d4efb5 100644 --- a/tests/lib/MVC/Symfony/Event/ScopeChangeEventTest.php +++ b/tests/lib/MVC/Symfony/Event/ScopeChangeEventTest.php @@ -13,7 +13,7 @@ class ScopeChangeEventTest extends TestCase { - public function testGetSiteAccess() + public function testGetSiteAccess(): void { $siteAccess = new SiteAccess('foo', 'test'); $event = new ScopeChangeEvent($siteAccess); diff --git a/tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php b/tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php index ce13fc1191..531ca4d4a2 100644 --- a/tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php +++ b/tests/lib/MVC/Symfony/EventListener/LanguageSwitchListenerTest.php @@ -28,7 +28,7 @@ protected function setUp(): void ->getMock(); } - public function testGetSubscribedEvents() + public function testGetSubscribedEvents(): void { self::assertSame( [MVCEvents::ROUTE_REFERENCE_GENERATION => 'onRouteReferenceGeneration'], @@ -36,7 +36,7 @@ public function testGetSubscribedEvents() ); } - public function testOnRouteReferenceGenerationNoLanguage() + public function testOnRouteReferenceGenerationNoLanguage(): void { $this->translationHelper ->expects(self::never()) @@ -47,7 +47,7 @@ public function testOnRouteReferenceGenerationNoLanguage() $listener->onRouteReferenceGeneration($event); } - public function testOnRouteReferenceGeneration() + public function testOnRouteReferenceGeneration(): void { $language = 'fre-FR'; $routeReference = new RouteReference('foo', ['language' => $language]); @@ -66,7 +66,7 @@ public function testOnRouteReferenceGeneration() self::assertSame($expectedSiteAccess, $routeReference->get('siteaccess')); } - public function testOnRouteReferenceGenerationNoTranslationSiteAccess() + public function testOnRouteReferenceGenerationNoTranslationSiteAccess(): void { $language = 'fre-FR'; $routeReference = new RouteReference('foo', ['language' => $language]); diff --git a/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php index 284c6a1470..157ed3c9b1 100644 --- a/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/Relation/ParameterProviderTest.php @@ -19,7 +19,10 @@ class ParameterProviderTest extends TestCase { - public static function providerForTestGetViewParameters() + /** + * @return array + */ + public static function providerForTestGetViewParameters(): array { return [ [ContentInfo::STATUS_DRAFT, ['available' => true]], @@ -29,7 +32,7 @@ public static function providerForTestGetViewParameters() } #[DataProvider('providerForTestGetViewParameters')] - public function testGetViewParameters($status, array $expected) + public function testGetViewParameters($status, array $expected): void { $contentServiceMock = $this->createMock(ContentService::class); $contentServiceMock @@ -46,7 +49,7 @@ public function testGetViewParameters($status, array $expected) TestCase::assertSame($parameters, $expected); } - public function testNotFoundGetViewParameters() + public function testNotFoundGetViewParameters(): void { $contentId = 123; @@ -63,7 +66,7 @@ public function testNotFoundGetViewParameters() TestCase::assertSame($parameters, ['available' => false]); } - public function testUnauthorizedGetViewParameters() + public function testUnauthorizedGetViewParameters(): void { $contentId = 123; diff --git a/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php index bdcc46a9be..7828434e39 100644 --- a/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/RelationList/ParameterProviderTest.php @@ -17,7 +17,10 @@ class ParameterProviderTest extends TestCase { - public static function providerForTestGetViewParameters() + /** + * @return array + */ + public static function providerForTestGetViewParameters(): array { return [ [[123, 456, 789], ['available' => [123 => true, 456 => true, 789 => false]]], @@ -28,7 +31,7 @@ public static function providerForTestGetViewParameters() } #[DataProvider('providerForTestGetViewParameters')] - public function testGetViewParameters(array $desinationContentIds, array $expected) + public function testGetViewParameters(array $desinationContentIds, array $expected): void { $contentServiceMock = $this->createMock(ContentService::class); $contentServiceMock @@ -59,7 +62,7 @@ public function testGetViewParameters(array $desinationContentIds, array $expect TestCase::assertSame($parameters, $expected); } - public function testNotFoundGetViewParameters() + public function testNotFoundGetViewParameters(): void { $contentId = 123; @@ -77,7 +80,7 @@ public function testNotFoundGetViewParameters() TestCase::assertSame($parameters, ['available' => [$contentId => false]]); } - public function testUnauthorizedGetViewParameters() + public function testUnauthorizedGetViewParameters(): void { $contentId = 123; diff --git a/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php b/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php index 5173957f09..95a02542ee 100644 --- a/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php +++ b/tests/lib/MVC/Symfony/FieldType/View/ParameterProvider/LocaleParameterProviderTest.php @@ -18,7 +18,10 @@ class LocaleParameterProviderTest extends TestCase { - public static function providerForTestGetViewParameters() + /** + * @return array + */ + public static function providerForTestGetViewParameters(): array { return [ [true, 'fr_FR'], @@ -27,7 +30,7 @@ public static function providerForTestGetViewParameters() } #[DataProvider('providerForTestGetViewParameters')] - public function testGetViewParameters($hasRequestLocale, $expectedLocale) + public function testGetViewParameters($hasRequestLocale, $expectedLocale): void { $field = new Field(['languageCode' => 'cro-HR']); $parameterProvider = new LocaleParameterProvider($this->getLocaleConverterMock()); diff --git a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php index 01639cac74..efe0c8b495 100644 --- a/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php +++ b/tests/lib/MVC/Symfony/FieldType/View/ParameterProviderRegistryTest.php @@ -15,7 +15,7 @@ #[CoversClass(ParameterProviderRegistry::class)] class ParameterProviderRegistryTest extends TestCase { - public function testSetHasParameterProvider() + public function testSetHasParameterProvider(): void { $registry = new ParameterProviderRegistry(); self::assertFalse($registry->hasParameterProvider('foo')); @@ -26,7 +26,7 @@ public function testSetHasParameterProvider() self::assertTrue($registry->hasParameterProvider('foo')); } - public function testGetParameterProviderFail() + public function testGetParameterProviderFail(): void { $this->expectException(\InvalidArgumentException::class); @@ -34,7 +34,7 @@ public function testGetParameterProviderFail() $registry->getParameterProvider('foo'); } - public function testGetParameterProvider() + public function testGetParameterProvider(): void { $provider = self::createStub(ParameterProviderInterface::class); $registry = new ParameterProviderRegistry(); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php index 4f838969eb..b3a00cfe30 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/DepthTest.php @@ -35,13 +35,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $depth, $expectedResult) + public function testMatchLocation($matchingConfig, int $depth, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['depth' => $depth]))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -82,7 +85,7 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $depth, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $depth, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForDepth($depth)); $this->matcher->setMatchingConfig($matchingConfig); @@ -92,7 +95,10 @@ public function testMatchContentInfo($matchingConfig, int $depth, $expectedResul ); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php index e6c8f4e4c1..e658674980 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTest.php @@ -32,13 +32,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $contentId, $expectedResult) + public function testMatchLocation($matchingConfig, int $contentId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForContentId($contentId))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -91,13 +94,16 @@ private function generateLocationForContentId($contentId) * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $contentId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $contentId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['id' => $contentId]))); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php index fbc8422c40..340f51e0c7 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeGroupTest.php @@ -35,7 +35,7 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $contentTypeGroupId, $expectedResult) + public function testMatchLocation($matchingConfig, int $contentTypeGroupId, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeGroupId($contentTypeGroupId)); $this->matcher->setMatchingConfig($matchingConfig); @@ -48,7 +48,10 @@ public function testMatchLocation($matchingConfig, int $contentTypeGroupId, $exp ); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { $data = []; @@ -104,7 +107,7 @@ private function generateLocationMock() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $contentTypeGroupId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $contentTypeGroupId, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeGroupId($contentTypeGroupId)); $this->matcher->setMatchingConfig($matchingConfig); @@ -115,7 +118,10 @@ public function testMatchContentInfo($matchingConfig, int $contentTypeGroupId, $ ); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { $data = []; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php index 155a2136e9..f6532415ff 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ContentTypeTest.php @@ -33,13 +33,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult) + public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForContentType($contentTypeId))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { $data = []; @@ -109,13 +112,16 @@ private function generateContentInfoForContentType($contentTypeId) * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->generateContentInfoForContentType($contentTypeId))); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { $data = []; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php index 18d82a4713..999e793eb2 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/LocationTest.php @@ -31,13 +31,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $id, $expectedResult) + public function testMatchLocation($matchingConfig, int $id, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['id' => $id]))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -68,13 +71,16 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $mainLocationId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $mainLocationId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['mainLocationId' => $mainLocationId]))); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php index 48d298258a..9cab4dd9db 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentContentTypeTest.php @@ -88,7 +88,7 @@ private function generateRepositoryMockForContentTypeId($contentTypeId) * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult) + public function testMatchLocation($matchingConfig, int $contentTypeId, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeId($contentTypeId)); $this->matcher->setMatchingConfig($matchingConfig); @@ -98,7 +98,10 @@ public function testMatchLocation($matchingConfig, int $contentTypeId, $expected ); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -129,7 +132,7 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $contentTypeId, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeId($contentTypeId)); $this->matcher->setMatchingConfig($matchingConfig); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php index ff18d5a56f..b83c189c8d 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/ParentLocationTest.php @@ -36,13 +36,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $parentLocationId, $expectedResult) + public function testMatchLocation($matchingConfig, int $parentLocationId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['parentLocationId' => $parentLocationId]))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -73,7 +76,7 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $parentLocationId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $parentLocationId, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForParentLocationId($parentLocationId)); $this->matcher->setMatchingConfig($matchingConfig); @@ -83,7 +86,10 @@ public function testMatchContentInfo($matchingConfig, int $parentLocationId, $ex ); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php index 3dcad086ab..7dfd245bc0 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/RemoteTest.php @@ -31,13 +31,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, string $remoteId, $expectedResult) + public function testMatchLocation($matchingConfig, string $remoteId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->getLocationMock(['remoteId' => $remoteId]))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -68,13 +71,16 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, string $remoteId, $expectedResult) + public function testMatchContentInfo($matchingConfig, string $remoteId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['remoteId' => $remoteId]))); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php index 0a41603275..535aa275a8 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Id/SectionTest.php @@ -32,13 +32,16 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, int $sectionId, $expectedResult) + public function testMatchLocation($matchingConfig, int $sectionId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchLocation($this->generateLocationForSectionId($sectionId))); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -91,13 +94,16 @@ private function generateLocationForSectionId($sectionId) * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, int $sectionId, $expectedResult) + public function testMatchContentInfo($matchingConfig, int $sectionId, $expectedResult): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame($expectedResult, $this->matcher->matchContentInfo($this->getContentInfoMock(['sectionId' => $sectionId]))); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php index 1e4d59ebe5..2eb8b8f91b 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ContentTypeTest.php @@ -34,7 +34,7 @@ protected function setUp(): void * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult) + public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); @@ -45,7 +45,10 @@ public function testMatchLocation($matchingConfig, string $contentTypeIdentifier ); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { $data = []; @@ -101,7 +104,7 @@ private function generateLocationMock() * @param bool $expectedResult */ #[DataProvider('matchContentInfoProvider')] - public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult) + public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); @@ -114,7 +117,10 @@ public function testMatchContentInfo($matchingConfig, string $contentTypeIdentif ); } - public static function matchContentInfoProvider() + /** + * @return array + */ + public static function matchContentInfoProvider(): array { $data = []; diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php index 60e3ecae30..7a99b5dda6 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/ParentContentTypeTest.php @@ -109,7 +109,7 @@ private function generateRepositoryMockForContentTypeIdentifier($contentTypeIden * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult) + public function testMatchLocation($matchingConfig, string $contentTypeIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); @@ -121,7 +121,10 @@ public function testMatchLocation($matchingConfig, string $contentTypeIdentifier ); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -152,7 +155,7 @@ public static function matchLocationProvider() * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult) + public function testMatchContentInfo($matchingConfig, string $contentTypeIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForContentTypeIdentifier($contentTypeIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php index ba86e52b69..0e38e3d6db 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/Identifier/SectionTest.php @@ -75,7 +75,7 @@ private function generateRepositoryMockForSectionIdentifier($sectionIdentifier) * @param bool $expectedResult */ #[DataProvider('matchSectionProvider')] - public function testMatchLocation($matchingConfig, string $sectionIdentifier, $expectedResult) + public function testMatchLocation($matchingConfig, string $sectionIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForSectionIdentifier($sectionIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); @@ -96,7 +96,10 @@ public function testMatchLocation($matchingConfig, string $sectionIdentifier, $e ); } - public static function matchSectionProvider() + /** + * @return array + */ + public static function matchSectionProvider(): array { return [ [ @@ -127,7 +130,7 @@ public static function matchSectionProvider() * @param bool $expectedResult */ #[DataProvider('matchSectionProvider')] - public function testMatchContentInfo($matchingConfig, string $sectionIdentifier, $expectedResult) + public function testMatchContentInfo($matchingConfig, string $sectionIdentifier, $expectedResult): void { $this->matcher->setRepository($this->generateRepositoryMockForSectionIdentifier($sectionIdentifier)); $this->matcher->setMatchingConfig($matchingConfig); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php index 143dea06a8..7ad9a5c82e 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/MultipleValuedTest.php @@ -17,7 +17,7 @@ class MultipleValuedTest extends BaseTestCase { #[DataProvider('matchingConfigProvider')] - public function testSetMatchingConfig($matchingConfig) + public function testSetMatchingConfig($matchingConfig): void { $matcher = $this->getMultipleValuedMatcherMock(); $matcher->setMatchingConfig($matchingConfig); @@ -35,7 +35,7 @@ public function testSetMatchingConfig($matchingConfig) * * @return array */ - public static function matchingConfigProvider() + public static function matchingConfigProvider(): array { return [ [ @@ -47,7 +47,7 @@ public static function matchingConfigProvider() ]; } - public function testInjectRepository() + public function testInjectRepository(): void { $matcher = $this->getMultipleValuedMatcherMock(); $matcher->setRepository($this->repositoryMock); diff --git a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php index eff5b02d27..8f1bcc8d24 100644 --- a/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php +++ b/tests/lib/MVC/Symfony/Matcher/ContentBased/UrlAliasTest.php @@ -36,7 +36,7 @@ protected function setUp(): void * @param string[] $expectedValues */ #[DataProvider('setMatchingConfigProvider')] - public function testSetMatchingConfig($matchingConfig, $expectedValues) + public function testSetMatchingConfig($matchingConfig, $expectedValues): void { $this->matcher->setMatchingConfig($matchingConfig); self::assertSame( @@ -45,7 +45,10 @@ public function testSetMatchingConfig($matchingConfig, $expectedValues) ); } - public static function setMatchingConfigProvider() + /** + * @return array + */ + public static function setMatchingConfigProvider(): array { return [ ['/foo/bar/', ['foo/bar']], @@ -106,7 +109,7 @@ private function generateRepositoryMockForUrlAlias($path) * @param bool $expectedResult */ #[DataProvider('matchLocationProvider')] - public function testMatchLocation($matchingConfig, string $path, $expectedResult) + public function testMatchLocation($matchingConfig, string $path, $expectedResult): void { $repository = $this->generateRepositoryMockForUrlAlias($path); $this->matcher->setRepository($repository); @@ -117,7 +120,10 @@ public function testMatchLocation($matchingConfig, string $path, $expectedResult ); } - public static function matchLocationProvider() + /** + * @return array + */ + public static function matchLocationProvider(): array { return [ [ @@ -148,7 +154,7 @@ public static function matchLocationProvider() ]; } - public function testMatchContentInfo() + public function testMatchContentInfo(): void { $this->expectException(\RuntimeException::class); diff --git a/tests/lib/MVC/Symfony/Routing/GeneratorTest.php b/tests/lib/MVC/Symfony/Routing/GeneratorTest.php index 72186a7963..f2b355648b 100644 --- a/tests/lib/MVC/Symfony/Routing/GeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/GeneratorTest.php @@ -39,7 +39,10 @@ protected function setUp(): void $this->generator->setLogger($this->logger); } - public static function generateProvider() + /** + * @return array + */ + public static function generateProvider(): array { return [ ['foo_bar', [], UrlGeneratorInterface::ABSOLUTE_PATH], @@ -55,7 +58,7 @@ public static function generateProvider() } #[DataProvider('generateProvider')] - public function testSimpleGenerate($urlResource, array $parameters, $referenceType) + public function testSimpleGenerate($urlResource, array $parameters, $referenceType): void { $matcher = $this->createMock(URILexer::class); $this->generator->setSiteAccess(new SiteAccess('test', 'fake', $matcher)); @@ -86,7 +89,7 @@ public function testSimpleGenerate($urlResource, array $parameters, $referenceTy } #[DataProvider('generateProvider')] - public function testGenerateWithSiteAccessNoReverseMatch($urlResource, array $parameters, $referenceType) + public function testGenerateWithSiteAccessNoReverseMatch($urlResource, array $parameters, $referenceType): void { $matcher = $this->createMock(URILexer::class); $this->generator->setSiteAccess(new SiteAccess('test', 'test', $matcher)); diff --git a/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php b/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php index 2c9ee21bb1..ef4527f38b 100644 --- a/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/RouteReferenceGeneratorTest.php @@ -29,7 +29,7 @@ protected function setUp(): void $this->dispatcher = $this->createMock(EventDispatcherInterface::class); } - public function testGenerateNullResource() + public function testGenerateNullResource(): void { $currentRouteName = 'my_route'; $currentRouteParams = ['foo' => 'bar']; @@ -53,7 +53,7 @@ public function testGenerateNullResource() self::assertSame($currentRouteParams, $reference->getParams()); } - public function testGenerateNullResourceAndPassedParams() + public function testGenerateNullResourceAndPassedParams(): void { $currentRouteName = 'my_route'; $currentRouteParams = ['foo' => 'bar']; @@ -80,7 +80,7 @@ public function testGenerateNullResourceAndPassedParams() } #[DataProvider('generateGenerator')] - public function testGenerate($resource, array $params) + public function testGenerate($resource, array $params): void { $currentRouteName = 'my_route'; $currentRouteParams = ['foo' => 'bar']; @@ -104,7 +104,7 @@ public function testGenerate($resource, array $params) self::assertSame($params, $reference->getParams()); } - public function testGenerateNullResourceWithoutRoute() + public function testGenerateNullResourceWithoutRoute(): void { $currentRouteName = 'my_route'; $currentRouteParams = ['foo' => 'bar']; @@ -124,7 +124,10 @@ public function testGenerateNullResourceWithoutRoute() self::assertInstanceOf(RouteReference::class, $reference); } - public static function generateGenerator() + /** + * @return array + */ + public static function generateGenerator(): array { return [ ['my_route', ['hello' => 'world', 'isIt' => true]], diff --git a/tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php b/tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php index f8d4dc37ed..c4c6ab8c85 100644 --- a/tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php +++ b/tests/lib/MVC/Symfony/Routing/RouteReferenceTest.php @@ -12,7 +12,7 @@ class RouteReferenceTest extends TestCase { - public function testConstruct() + public function testConstruct(): void { $route = 'my_route'; $params = ['foo' => 'bar', 'some' => 'thing']; @@ -21,7 +21,7 @@ public function testConstruct() self::assertSame($params, $reference->getParams()); } - public function testGetSetRoute() + public function testGetSetRoute(): void { $initialRoute = 'foo'; $newRoute = 'bar'; @@ -32,7 +32,7 @@ public function testGetSetRoute() self::assertSame($newRoute, $reference->getRoute()); } - public function testGetSetParams() + public function testGetSetParams(): void { $reference = new RouteReference('foo'); self::assertSame([], $reference->getParams()); @@ -53,7 +53,7 @@ public function testGetSetParams() self::assertSame($defaultValue, $reference->get('url', $defaultValue)); } - public function testRemoveParam() + public function testRemoveParam(): void { $reference = new RouteReference('foo'); $reference->set('foo', 'bar'); diff --git a/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php b/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php index 1a55ad1674..02b19fd8ac 100644 --- a/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php +++ b/tests/lib/MVC/Symfony/Routing/SimplifiedRequestTest.php @@ -20,7 +20,7 @@ class SimplifiedRequestTest extends TestCase * @param \Ibexa\Core\MVC\Symfony\Routing\SimplifiedRequest $expectedRequest */ #[DataProvider('fromUrlProvider')] - public function testFromUrl($url, $expectedRequest) + public function testFromUrl($url, $expectedRequest): void { self::assertEquals( $expectedRequest, @@ -48,7 +48,10 @@ public function testStrictGetters(): void self::assertSame(['param' => 'bar', 'param2' => 'bar2'], $request->getQueryParams()); } - public static function fromUrlProvider() + /** + * @return array + */ + public static function fromUrlProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php index 06b9508899..4f453c0a17 100644 --- a/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php +++ b/tests/lib/MVC/Symfony/Routing/UrlAliasGeneratorTest.php @@ -101,7 +101,7 @@ protected function setUp(): void $this->urlAliasGenerator->setSiteAccessRouter($this->siteAccessRouter); } - public function testGetPathPrefixByRootLocationId() + public function testGetPathPrefixByRootLocationId(): void { $rootLocationId = 123; $rootLocation = new Location(['id' => $rootLocationId]); @@ -122,7 +122,7 @@ public function testGetPathPrefixByRootLocationId() } #[DataProvider('providerTestIsPrefixExcluded')] - public function testIsPrefixExcluded($uri, $expectedIsExcluded) + public function testIsPrefixExcluded($uri, $expectedIsExcluded): void { $this->urlAliasGenerator->setExcludedUriPrefixes( [ @@ -134,7 +134,10 @@ public function testIsPrefixExcluded($uri, $expectedIsExcluded) self::assertSame($expectedIsExcluded, $this->urlAliasGenerator->isUriPrefixExcluded($uri)); } - public static function providerTestIsPrefixExcluded() + /** + * @return array + */ + public static function providerTestIsPrefixExcluded(): array { return [ ['/foo/bar', false], @@ -151,7 +154,7 @@ public static function providerTestIsPrefixExcluded() ]; } - public function testLoadLocation() + public function testLoadLocation(): void { $locationId = 123; $location = new Location(['id' => $locationId]); @@ -164,7 +167,7 @@ public function testLoadLocation() } #[DataProvider('providerTestDoGenerate')] - public function testDoGenerate(URLAlias $urlAlias, array $parameters, $expected) + public function testDoGenerate(URLAlias $urlAlias, array $parameters, $expected): void { $location = new Location(['id' => 123]); $this->urlAliasService @@ -178,7 +181,10 @@ public function testDoGenerate(URLAlias $urlAlias, array $parameters, $expected) self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, $parameters)); } - public static function providerTestDoGenerate() + /** + * @return array + */ + public static function providerTestDoGenerate(): array { return [ 'without_parameters' => [ @@ -208,7 +214,7 @@ public static function providerTestDoGenerate() * @param array $parameters */ #[DataProvider('providerTestDoGenerateWithSiteaccess')] - public function testDoGenerateWithSiteAccessParam(URLAlias $urlAlias, array $parameters, string $expected) + public function testDoGenerateWithSiteAccessParam(URLAlias $urlAlias, array $parameters, string $expected): void { $siteaccessName = 'foo'; $parameters += ['siteaccess' => $siteaccessName]; @@ -275,7 +281,10 @@ static function ($location) use ($treeRootUrlAlias) { self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, $parameters)); } - public static function providerTestDoGenerateWithSiteaccess() + /** + * @return array + */ + public static function providerTestDoGenerateWithSiteaccess(): array { return [ [ @@ -394,7 +403,7 @@ public function testDoGenerateWithSiteAccessLoadsLocationWithLanguages(): void ); } - public function testDoGenerateNoUrlAlias() + public function testDoGenerateNoUrlAlias(): void { $location = new Location(['id' => 123, 'contentInfo' => new ContentInfo(['id' => 456])]); $uri = "/content/location/$location->id"; @@ -416,7 +425,7 @@ public function testDoGenerateNoUrlAlias() } #[DataProvider('providerTestDoGenerateRootLocation')] - public function testDoGenerateRootLocation(URLAlias $urlAlias, $isOutsideAndNotExcluded, $expected, $pathPrefix) + public function testDoGenerateRootLocation(URLAlias $urlAlias, $isOutsideAndNotExcluded, $expected, $pathPrefix): void { $excludedPrefixes = ['/products', '/shared']; $rootLocationId = 456; @@ -452,7 +461,10 @@ public function testDoGenerateRootLocation(URLAlias $urlAlias, $isOutsideAndNotE self::assertSame($expected, $this->urlAliasGenerator->doGenerate($location, [])); } - public static function providerTestDoGenerateRootLocation() + /** + * @return array + */ + public static function providerTestDoGenerateRootLocation(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php b/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php index e21022f74a..6c48dbf3af 100644 --- a/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php +++ b/tests/lib/MVC/Symfony/Routing/UrlAliasRouterTest.php @@ -100,7 +100,7 @@ protected function getRouter(LocationService $locationService, URLAliasService $ return new UrlAliasRouter($locationService, $urlAliasService, $contentService, $urlAliasGenerator, $requestContext); } - public function testRequestContext() + public function testRequestContext(): void { self::assertSame($this->requestContext, $this->router->getContext()); $newContext = new RequestContext(); @@ -112,7 +112,7 @@ public function testRequestContext() self::assertSame($newContext, $this->router->getContext()); } - public function testMatch() + public function testMatch(): void { $this->expectException(\RuntimeException::class); @@ -120,12 +120,15 @@ public function testMatch() } #[DataProvider('providerTestSupports')] - public function testSupports($routeReference, $isSupported) + public function testSupports($routeReference, $isSupported): void { self::assertSame($isSupported, $this->router->supports($routeReference)); } - public static function providerTestSupports() + /** + * @return array + */ + public static function providerTestSupports(): array { return [ [new Location(), true], @@ -135,7 +138,7 @@ public static function providerTestSupports() ]; } - public function testGetRouteCollection() + public function testGetRouteCollection(): void { self::assertInstanceOf(RouteCollection::class, $this->router->getRouteCollection()); } @@ -161,7 +164,7 @@ protected function getRequestByPathInfo($pathInfo) return $request; } - public function testMatchRequestLocation() + public function testMatchRequestLocation(): void { $pathInfo = '/foo/bar'; $destinationId = 123; @@ -195,7 +198,7 @@ public function testMatchRequestLocation() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationWithCaseRedirect() + public function testMatchRequestLocationWithCaseRedirect(): void { $pathInfo = '/Foo/bAR'; $urlAliasPath = '/foo/bar'; @@ -237,7 +240,7 @@ public function testMatchRequestLocationWithCaseRedirect() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationWrongCaseUriPrefixExcluded() + public function testMatchRequestLocationWrongCaseUriPrefixExcluded(): void { $pathInfo = '/Foo/bAR'; $urlAliasPath = '/foo/bar'; @@ -279,7 +282,7 @@ public function testMatchRequestLocationWrongCaseUriPrefixExcluded() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationCorrectCaseUriPrefixExcluded() + public function testMatchRequestLocationCorrectCaseUriPrefixExcluded(): void { $pathInfo = $urlAliasPath = '/foo/bar'; $destinationId = 123; @@ -320,7 +323,7 @@ public function testMatchRequestLocationCorrectCaseUriPrefixExcluded() self::assertSame($pathInfo, $request->attributes->get('semanticPathinfo')); } - public function testMatchRequestLocationHistory() + public function testMatchRequestLocationHistory(): void { $pathInfo = '/foo/bar'; $newPathInfo = '/foo/bar-new'; @@ -367,7 +370,7 @@ public function testMatchRequestLocationHistory() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationCustom() + public function testMatchRequestLocationCustom(): void { $pathInfo = '/foo/bar'; $destinationId = 123; @@ -403,7 +406,7 @@ public function testMatchRequestLocationCustom() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestLocationCustomForward() + public function testMatchRequestLocationCustomForward(): void { $pathInfo = '/foo/bar'; $newPathInfo = '/foo/bar-new'; @@ -459,7 +462,7 @@ public function testMatchRequestLocationCustomForward() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestFail() + public function testMatchRequestFail(): void { $this->expectException(ResourceNotFoundException::class); @@ -473,7 +476,7 @@ public function testMatchRequestFail() $this->router->matchRequest($request); } - public function testMatchRequestResource() + public function testMatchRequestResource(): void { $pathInfo = '/hello_content/hello_search'; $destination = '/content/search'; @@ -499,7 +502,7 @@ public function testMatchRequestResource() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestResourceWithRedirect() + public function testMatchRequestResourceWithRedirect(): void { $pathInfo = '/hello_content/hello_search'; $destination = '/content/search'; @@ -526,7 +529,7 @@ public function testMatchRequestResourceWithRedirect() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestResourceWithCaseRedirect() + public function testMatchRequestResourceWithCaseRedirect(): void { $pathInfo = '/heLLo_contEnt/hEllo_SEarch'; $urlAliasPath = '/hello_content/hello_search'; @@ -563,7 +566,7 @@ public function testMatchRequestResourceWithCaseRedirect() * Tests that forwarding custom alias will redirect to the resource destination rather than * to the case-corrected alias. */ - public function testMatchRequestResourceCaseIncorrectWithForwardRedirect() + public function testMatchRequestResourceCaseIncorrectWithForwardRedirect(): void { $pathInfo = '/heLLo_contEnt/hEllo_SEarch'; $urlAliasPath = '/hello_content/hello_search'; @@ -591,7 +594,7 @@ public function testMatchRequestResourceCaseIncorrectWithForwardRedirect() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestVirtual() + public function testMatchRequestVirtual(): void { $pathInfo = '/foo/bar'; $urlAlias = new URLAlias( @@ -615,7 +618,7 @@ public function testMatchRequestVirtual() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testMatchRequestVirtualWithCaseRedirect() + public function testMatchRequestVirtualWithCaseRedirect(): void { $pathInfo = '/Foo/bAR'; $urlAliasPath = '/foo/bar'; @@ -645,7 +648,7 @@ public function testMatchRequestVirtualWithCaseRedirect() self::assertEquals($expected, $this->router->matchRequest($request)); } - public function testGenerateFail() + public function testGenerateFail(): void { $this->expectException(RouteNotFoundException::class); @@ -680,21 +683,21 @@ public function testGenerateWithRouteObject(): void ); } - public function testGenerateNoLocation() + public function testGenerateNoLocation(): void { $this->expectException(\InvalidArgumentException::class); $this->router->generate(UrlAliasRouter::URL_ALIAS_ROUTE_NAME, ['foo' => 'bar']); } - public function testGenerateInvalidLocation() + public function testGenerateInvalidLocation(): void { $this->expectException(\LogicException::class); $this->router->generate(UrlAliasRouter::URL_ALIAS_ROUTE_NAME, ['location' => new \stdClass()]); } - public function testGenerateWithLocationId() + public function testGenerateWithLocationId(): void { $locationId = 123; $location = new Location(['id' => $locationId]); @@ -721,7 +724,7 @@ public function testGenerateWithLocationId() ); } - public function testGenerateWithLocationAsParameter() + public function testGenerateWithLocationAsParameter(): void { $locationId = 123; $location = new Location(['id' => $locationId]); @@ -743,7 +746,7 @@ public function testGenerateWithLocationAsParameter() ); } - public function testGenerateWithContentId() + public function testGenerateWithContentId(): void { $locationId = 123; $contentId = 456; @@ -777,7 +780,7 @@ public function testGenerateWithContentId() ); } - public function testGenerateWithContentIdWithMissingMainLocation() + public function testGenerateWithContentIdWithMissingMainLocation(): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php b/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php index f7aed62c2f..6dc92ec9cc 100644 --- a/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php +++ b/tests/lib/MVC/Symfony/Security/HttpUtilsTest.php @@ -17,7 +17,7 @@ class HttpUtilsTest extends TestCase { #[DataProvider('generateUriStandardProvider')] - public function testGenerateUriStandard($uri, $isUriRouteName, $expected) + public function testGenerateUriStandard($uri, $isUriRouteName, $expected): void { $urlGenerator = $this->createMock(UrlGeneratorInterface::class); $httpUtils = new HttpUtils($urlGenerator); @@ -38,7 +38,10 @@ public function testGenerateUriStandard($uri, $isUriRouteName, $expected) self::assertSame($expected, $httpUtils->generateUri($request, $uri)); } - public static function generateUriStandardProvider() + /** + * @return array + */ + public static function generateUriStandardProvider(): array { return [ ['http://localhost/foo/bar', false, 'http://localhost/foo/bar'], @@ -50,7 +53,7 @@ public static function generateUriStandardProvider() } #[DataProvider('generateUriProvider')] - public function testGenerateUri($uri, $isUriRouteName, $siteAccessUri, $expected) + public function testGenerateUri($uri, $isUriRouteName, $siteAccessUri, $expected): void { $siteAccess = new SiteAccess('test', 'test'); if ($uri[0] === '/') { @@ -83,7 +86,10 @@ public function testGenerateUri($uri, $isUriRouteName, $siteAccessUri, $expected self::assertSame($expected, $res); } - public static function generateUriProvider() + /** + * @return array + */ + public static function generateUriProvider(): array { return [ ['http://localhost/foo/bar', false, null, 'http://localhost/foo/bar'], @@ -94,7 +100,7 @@ public static function generateUriProvider() ]; } - public function testCheckRequestPathStandard() + public function testCheckRequestPathStandard(): void { $httpUtils = new HttpUtils(); $httpUtils->setSiteAccess(new SiteAccess('test')); @@ -103,7 +109,7 @@ public function testCheckRequestPathStandard() } #[DataProvider('checkRequestPathProvider')] - public function testCheckRequestPath($path, $siteAccessUri, $requestUri, $expected) + public function testCheckRequestPath($path, $siteAccessUri, $requestUri, $expected): void { $siteAccess = new SiteAccess('test', 'test'); if ($siteAccessUri !== null) { @@ -122,7 +128,10 @@ public function testCheckRequestPath($path, $siteAccessUri, $requestUri, $expect self::assertSame($expected, $httpUtils->checkRequestPath($request, $path)); } - public static function checkRequestPathProvider() + /** + * @return array + */ + public static function checkRequestPathProvider(): array { return [ ['/foo/bar', null, 'http://localhost/foo/bar', true], diff --git a/tests/lib/MVC/Symfony/Security/UserTest.php b/tests/lib/MVC/Symfony/Security/UserTest.php index 36f7bdaf52..6c20ee0b1c 100644 --- a/tests/lib/MVC/Symfony/Security/UserTest.php +++ b/tests/lib/MVC/Symfony/Security/UserTest.php @@ -16,7 +16,7 @@ class UserTest extends TestCase { - public function testConstruct() + public function testConstruct(): void { $login = 'my_username'; $passwordHash = 'encoded_password'; @@ -47,7 +47,7 @@ public function testConstruct() self::assertSame($roles, $user->getRoles()); } - public function testIsEqualTo() + public function testIsEqualTo(): void { $userId = 123; $apiUser = $this->createMock(APIUser::class); @@ -69,7 +69,7 @@ public function testIsEqualTo() self::assertTrue($user->isEqualTo($user2)); } - public function testIsNotEqualTo() + public function testIsNotEqualTo(): void { $apiUser = $this->createMock(APIUser::class); $apiUser @@ -90,7 +90,7 @@ public function testIsNotEqualTo() self::assertFalse($user->isEqualTo($user2)); } - public function testIsEqualToNotSameUserType() + public function testIsEqualToNotSameUserType(): void { $user = new User(self::createStub(APIUser::class)); $user2 = $this->createMock(ReferenceUserInterface::class); @@ -101,7 +101,7 @@ public function testIsEqualToNotSameUserType() self::assertFalse($user->isEqualTo($user2)); } - public function testSetAPIUser() + public function testSetAPIUser(): void { $apiUserA = self::createStub(APIUser::class); $apiUserB = self::createStub(APIUser::class); diff --git a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php index 52cbe7b861..ef387c6171 100644 --- a/tests/lib/MVC/Symfony/Security/UserWrappedTest.php +++ b/tests/lib/MVC/Symfony/Security/UserWrappedTest.php @@ -77,7 +77,7 @@ public function testRegularUser(): void self::assertSame($originalUser, $user->getWrappedUser()); } - public function testIsEqualTo() + public function testIsEqualTo(): void { $originalUser = $this->createMock(UserEquatableInterface::class); $user = new UserWrapped($originalUser, $this->apiUser); diff --git a/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php b/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php index 4b196e55cb..a759f36564 100644 --- a/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php +++ b/tests/lib/MVC/Symfony/Security/Voter/CoreVoterTest.php @@ -29,13 +29,16 @@ protected function setUp(): void } #[DataProvider('supportsAttributeProvider')] - public function testSupportsAttribute($attribute, $expectedResult) + public function testSupportsAttribute($attribute, $expectedResult): void { $voter = new CoreVoter($this->permissionResolver); self::assertSame($expectedResult, $voter->supportsAttribute($attribute)); } - public static function supportsAttributeProvider() + /** + * @return array + */ + public static function supportsAttributeProvider(): array { return [ ['foo', false], @@ -55,13 +58,16 @@ public static function supportsAttributeProvider() } #[DataProvider('supportsClassProvider')] - public function testSupportsClass($class) + public function testSupportsClass($class): void { $voter = new CoreVoter($this->permissionResolver); self::assertTrue($voter->supportsClass($class)); } - public static function supportsClassProvider() + /** + * @return array + */ + public static function supportsClassProvider(): array { return [ ['foo'], @@ -72,7 +78,7 @@ public static function supportsClassProvider() } #[DataProvider('voteInvalidAttributeProvider')] - public function testVoteInvalidAttribute(array $attributes) + public function testVoteInvalidAttribute(array $attributes): void { $voter = new CoreVoter($this->permissionResolver); self::assertSame( @@ -85,7 +91,10 @@ public function testVoteInvalidAttribute(array $attributes) ); } - public static function voteInvalidAttributeProvider() + /** + * @return array + */ + public static function voteInvalidAttributeProvider(): array { return [ [[]], @@ -106,7 +115,7 @@ public static function voteInvalidAttributeProvider() } #[DataProvider('voteProvider')] - public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult) + public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult): void { $voter = new CoreVoter($this->permissionResolver); if ($repositoryCanUser !== null) { @@ -131,7 +140,10 @@ public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResu ); } - public static function voteProvider() + /** + * @return array + */ + public static function voteProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php b/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php index 424b8541b7..465687a78d 100644 --- a/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php +++ b/tests/lib/MVC/Symfony/Security/Voter/ValueObjectVoterTest.php @@ -29,13 +29,16 @@ protected function setUp(): void } #[DataProvider('supportsAttributeProvider')] - public function testSupportsAttribute($attribute, $expectedResult) + public function testSupportsAttribute($attribute, $expectedResult): void { $voter = new ValueObjectVoter($this->permissionResolver); self::assertSame($expectedResult, $voter->supportsAttribute($attribute)); } - public static function supportsAttributeProvider() + /** + * @return array + */ + public static function supportsAttributeProvider(): array { return [ ['foo', false], @@ -55,13 +58,16 @@ public static function supportsAttributeProvider() } #[DataProvider('supportsClassProvider')] - public function testSupportsClass($class) + public function testSupportsClass($class): void { $voter = new ValueObjectVoter($this->permissionResolver); self::assertTrue($voter->supportsClass($class)); } - public static function supportsClassProvider() + /** + * @return array + */ + public static function supportsClassProvider(): array { return [ ['foo'], @@ -72,7 +78,7 @@ public static function supportsClassProvider() } #[DataProvider('voteInvalidAttributeProvider')] - public function testVoteInvalidAttribute(array $attributes) + public function testVoteInvalidAttribute(array $attributes): void { $voter = new ValueObjectVoter($this->permissionResolver); self::assertSame( @@ -85,7 +91,10 @@ public function testVoteInvalidAttribute(array $attributes) ); } - public static function voteInvalidAttributeProvider() + /** + * @return array + */ + public static function voteInvalidAttributeProvider(): array { return [ [[]], @@ -97,7 +106,7 @@ public static function voteInvalidAttributeProvider() } #[DataProvider('voteProvider')] - public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult) + public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResult): void { $voter = new ValueObjectVoter($this->permissionResolver); $targets = isset($attribute->limitations['targets']) ? $attribute->limitations['targets'] : []; @@ -117,7 +126,10 @@ public function testVote(Attribute $attribute, $repositoryCanUser, $expectedResu ); } - public static function voteProvider() + /** + * @return array + */ + public static function voteProvider(): array { return [ [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php b/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php index e1f41dceb3..6e62d437df 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterBaseTestCase.php @@ -42,7 +42,7 @@ public function testConstruct(): Router } #[DataProvider('matchProvider')] - public function testMatch(SimplifiedRequest $request, string $siteAccess) + public function testMatch(SimplifiedRequest $request, string $siteAccess): void { $router = $this->createRouter(); $sa = $router->match($request); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php index 18fc4567c9..a563c3b3d5 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostElementTest.php @@ -74,7 +74,7 @@ public static function matchProvider(): array ]; } - public function testGetName() + public function testGetName(): void { $matcher = new HostMapMatcher(['host' => 'foo'], []); self::assertSame('host:map', $matcher->getName()); @@ -84,7 +84,7 @@ public function testGetName() } #[DataProvider('reverseMatchProvider')] - public function testReverseMatch($siteAccessName, $elementNumber, SimplifiedRequest $request, $expectedHost) + public function testReverseMatch($siteAccessName, $elementNumber, SimplifiedRequest $request, $expectedHost): void { $matcher = new HostElement([$elementNumber]); $matcher->setRequest($request); @@ -93,7 +93,10 @@ public function testReverseMatch($siteAccessName, $elementNumber, SimplifiedRequ self::assertSame($expectedHost, $result->getRequest()->getHost()); } - public static function reverseMatchProvider() + /** + * @return array + */ + public static function reverseMatchProvider(): array { return [ ['foo', 1, SimplifiedRequest::fromUrl('http://bar.example.com/'), 'foo.example.com'], @@ -103,14 +106,14 @@ public static function reverseMatchProvider() ]; } - public function testReverseMatchFail() + public function testReverseMatchFail(): void { $matcher = new HostElement([3]); $matcher->setRequest(new SimplifiedRequest('http', 'ibexa.co')); self::assertNull($matcher->reverseMatch('foo')); } - public function testSerialize() + public function testSerialize(): void { $matcher = new HostElement([1]); $matcher->setRequest(new SimplifiedRequest('http', 'ibexa.co', 80, '/foo/bar')); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php index 7b6e1ca5b2..ca0ce705a9 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostPortURITest.php @@ -83,7 +83,7 @@ public static function matchProvider(): array ]; } - public function testSetGetRequestMapHost() + public function testSetGetRequestMapHost(): void { $mapKey = 'phoenix-rises.fm'; $request = new SimplifiedRequest('http', $mapKey); @@ -93,14 +93,14 @@ public function testSetGetRequestMapHost() self::assertSame($mapKey, $matcher->getMapKey()); } - public function testReverseHostMatchFail() + public function testReverseHostMatchFail(): void { $config = ['foo' => 'bar']; $matcher = new Host($config); self::assertNull($matcher->reverseMatch('non_existent')); } - public function testReverseMatchHost() + public function testReverseMatchHost(): void { $config = [ 'ibexa.co' => 'some_siteaccess', @@ -119,7 +119,7 @@ public function testReverseMatchHost() self::assertSame('phoenix-rises.fm', $result->getRequest()->getHost()); } - public function testSetGetRequestMapPort() + public function testSetGetRequestMapPort(): void { $mapKey = 8000; $request = new SimplifiedRequest('http', '', $mapKey); @@ -129,14 +129,14 @@ public function testSetGetRequestMapPort() self::assertSame((string)$mapKey, $matcher->getMapKey()); } - public function testReversePortMatchFail() + public function testReversePortMatchFail(): void { $config = ['foo' => 8080]; $matcher = new Port($config); self::assertNull($matcher->reverseMatch('non_existent')); } - public function testReverseMatchPort() + public function testReverseMatchPort(): void { $config = [ '80' => 'some_siteaccess', diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php index 20d75651ab..79a32f771e 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterHostTextTest.php @@ -73,13 +73,13 @@ public static function matchProvider(): array ]; } - public function testGetName() + public function testGetName(): void { $matcher = new HostTextMatcher(['host' => 'foo'], []); self::assertSame('host:text', $matcher->getName()); } - public function testReverseMatch() + public function testReverseMatch(): void { $matcher = new HostTextMatcher( [ diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php index 15516297cf..a5740f6502 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterMapURITest.php @@ -20,7 +20,7 @@ class RouterMapURITest extends TestCase * @param string $expectedMapKey */ #[DataProvider('setRequestProvider')] - public function testSetGetRequest($config, $pathinfo, $expectedMapKey) + public function testSetGetRequest($config, $pathinfo, $expectedMapKey): void { $request = new SimplifiedRequest('http', '', 80, $pathinfo); $matcher = new URIMapMatcher($config); @@ -34,7 +34,7 @@ public function testSetGetRequest($config, $pathinfo, $expectedMapKey) * @param string $expectedFixedUpURI */ #[DataProvider('fixupURIProvider')] - public function testAnalyseURI($uri, $expectedFixedUpURI) + public function testAnalyseURI($uri, $expectedFixedUpURI): void { $matcher = new URIMapMatcher([]); $matcher->setRequest( @@ -51,7 +51,7 @@ public function testAnalyseURI($uri, $expectedFixedUpURI) * @param string $linkUri */ #[DataProvider('fixupURIProvider')] - public function testAnalyseLink($fullUri, $linkUri) + public function testAnalyseLink($fullUri, $linkUri): void { $matcher = new URIMapMatcher([]); $matcher->setRequest( @@ -63,7 +63,10 @@ public function testAnalyseLink($fullUri, $linkUri) self::assertSame($fullUri, $unserializedMatcher->analyseLink($linkUri)); } - public static function setRequestProvider() + /** + * @return array + */ + public static function setRequestProvider(): array { return [ [['foo' => 'bar'], '/bar/baz', 'bar'], @@ -71,7 +74,10 @@ public static function setRequestProvider() ]; } - public static function fixupURIProvider() + /** + * @return array + */ + public static function fixupURIProvider(): array { return [ ['/foo', '/'], @@ -84,14 +90,14 @@ public static function fixupURIProvider() ]; } - public function testReverseMatchFail() + public function testReverseMatchFail(): void { $config = ['foo' => 'bar']; $matcher = new URIMapMatcher($config); self::assertNull($matcher->reverseMatch('non_existent')); } - public function testReverseMatch() + public function testReverseMatch(): void { $config = [ 'some_uri' => 'some_siteaccess', diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php index da07ed99a5..1db63dfa15 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterSpecialPortsTest.php @@ -75,7 +75,7 @@ public static function matchProvider(): array ]; } - public function testGetName() + public function testGetName(): void { $matcher = new PortMatcher(['port' => '8080', 'scheme' => 'http'], []); self::assertSame('port', $matcher->getName()); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php index 8b9a08727f..239b41c474 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterTest.php @@ -32,7 +32,7 @@ public function testConstructDebug() } #[DataProvider('matchProvider')] - public function testMatch(SimplifiedRequest $request, $siteAccess) + public function testMatch(SimplifiedRequest $request, $siteAccess): void { $router = $this->createRouter(); $sa = $router->match($request); @@ -43,7 +43,7 @@ public function testMatch(SimplifiedRequest $request, $siteAccess) $router->setSiteAccess(); } - public function testMatchWithDevEnvFail() + public function testMatchWithDevEnvFail(): void { $router = $this->createRouter(true); putenv('EZPUBLISH_SITEACCESS=' . self::UNDEFINED_SA_NAME); @@ -56,7 +56,7 @@ public function testMatchWithDevEnvFail() $router->match(new SimplifiedRequest()); } - public function testMatchWithProdEnvFail() + public function testMatchWithProdEnvFail(): void { $router = $this->createRouter(); putenv('EZPUBLISH_SITEACCESS=' . self::UNDEFINED_SA_NAME); @@ -69,7 +69,7 @@ public function testMatchWithProdEnvFail() $router->match(new SimplifiedRequest()); } - public function testMatchWithEnv() + public function testMatchWithEnv(): void { $router = $this->createRouter(); putenv('EZPUBLISH_SITEACCESS=' . self::ENV_SA_NAME); @@ -162,7 +162,7 @@ public static function matchProvider(): array ]; } - public function testMatchByNameInvalidSiteAccess() + public function testMatchByNameInvalidSiteAccess(): void { $this->expectException(\InvalidArgumentException::class); @@ -177,7 +177,7 @@ public function testMatchByNameInvalidSiteAccess() $router->matchByName('bar'); } - public function testMatchByName() + public function testMatchByName(): void { $matcherBuilder = $this->createMock(MatcherBuilderInterface::class); $logger = self::createStub(LoggerInterface::class); @@ -229,7 +229,7 @@ public function testMatchByName() self::assertSame($matchedSiteAccess, $siteAccess->name); } - public function testMatchByNameNoVersatileMatcher() + public function testMatchByNameNoVersatileMatcher(): void { $matcherBuilder = $this->createMock(MatcherBuilderInterface::class); $logger = $this->createMock(LoggerInterface::class); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php index ec8d8c1ba9..f5c6ce4931 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElement2Test.php @@ -74,7 +74,7 @@ public static function matchProvider(): array * @param string $expectedFixedUpURI */ #[DataProvider('analyseProvider')] - public function testAnalyseURI($level, $uri, $expectedFixedUpURI) + public function testAnalyseURI($level, $uri, $expectedFixedUpURI): void { $matcher = new URIElementMatcher([$level]); $matcher->setRequest( @@ -89,7 +89,7 @@ public function testAnalyseURI($level, $uri, $expectedFixedUpURI) * @param string $expectedFixedUpURI */ #[DataProvider('analyseProvider')] - public function testAnalyseURILevelAsInt($level, $uri, $expectedFixedUpURI) + public function testAnalyseURILevelAsInt($level, $uri, $expectedFixedUpURI): void { $matcher = new URIElementMatcher($level); $matcher->setRequest( @@ -104,7 +104,7 @@ public function testAnalyseURILevelAsInt($level, $uri, $expectedFixedUpURI) * @param string $linkUri */ #[DataProvider('analyseProvider')] - public function testAnalyseLink($level, $fullUri, $linkUri) + public function testAnalyseLink($level, $fullUri, $linkUri): void { $matcher = new URIElementMatcher([$level]); $matcher->setRequest( @@ -113,7 +113,10 @@ public function testAnalyseLink($level, $fullUri, $linkUri) self::assertSame($fullUri, $matcher->analyseLink($linkUri)); } - public static function analyseProvider() + /** + * @return array + */ + public static function analyseProvider(): array { return [ [2, '/my/siteaccess/foo/bar', '/foo/bar'], @@ -132,7 +135,7 @@ public static function analyseProvider() } #[DataProvider('reverseMatchProvider')] - public function testReverseMatch($siteAccessName, $originalPathinfo) + public function testReverseMatch($siteAccessName, $originalPathinfo): void { $expectedSiteAccessPath = str_replace('_', '/', $siteAccessName); $matcher = new URIElementMatcher([2]); @@ -145,7 +148,10 @@ public function testReverseMatch($siteAccessName, $originalPathinfo) self::assertSame('/foo/bar/baz', $result->analyseURI("/$expectedSiteAccessPath/foo/bar/baz")); } - public static function reverseMatchProvider() + /** + * @return array + */ + public static function reverseMatchProvider(): array { return [ ['some_thing', '/foo/bar'], @@ -153,14 +159,14 @@ public static function reverseMatchProvider() ]; } - public function testReverseMatchFail() + public function testReverseMatchFail(): void { $matcher = new URIElementMatcher([2]); $matcher->setRequest(new SimplifiedRequest('http', '', 80, '/my/siteaccess/foo/bar')); self::assertNull($matcher->reverseMatch('another_siteaccess_again_dont_tell_me')); } - public function testSerialize() + public function testSerialize(): void { $matcher = new URIElementMatcher([2]); $matcher->setRequest(new SimplifiedRequest('http', '', 80, '/foo/bar')); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php index 703cfde401..0ffc4dedc6 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURIElementTest.php @@ -68,7 +68,7 @@ public static function matchProvider(): array ]; } - public function testGetName() + public function testGetName(): void { $matcher = new URIElementMatcher([]); self::assertSame('uri:element', $matcher->getName()); @@ -79,7 +79,7 @@ public function testGetName() * @param string $expectedFixedUpURI */ #[DataProvider('analyseProvider')] - public function testAnalyseURI($uri, $expectedFixedUpURI) + public function testAnalyseURI($uri, $expectedFixedUpURI): void { $matcher = new URIElementMatcher([1]); $matcher->setRequest( @@ -93,7 +93,7 @@ public function testAnalyseURI($uri, $expectedFixedUpURI) * @param string $linkUri */ #[DataProvider('analyseProvider')] - public function testAnalyseLink($fullUri, $linkUri) + public function testAnalyseLink($fullUri, $linkUri): void { $matcher = new URIElementMatcher([1]); $matcher->setRequest( @@ -102,7 +102,10 @@ public function testAnalyseLink($fullUri, $linkUri) self::assertSame($fullUri, $matcher->analyseLink($linkUri)); } - public static function analyseProvider() + /** + * @return array + */ + public static function analyseProvider(): array { return [ ['/my_siteaccess/foo/bar', '/foo/bar'], @@ -111,7 +114,7 @@ public static function analyseProvider() } #[DataProvider('reverseMatchProvider')] - public function testReverseMatch($siteAccessName, $originalPathinfo) + public function testReverseMatch($siteAccessName, $originalPathinfo): void { $matcher = new URIElementMatcher([1]); $matcher->setRequest(new SimplifiedRequest('http', '', 80, $originalPathinfo)); @@ -122,7 +125,10 @@ public function testReverseMatch($siteAccessName, $originalPathinfo) self::assertSame('/foo/bar/baz', $result->analyseURI("/$siteAccessName/foo/bar/baz")); } - public static function reverseMatchProvider() + /** + * @return array + */ + public static function reverseMatchProvider(): array { return [ ['something', '/foo/bar'], @@ -133,7 +139,7 @@ public static function reverseMatchProvider() ]; } - public function testSerialize() + public function testSerialize(): void { $matcher = new URIElementMatcher([1]); $matcher->setRequest(new SimplifiedRequest('http', '', 80, '/foo/bar')); diff --git a/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php b/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php index b9b8959cf3..d76f782613 100644 --- a/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php +++ b/tests/lib/MVC/Symfony/SiteAccess/RouterURITextTest.php @@ -73,13 +73,13 @@ public static function matchProvider(): array ]; } - public function testGetName() + public function testGetName(): void { $matcher = new URITextMatcher([], []); self::assertSame('uri:text', $matcher->getName()); } - public function testAnalyseURI() + public function testAnalyseURI(): void { $siteAccessURI = '/footestbar'; $semanticURI = '/something/hoho'; @@ -94,7 +94,7 @@ public function testAnalyseURI() self::assertSame($semanticURI, $matcher->analyseURI($siteAccessURI . $semanticURI)); } - public function testAnalyseLink() + public function testAnalyseLink(): void { $siteAccessURI = '/footestbar'; $semanticURI = '/something/hoho'; @@ -109,7 +109,7 @@ public function testAnalyseLink() self::assertSame($siteAccessURI . $semanticURI, $matcher->analyseLink($semanticURI)); } - public function testReverseMatch() + public function testReverseMatch(): void { $semanticURI = '/hihi/hoho'; $matcher = new URITextMatcher( diff --git a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php index b7d56bfe1b..b8fbb2d90b 100644 --- a/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php +++ b/tests/lib/MVC/Symfony/Templating/GlobalHelperTest.php @@ -52,7 +52,7 @@ protected function setUp(): void $this->helper = new GlobalHelper($this->configResolver, $this->locationService, $this->router, $this->translationHelper); } - public function testGetSiteaccess() + public function testGetSiteaccess(): void { $request = new Request(); $requestStack = new RequestStack([$request]); @@ -63,7 +63,7 @@ public function testGetSiteaccess() self::assertSame($siteAccess, $this->helper->getSiteaccess()); } - public function testGetViewParameters() + public function testGetViewParameters(): void { $request = Request::create('/foo'); $viewParameters = [ @@ -78,7 +78,7 @@ public function testGetViewParameters() self::assertSame($viewParameters, $this->helper->getViewParameters()); } - public function testGetViewParametersString() + public function testGetViewParametersString(): void { $request = Request::create('/foo'); $viewParametersString = '/(foo)/bar/(toto)/tata/(somethingelse)/héhé-høhø'; @@ -89,7 +89,7 @@ public function testGetViewParametersString() self::assertSame($viewParametersString, $this->helper->getViewParametersString()); } - public function testGetRequestedUriString() + public function testGetRequestedUriString(): void { $request = Request::create('/ibexa_demo_site/foo/bar'); $semanticPathinfo = '/foo/bar'; @@ -100,7 +100,7 @@ public function testGetRequestedUriString() self::assertSame($semanticPathinfo, $this->helper->getRequestedUriString()); } - public function testGetSystemUriStringNoUrlAlias() + public function testGetSystemUriStringNoUrlAlias(): void { $request = Request::create('/ibexa_demo_site/foo/bar'); $semanticPathinfo = '/foo/bar'; @@ -111,7 +111,7 @@ public function testGetSystemUriStringNoUrlAlias() self::assertSame($semanticPathinfo, $this->helper->getSystemUriString()); } - public function testGetSystemUriString() + public function testGetSystemUriString(): void { $locationId = 123; $contentId = 456; @@ -139,12 +139,12 @@ public function testGetSystemUriString() self::assertSame($expectedSystemUriString, $this->helper->getSystemUriString()); } - public function testGetConfigResolver() + public function testGetConfigResolver(): void { self::assertSame($this->configResolver, $this->helper->getConfigResolver()); } - public function testGetRootLocation() + public function testGetRootLocation(): void { $rootLocationId = 2; $this->configResolver @@ -167,7 +167,7 @@ public function testGetRootLocation() self::assertSame($rootLocation, $this->helper->getRootLocation()); } - public function testGetTranslationSiteAccess() + public function testGetTranslationSiteAccess(): void { $language = 'fre-FR'; $siteaccess = 'fre'; @@ -180,7 +180,7 @@ public function testGetTranslationSiteAccess() self::assertSame($siteaccess, $this->helper->getTranslationSiteAccess($language)); } - public function testGetAvailableLanguages() + public function testGetAvailableLanguages(): void { $languages = ['fre-FR', 'eng-GB', 'esl-ES']; $this->translationHelper diff --git a/tests/lib/MVC/Symfony/View/ContentViewTest.php b/tests/lib/MVC/Symfony/View/ContentViewTest.php index b0ef19890c..6d733f1307 100644 --- a/tests/lib/MVC/Symfony/View/ContentViewTest.php +++ b/tests/lib/MVC/Symfony/View/ContentViewTest.php @@ -27,14 +27,17 @@ class ContentViewTest extends AbstractViewTestCase private $valueParams = ['content' => null]; #[DataProvider('constructProvider')] - public function testConstruct($templateIdentifier, array $params) + public function testConstruct($templateIdentifier, array $params): void { $contentView = new ContentView($templateIdentifier, $params); self::assertSame($templateIdentifier, $contentView->getTemplateIdentifier()); self::assertSame($this->valueParams + $params, $contentView->getParameters()); } - public static function constructProvider() + /** + * @return array + */ + public static function constructProvider(): array { return [ ['some:valid:identifier', ['foo' => 'bar']], @@ -56,14 +59,17 @@ static function (): bool { } #[DataProvider('constructFailProvider')] - public function testConstructFail($templateIdentifier) + public function testConstructFail($templateIdentifier): void { $this->expectException(InvalidArgumentType::class); new ContentView($templateIdentifier); } - public static function constructFailProvider() + /** + * @return array + */ + public static function constructFailProvider(): array { return [ [123], diff --git a/tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php b/tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php index fec5439591..fcfbe41d2e 100644 --- a/tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php +++ b/tests/lib/MVC/Symfony/View/Renderer/TemplateRendererTest.php @@ -37,7 +37,7 @@ protected function setUp(): void ); } - public function testRender() + public function testRender(): void { $view = $this->createView(); $view->setTemplateIdentifier('path/to/template.html.twig'); @@ -61,7 +61,7 @@ public function testRender() $this->renderer->render($view); } - public function testRenderNoViewTemplate() + public function testRenderNoViewTemplate(): void { $this->expectException(NoViewTemplateException::class); diff --git a/tests/lib/MVC/Symfony/View/ViewManagerTest.php b/tests/lib/MVC/Symfony/View/ViewManagerTest.php index b5c62eed30..d2cbcb5ddf 100644 --- a/tests/lib/MVC/Symfony/View/ViewManagerTest.php +++ b/tests/lib/MVC/Symfony/View/ViewManagerTest.php @@ -64,7 +64,7 @@ protected function setUp(): void ); } - public function testRenderContent() + public function testRenderContent(): void { $content = new Content( ['versionInfo' => new VersionInfo(['contentInfo' => new ContentInfo()])] @@ -97,7 +97,7 @@ static function (View $view) use ($templateIdentifier) { self::assertSame($expectedTemplateResult, $this->viewManager->renderContent($content, 'customViewType', $params)); } - public function testRenderContentWithClosure() + public function testRenderContentWithClosure(): void { $content = new Content( ['versionInfo' => new VersionInfo(['contentInfo' => new ContentInfo()])] @@ -131,7 +131,7 @@ static function (View $view) use ($closure) { self::assertEqualsCanonicalizing($expectedTemplateResult, $templateResult); } - public function testRenderLocation() + public function testRenderLocation(): void { $content = new Content(['versionInfo' => new VersionInfo(['contentInfo' => new ContentInfo()])]); $location = new Location(['contentInfo' => new ContentInfo()]); @@ -180,7 +180,7 @@ static function (View $view) use ($templateIdentifier) { self::assertSame($expectedTemplateResult, $this->viewManager->renderLocation($location, 'customViewType', $params)); } - public function testRenderLocationWithContentPassed() + public function testRenderLocationWithContentPassed(): void { $content = new Content(['versionInfo' => new VersionInfo(['contentInfo' => new ContentInfo()])]); $location = new Location(['contentInfo' => new ContentInfo()]); @@ -231,7 +231,7 @@ static function (View $view) use ($templateIdentifier) { self::assertSame($expectedTemplateResult, $this->viewManager->renderLocation($location, 'customViewType', $params)); } - public function testRenderLocationWithClosure() + public function testRenderLocationWithClosure(): void { $content = new Content(['versionInfo' => new VersionInfo(['contentInfo' => new ContentInfo()])]); $location = new Location(['contentInfo' => new ContentInfo()]); diff --git a/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php b/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php index 5dc2e97285..b06a0e2a93 100644 --- a/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php +++ b/tests/lib/Persistence/Cache/AbstractCacheHandlerTestCase.php @@ -48,7 +48,7 @@ final public function testUnCachedMethods( ?array $tags = null, $key = null, $returnValue = null - ) { + ): void { $handlerMethodName = $this->getHandlerMethodName(); $this->loggerMock->expects(self::once())->method('logCall'); @@ -153,7 +153,7 @@ final public function testLoadMethodsCacheHit( $data = null, bool $multi = false, array $additionalCalls = [] - ) { + ): void { if ($method === self::NO_DATA_METHOD) { self::markTestSkipped('No cached load methods for this handler.'); } @@ -243,7 +243,7 @@ final public function testLoadMethodsCacheMiss( $data = null, bool $multi = false, array $additionalCalls = [] - ) { + ): void { if ($method === self::NO_DATA_METHOD) { self::markTestSkipped('No cached load methods for this handler.'); } diff --git a/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php b/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php index 02f306bb76..8f457d1f6c 100644 --- a/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php +++ b/tests/lib/Persistence/Cache/AbstractInMemoryCacheHandlerTestCase.php @@ -40,7 +40,7 @@ final public function testUnCachedMethods( ?array $key = null, $returnValue = null, bool $callInnerHandler = true - ) { + ): void { $handlerMethodName = $this->getHandlerMethodName(); $this->loggerMock->expects(self::once())->method('logCall'); @@ -144,7 +144,7 @@ final public function testLoadMethodsCacheHit( $data = null, bool $multi = false, array $additionalCalls = [] - ) { + ): void { $cacheItem = $this->getCacheItem($key, $multi ? reset($data) : $data); $handlerMethodName = $this->getHandlerMethodName(); @@ -232,7 +232,7 @@ final public function testLoadMethodsCacheMiss( $data = null, bool $multi = false, array $additionalCalls = [] - ) { + ): void { $cacheItem = $this->getCacheItem($key, null); $handlerMethodName = $this->getHandlerMethodName(); diff --git a/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php b/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php index 9b59c010e4..a33cd7c141 100644 --- a/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php +++ b/tests/lib/Persistence/Cache/Adapter/InMemoryClearingProxyAdapterTest.php @@ -76,7 +76,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testGetItem() + public function testGetItem(): void { $item = $this->createCacheItem('first'); @@ -92,7 +92,7 @@ public function testGetItem() self::assertSame($item, $returnedItem); } - public function testGetItems() + public function testGetItems(): void { $items = [ 'first' => $this->createCacheItem('first'), @@ -114,7 +114,7 @@ public function testGetItems() /** * Symfony uses generators with getItems() so we need to make sure we handle that. */ - public function testGetItemsWithGenerator() + public function testGetItemsWithGenerator(): void { $items = [ 'first' => $this->createCacheItem('first'), @@ -133,7 +133,7 @@ public function testGetItemsWithGenerator() self::assertSame($items, $returnedItems); } - public function testHasItem() + public function testHasItem(): void { $this->innerPool ->expects(self::once()) @@ -147,7 +147,7 @@ public function testHasItem() } #[DataProvider('providerForDelete')] - public function testDelete(string $method, $argument) + public function testDelete(string $method, $argument): void { $this->innerPool ->expects(self::once()) @@ -177,7 +177,7 @@ public static function providerForDelete(): array * Test for clear and invalidateTags as both expects a clear to in-memory as it on purpose does not track tags. */ #[DataProvider('providerForClearAndInvalidation')] - public function testClearAndInvalidation(string $method, $argument) + public function testClearAndInvalidation(string $method, $argument): void { if ($argument) { $this->innerPool diff --git a/tests/lib/Persistence/Cache/ContentHandlerTest.php b/tests/lib/Persistence/Cache/ContentHandlerTest.php index ef89319501..89d9a469c2 100644 --- a/tests/lib/Persistence/Cache/ContentHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentHandlerTest.php @@ -436,7 +436,7 @@ public static function providerForCachedLoadMethodsMiss(): array ]; } - public function testDeleteContent() + public function testDeleteContent(): void { $this->loggerMock->expects(self::once())->method('logCall'); diff --git a/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php b/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php index c6afa6b592..33a398c05d 100644 --- a/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentTypeHandlerTest.php @@ -402,7 +402,7 @@ public static function providerForCachedLoadMethodsMiss(): array /** * Test cache invalidation when publishing Content type. */ - public function testPublish() + public function testPublish(): void { $tags = ['t-5', 'tm', 'cft-5']; $method = 'publish'; diff --git a/tests/lib/Persistence/Cache/PersistenceHandlerTest.php b/tests/lib/Persistence/Cache/PersistenceHandlerTest.php index a42fbc6ac3..7c22889131 100644 --- a/tests/lib/Persistence/Cache/PersistenceHandlerTest.php +++ b/tests/lib/Persistence/Cache/PersistenceHandlerTest.php @@ -18,13 +18,13 @@ #[CoversClass(Handler::class)] class PersistenceHandlerTest extends AbstractBaseHandlerTestCase { - public function testHandler() + public function testHandler(): void { self::assertInstanceOf(SPIPersistence\Handler::class, $this->persistenceCacheHandler); self::assertInstanceOf(Cache\Handler::class, $this->persistenceCacheHandler); } - public function testContentHandler() + public function testContentHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->contentHandler(); @@ -32,7 +32,7 @@ public function testContentHandler() self::assertInstanceOf(Cache\ContentHandler::class, $handler); } - public function testLanguageHandler() + public function testLanguageHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->contentLanguageHandler(); @@ -40,7 +40,7 @@ public function testLanguageHandler() self::assertInstanceOf(Cache\ContentLanguageHandler::class, $handler); } - public function testContentTypeHandler() + public function testContentTypeHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->contentTypeHandler(); @@ -48,7 +48,7 @@ public function testContentTypeHandler() self::assertInstanceOf(Cache\ContentTypeHandler::class, $handler); } - public function testContentLocationHandler() + public function testContentLocationHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->locationHandler(); @@ -56,7 +56,7 @@ public function testContentLocationHandler() self::assertInstanceOf(Cache\LocationHandler::class, $handler); } - public function testTrashHandler() + public function testTrashHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->trashHandler(); @@ -64,7 +64,7 @@ public function testTrashHandler() self::assertInstanceOf(Cache\TrashHandler::class, $handler); } - public function testObjectStateHandler() + public function testObjectStateHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->objectStateHandler(); @@ -72,7 +72,7 @@ public function testObjectStateHandler() self::assertInstanceOf(Cache\ObjectStateHandler::class, $handler); } - public function testSectionHandler() + public function testSectionHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->sectionHandler(); @@ -80,7 +80,7 @@ public function testSectionHandler() self::assertInstanceOf(Cache\SectionHandler::class, $handler); } - public function testUserHandler() + public function testUserHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->userHandler(); @@ -88,7 +88,7 @@ public function testUserHandler() self::assertInstanceOf(Cache\UserHandler::class, $handler); } - public function testUrlAliasHandler() + public function testUrlAliasHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->urlAliasHandler(); @@ -96,7 +96,7 @@ public function testUrlAliasHandler() self::assertInstanceOf(Cache\UrlAliasHandler::class, $handler); } - public function testUrlWildcardHandler() + public function testUrlWildcardHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->urlWildcardHandler(); @@ -104,7 +104,7 @@ public function testUrlWildcardHandler() self::assertInstanceOf(Cache\UrlWildcardHandler::class, $handler); } - public function testTransactionHandler() + public function testTransactionHandler(): void { $this->loggerMock->expects(self::never())->method(self::anything()); $handler = $this->persistenceCacheHandler->transactionHandler(); diff --git a/tests/lib/Persistence/Cache/TransactionHandlerTest.php b/tests/lib/Persistence/Cache/TransactionHandlerTest.php index f4e58c7730..d0375a0e36 100644 --- a/tests/lib/Persistence/Cache/TransactionHandlerTest.php +++ b/tests/lib/Persistence/Cache/TransactionHandlerTest.php @@ -49,7 +49,7 @@ public static function providerForCachedLoadMethodsMiss(): array ]; } - public function testRollback() + public function testRollback(): void { $this->loggerMock ->expects(self::once()) @@ -77,7 +77,7 @@ public function testRollback() $handler->rollback(); } - public function testCommitStopsCacheTransaction() + public function testCommitStopsCacheTransaction(): void { $this->loggerMock ->expects(self::once()) @@ -101,7 +101,7 @@ public function testCommitStopsCacheTransaction() $handler->commit(); } - public function testBeginTransactionStartsCacheTransaction() + public function testBeginTransactionStartsCacheTransaction(): void { $this->loggerMock ->expects(self::once()) diff --git a/tests/lib/Persistence/Cache/TrashHandlerTest.php b/tests/lib/Persistence/Cache/TrashHandlerTest.php index 01b5066d75..b33718c347 100644 --- a/tests/lib/Persistence/Cache/TrashHandlerTest.php +++ b/tests/lib/Persistence/Cache/TrashHandlerTest.php @@ -56,7 +56,7 @@ public static function providerForCachedLoadMethodsMiss(): array ]; } - public function testRecover() + public function testRecover(): void { $originalLocationId = 6; $targetLocationId = 2; @@ -77,7 +77,7 @@ public function testRecover() $handler->recover($originalLocationId, $targetLocationId); } - public function testTrashSubtree() + public function testTrashSubtree(): void { $locationId = 6; $contentId = 42; @@ -177,7 +177,7 @@ private function setUpRoleAssignmentInvalidation(int $locationId, int $contentId return $innerHandler; } - public function testDeleteTrashItem() + public function testDeleteTrashItem(): void { $trashedId = 6; $contentId = 42; @@ -259,7 +259,7 @@ public function testDeleteTrashItem() $handler->deleteTrashItem($trashedId); } - public function testEmptyTrash() + public function testEmptyTrash(): void { $trashedId = 6; $contentId = 42; diff --git a/tests/lib/Persistence/Cache/URLHandlerTest.php b/tests/lib/Persistence/Cache/URLHandlerTest.php index 2204c728f6..585f18ffb0 100644 --- a/tests/lib/Persistence/Cache/URLHandlerTest.php +++ b/tests/lib/Persistence/Cache/URLHandlerTest.php @@ -144,7 +144,7 @@ public function testUpdateUrlWhenAddressIsUpdated(): void $handler->updateUrl($urlId, $updateStruct); } - public function testUpdateUrlStatusIsUpdated() + public function testUpdateUrlStatusIsUpdated(): void { $urlId = 1; $updateStruct = new URLUpdateStruct(); diff --git a/tests/lib/Persistence/Cache/UserHandlerTest.php b/tests/lib/Persistence/Cache/UserHandlerTest.php index 4244190415..62fdb726ae 100644 --- a/tests/lib/Persistence/Cache/UserHandlerTest.php +++ b/tests/lib/Persistence/Cache/UserHandlerTest.php @@ -467,7 +467,7 @@ public static function providerForCachedLoadMethodsMiss(): array ]; } - public function testPublishRoleDraftFromExistingRole() + public function testPublishRoleDraftFromExistingRole(): void { $this->loggerMock->expects(self::once())->method('logCall'); $innerHandlerMock = $this->createMock(SPIUserHandler::class); @@ -512,7 +512,7 @@ public function testPublishRoleDraftFromExistingRole() $handler->publishRoleDraft($roleDraftId); } - public function testPublishNewRoleDraft() + public function testPublishNewRoleDraft(): void { $this->loggerMock->expects(self::once())->method('logCall'); $innerHandlerMock = $this->createMock(SPIUserHandler::class); @@ -537,7 +537,7 @@ public function testPublishNewRoleDraft() $handler->publishRoleDraft($roleDraftId); } - public function testAssignRole() + public function testAssignRole(): void { $innerUserHandlerMock = $this->createMock(SPIUserHandler::class); $innerLocationHandlerMock = $this->createMock(SPILocationHandler::class); diff --git a/tests/lib/Persistence/FieldTypeRegistryTest.php b/tests/lib/Persistence/FieldTypeRegistryTest.php index 3af4a7e9eb..136eb5cca6 100644 --- a/tests/lib/Persistence/FieldTypeRegistryTest.php +++ b/tests/lib/Persistence/FieldTypeRegistryTest.php @@ -30,7 +30,7 @@ public function testConstructor(): void ); } - public function testGetFieldTypeInstance() + public function testGetFieldTypeInstance(): void { $instance = $this->getFieldTypeMock(); $registry = new FieldTypeRegistry([self::FIELD_TYPE_IDENTIFIER => $instance]); @@ -43,7 +43,7 @@ public function testGetFieldTypeInstance() /** * @since 5.3.2 */ - public function testGetNotFound() + public function testGetNotFound(): void { $this->expectException(FieldTypeNotFoundException::class); @@ -54,7 +54,7 @@ public function testGetNotFound() /** * BC with 5.0-5.3.2. */ - public function testGetNotFoundBCException() + public function testGetNotFoundBCException(): void { $this->expectException(\RuntimeException::class); @@ -62,7 +62,7 @@ public function testGetNotFoundBCException() $registry->getFieldType('not-found'); } - public function testGetNotInstance() + public function testGetNotInstance(): void { $this->expectException(\TypeError::class); @@ -70,7 +70,7 @@ public function testGetNotInstance() $registry->getFieldType(self::FIELD_TYPE_IDENTIFIER); } - public function testRegister() + public function testRegister(): void { $fieldType = $this->getFieldTypeMock(); $registry = new FieldTypeRegistry([]); diff --git a/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php index f56ba4f659..b7fb496b5b 100644 --- a/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Bookmark/Gateway/DoctrineDatabaseTest.php @@ -33,7 +33,7 @@ protected function setUp(): void $this->insertDatabaseFixture(__DIR__ . '/../_fixtures/bookmarks.php'); } - public function testInsertBookmark() + public function testInsertBookmark(): void { $id = $this->getGateway()->insertBookmark(new Bookmark([ 'userId' => 14, @@ -50,14 +50,14 @@ public function testInsertBookmark() ], $data); } - public function testDeleteBookmark() + public function testDeleteBookmark(): void { $this->getGateway()->deleteBookmark(self::EXISTING_BOOKMARK_ID); self::assertEmpty($this->loadBookmark(self::EXISTING_BOOKMARK_ID)); } - public function testLoadBookmarkDataById() + public function testLoadBookmarkDataById(): void { self::assertEquals( [self::EXISTING_BOOKMARK_DATA], @@ -65,7 +65,7 @@ public function testLoadBookmarkDataById() ); } - public function testLoadBookmarkDataByUserIdAndLocationId() + public function testLoadBookmarkDataByUserIdAndLocationId(): void { $data = $this->getGateway()->loadBookmarkDataByUserIdAndLocationId( (int) self::EXISTING_BOOKMARK_DATA['user_id'], @@ -76,13 +76,13 @@ public function testLoadBookmarkDataByUserIdAndLocationId() } #[DataProvider('dataProviderForLoadUserBookmarks')] - public function testLoadUserBookmarks(int $userId, int $offset, int $limit, array $expected) + public function testLoadUserBookmarks(int $userId, int $offset, int $limit, array $expected): void { self::assertEquals($expected, $this->getGateway()->loadUserBookmarks($userId, $offset, $limit)); } #[DataProvider('dataProviderForLoadUserBookmarks')] - public function testCountUserBookmarks(int $userId, int $offset, int $limit, array $expected) + public function testCountUserBookmarks(int $userId, int $offset, int $limit, array $expected): void { self::assertEquals(count($expected), $this->getGateway()->countUserBookmarks($userId)); } @@ -112,7 +112,7 @@ public static function dataProviderForLoadUserBookmarks(): array ]; } - public function testLocationSwapped() + public function testLocationSwapped(): void { $bookmark1Id = 3; $bookmark2Id = 4; diff --git a/tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php b/tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php index 1b9e0c99f6..9dd1c7cd69 100644 --- a/tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/Bookmark/HandlerTest.php @@ -35,7 +35,7 @@ protected function setUp(): void $this->handler = new Handler($this->gateway, $this->mapper); } - public function testCreate() + public function testCreate(): void { $createStruct = new CreateStruct([ 'locationId' => 54, @@ -64,7 +64,7 @@ public function testCreate() self::assertEquals($bookmark->id, self::BOOKMARK_ID); } - public function testDelete() + public function testDelete(): void { $this->gateway ->expects(self::once()) @@ -74,7 +74,7 @@ public function testDelete() $this->handler->delete(self::BOOKMARK_ID); } - public function testLoadByUserIdAndLocationIdExistingBookmark() + public function testLoadByUserIdAndLocationIdExistingBookmark(): void { $userId = 87; $locationId = 54; @@ -107,7 +107,7 @@ public function testLoadByUserIdAndLocationIdExistingBookmark() self::assertEquals([$locationId => $object], $this->handler->loadByUserIdAndLocationId($userId, [$locationId])); } - public function testLoadByUserIdAndLocationIdNonExistingBookmark() + public function testLoadByUserIdAndLocationIdNonExistingBookmark(): void { $userId = 87; $locationId = 54; @@ -127,7 +127,7 @@ public function testLoadByUserIdAndLocationIdNonExistingBookmark() self::assertEmpty($this->handler->loadByUserIdAndLocationId($userId, [$locationId])); } - public function testLoadUserBookmarks() + public function testLoadUserBookmarks(): void { $userId = 87; $offset = 50; @@ -176,7 +176,7 @@ public function testLoadUserBookmarks() self::assertEquals($objects, $this->handler->loadUserBookmarks($userId, $offset, $limit)); } - public function testLocationSwapped() + public function testLocationSwapped(): void { $location1Id = 1; $location2Id = 2; diff --git a/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php b/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php index 21676f991a..0123345df9 100644 --- a/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Bookmark/MapperTest.php @@ -25,7 +25,7 @@ protected function setUp(): void $this->mapper = new Mapper(); } - public function testCreateBookmarkFromCreateStruct() + public function testCreateBookmarkFromCreateStruct(): void { $createStruct = new CreateStruct([ 'locationId' => 54, @@ -38,7 +38,7 @@ public function testCreateBookmarkFromCreateStruct() ]), $this->mapper->createBookmarkFromCreateStruct($createStruct)); } - public function testExtractBookmarksFromRows() + public function testExtractBookmarksFromRows(): void { $rows = [ [ diff --git a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php index bf96f47b96..9bc5047b34 100644 --- a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php @@ -117,7 +117,7 @@ class ContentHandlerTest extends TestCase /** * @todo Current method way to complex to test, refactor! */ - public function testCreate() + public function testCreate(): void { $handler = $this->getContentHandler(); @@ -212,7 +212,7 @@ public function testCreate() ); } - public function testPublishFirstVersion() + public function testPublishFirstVersion(): void { $handler = $this->getPartlyMockedHandler(['loadVersionInfo']); @@ -289,7 +289,7 @@ public function testPublishFirstVersion() $handler->publish(23, 1, $metadataUpdateStruct); } - public function testPublish() + public function testPublish(): void { $handler = $this->getPartlyMockedHandler(['loadVersionInfo', 'setStatus']); @@ -372,7 +372,7 @@ public function testPublish() $handler->publish(23, 2, $metadataUpdateStruct); } - public function testCreateDraftFromVersion() + public function testCreateDraftFromVersion(): void { $handler = $this->getPartlyMockedHandler(['load']); @@ -469,7 +469,7 @@ public function testCreateDraftFromVersion() ); } - public function testLoad() + public function testLoad(): void { $handler = $this->getContentHandler(); @@ -514,7 +514,7 @@ public function testLoad() ); } - public function testLoadContentList() + public function testLoadContentList(): void { $handler = $this->getContentHandler(); @@ -573,7 +573,7 @@ public function testLoadContentList() ); } - public function testLoadContentInfoByRemoteId() + public function testLoadContentInfoByRemoteId(): void { $contentInfoData = [new ContentInfo()]; $this->getGatewayMock()->expects(self::once()) @@ -595,7 +595,7 @@ public function testLoadContentInfoByRemoteId() ); } - public function testLoadErrorNotFound() + public function testLoadErrorNotFound(): void { $this->expectException(NotFoundException::class); @@ -636,7 +636,7 @@ protected function getContentFixtureForDraft(int $id = 23, int $versionNo = 2) return $content; } - public function testUpdateContent() + public function testUpdateContent(): void { $handler = $this->getPartlyMockedHandler(['load', 'loadContentInfo']); @@ -737,7 +737,7 @@ public function testUpdateContent() ); } - public function testUpdateMetadata() + public function testUpdateMetadata(): void { $handler = $this->getPartlyMockedHandler(['load', 'loadContentInfo']); @@ -772,7 +772,7 @@ public function testUpdateMetadata() self::assertInstanceOf(ContentInfo::class, $resultContentInfo); } - public function testUpdateMetadataUpdatesPathIdentificationString() + public function testUpdateMetadataUpdatesPathIdentificationString(): void { $handler = $this->getPartlyMockedHandler(['load', 'loadContentInfo']); $locationGatewayMock = $this->getLocationGatewayMock(); @@ -895,7 +895,7 @@ public function testLoadRelationList(): void ); } - public function testLoadReverseRelations() + public function testLoadReverseRelations(): void { $handler = $this->getContentHandler(); @@ -924,7 +924,7 @@ public function testLoadReverseRelations() ); } - public function testAddRelation() + public function testAddRelation(): void { // expected relation object after creation $expectedRelationObject = new Relation(); @@ -968,7 +968,7 @@ public function testAddRelation() ); } - public function testRemoveRelation() + public function testRemoveRelation(): void { $gatewayMock = $this->getGatewayMock(); @@ -1027,7 +1027,7 @@ public function getCreateStructFixture() return $struct; } - public function testLoadDraftsForUser() + public function testLoadDraftsForUser(): void { $handler = $this->getContentHandler(); $rows = [['content_version_contentobject_id' => 42, 'content_version_version' => 2]]; @@ -1058,7 +1058,7 @@ public function testLoadDraftsForUser() ); } - public function testListVersions() + public function testListVersions(): void { $handler = $this->getContentHandler(); @@ -1078,7 +1078,7 @@ public function testListVersions() ); } - public function testRemoveRawContent() + public function testRemoveRawContent(): void { $handler = $this->getContentHandler(); $treeHandlerMock = $this->getTreeHandlerMock(); @@ -1094,7 +1094,7 @@ public function testRemoveRawContent() /** * Test for the deleteContent() method. */ - public function testDeleteContentWithLocations() + public function testDeleteContentWithLocations(): void { $handlerMock = $this->getPartlyMockedHandler([]); $gatewayMock = $this->getGatewayMock(); @@ -1119,7 +1119,7 @@ public function testDeleteContentWithLocations() /** * Test for the deleteContent() method. */ - public function testDeleteContentWithoutLocations() + public function testDeleteContentWithoutLocations(): void { $handlerMock = $this->getPartlyMockedHandler(['removeRawContent']); $gatewayMock = $this->getGatewayMock(); @@ -1135,7 +1135,7 @@ public function testDeleteContentWithoutLocations() $handlerMock->deleteContent(23); } - public function testDeleteVersion() + public function testDeleteVersion(): void { $handler = $this->getContentHandler(); @@ -1197,7 +1197,7 @@ public function testDeleteVersion() $handler->deleteVersion(225, 2); } - public function testCopySingleVersion() + public function testCopySingleVersion(): void { $handler = $this->getPartlyMockedHandler(['load', 'internalCreate']); $gatewayMock = $this->getGatewayMock(); @@ -1258,7 +1258,7 @@ public function testCopySingleVersion() ); } - public function testCopyAllVersions() + public function testCopyAllVersions(): void { $handler = $this->getPartlyMockedHandler( [ @@ -1412,7 +1412,7 @@ public function testCopyAllVersions() ); } - public function testCopyThrowsNotFoundExceptionContentNotFound() + public function testCopyThrowsNotFoundExceptionContentNotFound(): void { $this->expectException(NotFoundException::class); @@ -1430,7 +1430,7 @@ public function testCopyThrowsNotFoundExceptionContentNotFound() $handler->copy(23); } - public function testCopyThrowsNotFoundExceptionVersionNotFound() + public function testCopyThrowsNotFoundExceptionVersionNotFound(): void { $this->expectException(NotFoundException::class); @@ -1448,7 +1448,7 @@ public function testCopyThrowsNotFoundExceptionVersionNotFound() $result = $handler->copy(23, 32); } - public function testSetStatus() + public function testSetStatus(): void { $handler = $this->getContentHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php b/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php index 6a56ecf686..6dbc495ef8 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldHandlerTest.php @@ -134,7 +134,7 @@ protected function assertCreateNewFields($storageHandlerUpdatesFields = false) }); } - public function testCreateNewFields() + public function testCreateNewFields(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -152,7 +152,7 @@ public function testCreateNewFields() ); } - public function testCreateNewFieldsUpdatingStorageHandler() + public function testCreateNewFieldsUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $contentGatewayMock = $this->getContentGatewayMock(); @@ -225,7 +225,7 @@ protected function assertCreateNewFieldsForMainLanguage($storageHandlerUpdatesFi }); } - public function testCreateNewFieldsForMainLanguage() + public function testCreateNewFieldsForMainLanguage(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -243,7 +243,7 @@ public function testCreateNewFieldsForMainLanguage() ); } - public function testCreateNewFieldsForMainLanguageUpdatingStorageHandler() + public function testCreateNewFieldsForMainLanguageUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $contentGatewayMock = $this->getContentGatewayMock(); @@ -317,7 +317,7 @@ protected function assertCreateExistingFieldsInNewVersion($storageHandlerUpdates }); } - public function testCreateExistingFieldsInNewVersion() + public function testCreateExistingFieldsInNewVersion(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -332,7 +332,7 @@ public function testCreateExistingFieldsInNewVersion() $fieldHandler->createExistingFieldsInNewVersion($this->getContentFixture()); } - public function testCreateExistingFieldsInNewVersionUpdatingStorageHandler() + public function testCreateExistingFieldsInNewVersionUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $contentGatewayMock = $this->getContentGatewayMock(); @@ -453,7 +453,7 @@ public function testCreateExistingFieldsInNewVersionAllFieldsReferencedWhenEdite $fieldHandler->createExistingFieldsInNewVersion($content, 'ger-DE'); } - public function testLoadExternalFieldData() + public function testLoadExternalFieldData(): void { $fieldHandler = $this->getFieldHandler(); @@ -539,7 +539,7 @@ public function assertUpdateFieldsWithNewLanguage($storageHandlerUpdatesFields = }); } - public function testUpdateFieldsWithNewLanguage() + public function testUpdateFieldsWithNewLanguage(): void { $mapperMock = $this->getMapperMock(); $fieldHandler = $this->getFieldHandler(); @@ -571,7 +571,7 @@ public function testUpdateFieldsWithNewLanguage() ); } - public function testUpdateFieldsWithNewLanguageUpdatingStorageHandler() + public function testUpdateFieldsWithNewLanguageUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -673,7 +673,7 @@ public function assertUpdateFieldsExistingLanguages($storageHandlerUpdatesFields }); } - public function testUpdateFieldsExistingLanguages() + public function testUpdateFieldsExistingLanguages(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -700,7 +700,7 @@ public function testUpdateFieldsExistingLanguages() ); } - public function testUpdateFieldsExistingLanguagesUpdatingStorageHandler() + public function testUpdateFieldsExistingLanguagesUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -788,7 +788,7 @@ public function assertUpdateFieldsForInitialLanguage($storageHandlerUpdatesField }); } - public function testUpdateFieldsForInitialLanguage() + public function testUpdateFieldsForInitialLanguage(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -810,7 +810,7 @@ public function testUpdateFieldsForInitialLanguage() ); } - public function testUpdateFieldsForInitialLanguageUpdatingStorageHandler() + public function testUpdateFieldsForInitialLanguageUpdatingStorageHandler(): void { $fieldHandler = $this->getFieldHandler(); $mapperMock = $this->getMapperMock(); @@ -840,7 +840,7 @@ public function testUpdateFieldsForInitialLanguageUpdatingStorageHandler() ); } - public function testDeleteFields() + public function testDeleteFields(): void { $fieldHandler = $this->getFieldHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php index 635c541fec..3c544dc51d 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/AuthorTest.php @@ -48,7 +48,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = $this->authors; @@ -78,7 +78,7 @@ public function testToStorageValue() self::assertEmpty($this->authors, 'All authors have not been converted as expected'); } - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = <<data = true; @@ -45,7 +45,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('ibexa_boolean')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataInt = 1; @@ -60,7 +60,7 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('ibexa_boolean')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $defaultBool = false; $storageFieldDef = new StorageFieldDefinition(); @@ -81,7 +81,7 @@ public function testToStorageFieldDefinition() #[Group('fieldType')] #[Group('ibexa_boolean')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $defaultBool = true; $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php index 7789f88f99..b406e129f7 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/CountryTest.php @@ -31,7 +31,10 @@ protected function setUp(): void $this->converter = new CountryConverter(); } - public static function providerForTestToStorageValue() + /** + * @return array + */ + public static function providerForTestToStorageValue(): array { return [ [['BE', 'FR'], 'belgium,france', 'BE,FR', 'belgium,france'], @@ -42,7 +45,7 @@ public static function providerForTestToStorageValue() #[Group('fieldType')] #[Group('country')] #[DataProvider('providerForTestToStorageValue')] - public function testToStorageValue($data, $sortKey, $dataText, $sortKeyString) + public function testToStorageValue($data, $sortKey, $dataText, $sortKeyString): void { $value = new FieldValue(); $value->data = $data; @@ -54,7 +57,10 @@ public function testToStorageValue($data, $sortKey, $dataText, $sortKeyString) self::assertSame($sortKeyString, $storageFieldValue->sortKeyString); } - public static function providerForTestToFieldValue() + /** + * @return array + */ + public static function providerForTestToFieldValue(): array { return [ ['BE,FR', 'belgium,france', ['BE', 'FR']], @@ -65,7 +71,7 @@ public static function providerForTestToFieldValue() #[Group('fieldType')] #[Group('country')] #[DataProvider('providerForTestToFieldValue')] - public function testToFieldValue($dataText, $sortKeyString, $data) + public function testToFieldValue($dataText, $sortKeyString, $data): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = $dataText; @@ -78,7 +84,7 @@ public function testToFieldValue($dataText, $sortKeyString, $data) #[Group('fieldType')] #[Group('country')] - public function testToStorageFieldDefinitionMultiple() + public function testToStorageFieldDefinitionMultiple(): void { $defaultValue = new FieldValue(); $defaultValue->data = ['BE', 'FR']; @@ -111,7 +117,7 @@ public function testToStorageFieldDefinitionMultiple() #[Group('fieldType')] #[Group('country')] - public function testToStorageFieldDefinitionSingle() + public function testToStorageFieldDefinitionSingle(): void { $fieldTypeConstraints = new FieldTypeConstraints(); $fieldTypeConstraints->fieldSettings = new FieldSettings( @@ -140,7 +146,7 @@ public function testToStorageFieldDefinitionSingle() #[Group('fieldType')] #[Group('country')] - public function testToFieldDefinitionMultiple() + public function testToFieldDefinitionMultiple(): void { $fieldDef = new PersistenceFieldDefinition(); @@ -165,7 +171,7 @@ public function testToFieldDefinitionMultiple() #[Group('fieldType')] #[Group('country')] - public function testToFieldDefinitionSingle() + public function testToFieldDefinitionSingle(): void { $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php index 878ca69718..b7bd682cf9 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/DateAndTimeTest.php @@ -43,7 +43,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('dateTime')] - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = [ @@ -61,7 +61,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('dateTime')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataInt = $this->date->getTimestamp(); @@ -113,7 +113,7 @@ public function testToStorageValueNoTimestampKey(?array $data): void #[Group('fieldType')] #[Group('dateTime')] - public function testToStorageFieldDefinitionWithAdjustment() + public function testToStorageFieldDefinitionWithAdjustment(): void { $storageFieldDef = new StorageFieldDefinition(); $dateInterval = DateInterval::createFromDateString('+10 years, -1 month, +3 days, -13 hours'); @@ -152,7 +152,7 @@ public function testToStorageFieldDefinitionWithAdjustment() #[Group('fieldType')] #[Group('dateTime')] - public function testToStorageFieldDefinitionNoDefault() + public function testToStorageFieldDefinitionNoDefault(): void { $storageFieldDef = new StorageFieldDefinition(); $fieldTypeConstraints = new FieldTypeConstraints(); @@ -183,7 +183,7 @@ public function testToStorageFieldDefinitionNoDefault() #[Group('fieldType')] #[Group('dateTime')] - public function testToStorageFieldDefinitionCurrentDate() + public function testToStorageFieldDefinitionCurrentDate(): void { $storageFieldDef = new StorageFieldDefinition(); $fieldTypeConstraints = new FieldTypeConstraints(); @@ -231,7 +231,7 @@ private function getXMLToDateIntervalMap() #[Group('fieldType')] #[Group('dateTime')] - public function testToFieldDefinitionNoDefault() + public function testToFieldDefinitionNoDefault(): void { $fieldDef = new PersistenceFieldDefinition(); $storageDef = new StorageFieldDefinition( @@ -247,7 +247,7 @@ public function testToFieldDefinitionNoDefault() #[Group('fieldType')] #[Group('dateTime')] - public function testToFieldDefinitionCurrentDate() + public function testToFieldDefinitionCurrentDate(): void { $time = time(); $fieldDef = new PersistenceFieldDefinition(); @@ -270,7 +270,7 @@ public function testToFieldDefinitionCurrentDate() #[Group('fieldType')] #[Group('dateTime')] - public function testToFieldDefinitionWithAdjustmentAndSeconds() + public function testToFieldDefinitionWithAdjustmentAndSeconds(): void { $fieldDef = new PersistenceFieldDefinition(); $dateInterval = DateInterval::createFromDateString('2 years, 1 month, -4 days, 2 hours, 0 minute, 34 seconds'); @@ -299,7 +299,7 @@ public function testToFieldDefinitionWithAdjustmentAndSeconds() #[Group('fieldType')] #[Group('dateTime')] - public function testToFieldDefinitionWithAdjustmentNoSeconds() + public function testToFieldDefinitionWithAdjustmentNoSeconds(): void { $fieldDef = new PersistenceFieldDefinition(); $seconds = 34; @@ -354,7 +354,7 @@ private function getXMLStringFromDateInterval(DateInterval $dateInterval): strin #[Group('fieldType')] #[Group('dateTime')] - public function testGetDateIntervalFromXML() + public function testGetDateIntervalFromXML(): void { $dateIntervalReference = DateInterval::createFromDateString('2 years, 1 months, -4 days, 2 hours, 0 minutes, 34 seconds'); @@ -376,7 +376,7 @@ public function testGetDateIntervalFromXML() #[Group('fieldType')] #[Group('dateTime')] - public function testGenerateDateIntervalXML() + public function testGenerateDateIntervalXML(): void { $dateIntervalReference = DateInterval::createFromDateString('2 years, 1 month, -4 days, 2 hours, 0 minute, 34 seconds'); $dom = new DOMDocument(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php index 59d937fc3d..533b62ea18 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/ISBNTest.php @@ -26,7 +26,7 @@ protected function setUp(): void } #[DataProvider('providerForTestToFieldDefinition')] - public function testToFieldDefinition($dataInt, $excpectedIsbn13Value) + public function testToFieldDefinition($dataInt, $excpectedIsbn13Value): void { $fieldDef = new PersistenceFieldDefinition(); $storageDefinition = new StorageFieldDefinition([ @@ -40,7 +40,10 @@ public function testToFieldDefinition($dataInt, $excpectedIsbn13Value) self::assertSame($excpectedIsbn13Value, $fieldSettings['isISBN13']); } - public static function providerForTestToFieldDefinition() + /** + * @return array + */ + public static function providerForTestToFieldDefinition(): array { return [ [1, true], diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php index 34770679af..143a6836f7 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/KeywordTest.php @@ -30,7 +30,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('keyword')] - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = ['key1', 'key2']; @@ -47,7 +47,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('keyword')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $fieldValue = new FieldValue(); @@ -59,14 +59,14 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('keyword')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $this->converter->toStorageFieldDefinition(new PersistenceFieldDefinition(), new StorageFieldDefinition()); } #[Group('fieldType')] #[Group('keyword')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $this->converter->toFieldDefinition(new StorageFieldDefinition(), new PersistenceFieldDefinition()); } diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php index 50bf0727c1..cdeea5cf37 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/MediaTest.php @@ -29,7 +29,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('ibexa_media')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $storageFieldDef = new StorageFieldDefinition(); @@ -65,7 +65,7 @@ public function testToStorageFieldDefinition() #[Group('fieldType')] #[Group('ibexa_media')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $fieldDef = new PersistenceFieldDefinition(); $storageDef = new StorageFieldDefinition( diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php index 135c78a1fc..ab76508e52 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/RelationListTest.php @@ -36,7 +36,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('relationlist')] - public function testToStorageValue() + public function testToStorageValue(): void { $destinationContentIds = [3, 2, 1]; $fieldValue = new FieldValue(); @@ -103,7 +103,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('relationlist')] - public function testToStorageValueEmpty() + public function testToStorageValueEmpty(): void { $destinationContentIds = []; $fieldValue = new FieldValue(); @@ -135,7 +135,7 @@ public function testToStorageValueEmpty() #[Group('fieldType')] #[Group('relationlist')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->sortKeyString = ''; @@ -160,7 +160,7 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('relationlist')] - public function testToFieldValueEmpty() + public function testToFieldValueEmpty(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->sortKeyString = ''; @@ -185,7 +185,7 @@ public function testToFieldValueEmpty() #[Group('fieldType')] #[Group('relationlist')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $fieldDefinition = new PersistenceFieldDefinition( [ @@ -226,7 +226,7 @@ public function testToStorageFieldDefinition() #[Group('fieldType')] #[Group('relationlist')] - public function testToFieldDefinitionMultiple() + public function testToFieldDefinitionMultiple(): void { $storageFieldDefinition = new StorageFieldDefinition(); $storageFieldDefinition->dataText5 = <<data = [1, 3]; @@ -56,7 +56,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('selection')] - public function testToStorageValueEmpty() + public function testToStorageValueEmpty(): void { $fieldValue = new FieldValue(); $fieldValue->data = []; @@ -78,7 +78,7 @@ public function testToStorageValueEmpty() #[Group('fieldType')] #[Group('selection')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = '1-3'; @@ -100,7 +100,7 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('selection')] - public function testToFieldValueEmpty() + public function testToFieldValueEmpty(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = ''; @@ -122,7 +122,7 @@ public function testToFieldValueEmpty() #[Group('fieldType')] #[Group('selection')] - public function testToStorageFieldDefinitionMultiple() + public function testToStorageFieldDefinitionMultiple(): void { $fieldDefinition = new PersistenceFieldDefinition( [ @@ -160,7 +160,7 @@ public function testToStorageFieldDefinitionMultiple() #[Group('fieldType')] #[Group('selection')] - public function testToStorageFieldDefinitionSingle() + public function testToStorageFieldDefinitionSingle(): void { $fieldDefinition = new PersistenceFieldDefinition( [ @@ -196,7 +196,7 @@ public function testToStorageFieldDefinitionSingle() #[Group('fieldType')] #[Group('selection')] - public function testToFieldDefinitionMultiple() + public function testToFieldDefinitionMultiple(): void { $storageFieldDefinition = new StorageFieldDefinition(); $storageFieldDefinition->dataInt1 = 1; @@ -263,7 +263,7 @@ public function testToFieldDefinitionMultiple() #[Group('fieldType')] #[Group('selection')] - public function testToFieldDefinitionSingleEmpty() + public function testToFieldDefinitionSingleEmpty(): void { $storageFieldDefinition = new StorageFieldDefinition(); $storageFieldDefinition->dataInt1 = 0; diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php index fcd9549697..9ee635dc64 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextBlockTest.php @@ -43,7 +43,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('textBlock')] - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = $this->longText; @@ -58,7 +58,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('textBlock')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = $this->longText; @@ -72,7 +72,7 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('textBlock')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $storageFieldDef = new StorageFieldDefinition(); $fieldTypeConstraints = new FieldTypeConstraints(); @@ -97,7 +97,7 @@ public function testToStorageFieldDefinition() #[Group('fieldType')] #[Group('textBlock')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $fieldDef = new PersistenceFieldDefinition(); $storageDef = new StorageFieldDefinition( diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php index 89af58b6b5..8ceb20edfa 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TextLineTest.php @@ -32,7 +32,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('textLine')] - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = "He's holding a thermal detonator!"; @@ -47,7 +47,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('textLine')] - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataText = 'When 900 years old, you reach... Look as good, you will not.'; @@ -62,7 +62,7 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('textLine')] - public function testToStorageFieldDefinitionWithValidator() + public function testToStorageFieldDefinitionWithValidator(): void { $defaultText = 'This is a default text'; $storageFieldDef = new StorageFieldDefinition(); @@ -97,7 +97,7 @@ public function testToStorageFieldDefinitionWithValidator() #[Group('fieldType')] #[Group('textLine')] - public function testToStorageFieldDefinitionNoValidator() + public function testToStorageFieldDefinitionNoValidator(): void { $defaultText = 'This is a default text'; $storageFieldDef = new StorageFieldDefinition(); @@ -124,7 +124,7 @@ public function testToStorageFieldDefinitionNoValidator() #[Group('fieldType')] #[Group('textLine')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $defaultText = 'This is a default value'; $fieldDef = new PersistenceFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php index 341ac289d2..c7923438df 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/TimeTest.php @@ -39,7 +39,7 @@ protected function setUp(): void $this->time = 3661; } - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $value->data = $this->time; @@ -52,7 +52,7 @@ public function testToStorageValue() self::assertSame('', $storageFieldValue->sortKeyString); } - public function testToFieldValue() + public function testToFieldValue(): void { $storageFieldValue = new StorageFieldValue(); $storageFieldValue->dataInt = $this->time; @@ -66,7 +66,7 @@ public function testToFieldValue() self::assertSame($storageFieldValue->sortKeyInt, $fieldValue->sortKey); } - public function testToStorageFieldDefinitionDefaultEmpty() + public function testToStorageFieldDefinitionDefaultEmpty(): void { $storageFieldDef = new StorageFieldDefinition(); $fieldTypeConstraints = new FieldTypeConstraints(); @@ -87,7 +87,7 @@ public function testToStorageFieldDefinitionDefaultEmpty() self::assertSame(1, $storageFieldDef->dataInt2); } - public function testToStorageFieldDefinitionDefaultCurrentTime() + public function testToStorageFieldDefinitionDefaultCurrentTime(): void { $storageFieldDef = new StorageFieldDefinition(); $fieldTypeConstraints = new FieldTypeConstraints(); @@ -108,7 +108,7 @@ public function testToStorageFieldDefinitionDefaultCurrentTime() self::assertSame(0, $storageFieldDef->dataInt2); } - public function testToFieldDefinitionDefaultEmpty() + public function testToFieldDefinitionDefaultEmpty(): void { $fieldDef = new PersistenceFieldDefinition(); $storageDef = new StorageFieldDefinition( @@ -131,7 +131,7 @@ public function testToFieldDefinitionDefaultEmpty() ); } - public function testToFieldDefinitionDefaultCurrentTime() + public function testToFieldDefinitionDefaultCurrentTime(): void { $fieldDef = new PersistenceFieldDefinition(); $storageDef = new StorageFieldDefinition( diff --git a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php index b5faeb7219..8e5e7bdccd 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValue/Converter/UrlTest.php @@ -30,7 +30,7 @@ protected function setUp(): void #[Group('fieldType')] #[Group('url')] - public function testToStorageValue() + public function testToStorageValue(): void { $value = new FieldValue(); $text = 'Ibexa'; @@ -45,7 +45,7 @@ public function testToStorageValue() #[Group('fieldType')] #[Group('url')] - public function testToFieldValue() + public function testToFieldValue(): void { $text = "A link's text"; $urlId = 842; @@ -65,14 +65,14 @@ public function testToFieldValue() #[Group('fieldType')] #[Group('url')] - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $this->converter->toStorageFieldDefinition(new PersistenceFieldDefinition(), new StorageFieldDefinition()); } #[Group('fieldType')] #[Group('url')] - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $this->converter->toFieldDefinition(new StorageFieldDefinition(), new PersistenceFieldDefinition()); } diff --git a/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php b/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php index da1eea921f..8826f99a5b 100644 --- a/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php +++ b/tests/lib/Persistence/Legacy/Content/FieldValueConverterRegistryTest.php @@ -17,7 +17,7 @@ class FieldValueConverterRegistryTest extends TestCase { private const TYPE_NAME = 'some-type'; - public function testRegister() + public function testRegister(): void { $converter = $this->getFieldValueConverterMock(); $registry = new Registry([self::TYPE_NAME => $converter]); @@ -25,7 +25,7 @@ public function testRegister() self::assertSame($converter, $registry->getConverter(self::TYPE_NAME)); } - public function testGetStorage() + public function testGetStorage(): void { $converter = $this->getFieldValueConverterMock(); $registry = new Registry([self::TYPE_NAME => $converter]); @@ -38,7 +38,7 @@ public function testGetStorage() ); } - public function testGetNotFound() + public function testGetNotFound(): void { $this->expectException(Converter\Exception\NotFound::class); diff --git a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php index 52d1ce3edb..f95f16a903 100644 --- a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php @@ -37,7 +37,7 @@ class DoctrineDatabaseTest extends LanguageAwareTestCase /** * @todo Fix not available fields */ - public function testInsertContentObject() + public function testInsertContentObject(): void { $struct = $this->getCreateStructFixture(); @@ -161,7 +161,7 @@ protected function getVersionFixture() return $version; } - public function testInsertVersion() + public function testInsertVersion(): void { $version = $this->getVersionFixture(); @@ -200,7 +200,7 @@ public function testInsertVersion() ); } - public function testSetStatus() + public function testSetStatus(): void { $gateway = $this->getDatabaseGateway(); @@ -235,7 +235,7 @@ public function testSetStatus() ); } - public function testSetStatusPublished() + public function testSetStatusPublished(): void { $gateway = $this->getDatabaseGateway(); @@ -270,7 +270,7 @@ public function testSetStatusPublished() ); } - public function testSetStatusUnknownVersion() + public function testSetStatusUnknownVersion(): void { $gateway = $this->getDatabaseGateway(); @@ -279,7 +279,7 @@ public function testSetStatusUnknownVersion() ); } - public function testUpdateContent() + public function testUpdateContent(): void { $gateway = $this->getDatabaseGateway(); @@ -349,7 +349,7 @@ protected function getMetadataUpdateStructFixture() return $struct; } - public function testUpdateVersion() + public function testUpdateVersion(): void { $gateway = $this->getDatabaseGateway(); @@ -385,7 +385,7 @@ public function testUpdateVersion() ); } - public function testInsertNewField() + public function testInsertNewField(): void { $content = $this->getContentFixture(); $content->versionInfo->contentInfo->id = 2342; @@ -430,7 +430,7 @@ public function testInsertNewField() ); } - public function testInsertNewAlwaysAvailableField() + public function testInsertNewAlwaysAvailableField(): void { $content = $this->getContentFixture(); $content->versionInfo->contentInfo->id = 2342; @@ -477,7 +477,7 @@ public function testInsertNewAlwaysAvailableField() ); } - public function testUpdateField() + public function testUpdateField(): void { $content = $this->getContentFixture(); $content->versionInfo->contentInfo->id = 2342; @@ -522,7 +522,7 @@ public function testUpdateField() ); } - public function testUpdateNonTranslatableField() + public function testUpdateNonTranslatableField(): void { $content = $this->getContentFixture(); $content->versionInfo->contentInfo->id = 2342; @@ -610,7 +610,7 @@ public function testListVersions(): void ); } - public function testListVersionNumbers() + public function testListVersionNumbers(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -622,7 +622,7 @@ public function testListVersionNumbers() self::assertEquals([1, 2], $res); } - public function testListVersionsForUser() + public function testListVersionsForUser(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -661,7 +661,7 @@ public function testListVersionsForUser() ); } - public function testLoadWithAllTranslations() + public function testLoadWithAllTranslations(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -683,7 +683,7 @@ public function testLoadWithAllTranslations() ); } - public function testCreateFixtureForMapperExtractContentFromRowsMultipleVersions() + public function testCreateFixtureForMapperExtractContentFromRowsMultipleVersions(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -706,7 +706,7 @@ public function testCreateFixtureForMapperExtractContentFromRowsMultipleVersions self::assertEquals($orig, $res, 'Fixtures differ between what was previously stored(expected) and what it now generates(actual), this hints either some mistake in impl or that the fixture (../_fixtures/extract_content_from_rows_multiple_versions.php) and tests needs to be adapted.'); } - public function testCreateFixtureForMapperExtractContentFromRows() + public function testCreateFixtureForMapperExtractContentFromRows(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -726,7 +726,7 @@ public function testCreateFixtureForMapperExtractContentFromRows() self::assertEquals($orig, $res, 'Fixtures differ between what was previously stored(expected) and what it now generates(actual), this hints either some mistake in impl or that the fixture (../_fixtures/extract_content_from_rows.php) and tests needs to be adapted.'); } - public function testLoadWithSingleTranslation() + public function testLoadWithSingleTranslation(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -751,7 +751,7 @@ public function testLoadWithSingleTranslation() ); } - public function testLoadNonExistentTranslation() + public function testLoadNonExistentTranslation(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -794,7 +794,7 @@ protected function assertValuesInRows($columnKey, array $expectedValues, array $ ); } - public function testGetAllLocationIds() + public function testGetAllLocationIds(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -808,7 +808,7 @@ public function testGetAllLocationIds() ); } - public function testGetFieldIdsByType() + public function testGetFieldIdsByType(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -826,7 +826,7 @@ public function testGetFieldIdsByType() ); } - public function testGetFieldIdsByTypeWithSecondArgument() + public function testGetFieldIdsByTypeWithSecondArgument(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -842,7 +842,7 @@ public function testGetFieldIdsByTypeWithSecondArgument() ); } - public function testDeleteRelationsTo() + public function testDeleteRelationsTo(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -872,7 +872,7 @@ public function testDeleteRelationsTo() ); } - public function testDeleteRelationsFrom() + public function testDeleteRelationsFrom(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -901,7 +901,7 @@ public function testDeleteRelationsFrom() ); } - public function testDeleteRelationsWithSecondArgument() + public function testDeleteRelationsWithSecondArgument(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -958,7 +958,7 @@ public function testDeleteField(): void ); } - public function testDeleteFields() + public function testDeleteFields(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -984,7 +984,7 @@ public function testDeleteFields() ); } - public function testDeleteFieldsWithSecondArgument() + public function testDeleteFieldsWithSecondArgument(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1010,7 +1010,7 @@ public function testDeleteFieldsWithSecondArgument() ); } - public function testDeleteVersions() + public function testDeleteVersions(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1036,7 +1036,7 @@ public function testDeleteVersions() ); } - public function testDeleteVersionsWithSecondArgument() + public function testDeleteVersionsWithSecondArgument(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1065,7 +1065,7 @@ public function testDeleteVersionsWithSecondArgument() /** * @throws \Exception */ - public function testSetName() + public function testSetName(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1097,7 +1097,7 @@ public function testSetName() ); } - public function testDeleteNames() + public function testDeleteNames(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1123,7 +1123,7 @@ public function testDeleteNames() ); } - public function testDeleteNamesWithSecondArgument() + public function testDeleteNamesWithSecondArgument(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1149,7 +1149,7 @@ public function testDeleteNamesWithSecondArgument() ); } - public function testDeleteContent() + public function testDeleteContent(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1229,7 +1229,7 @@ public function testLoadRelations(): void ); } - public function testLoadRelationsByType() + public function testLoadRelationsByType(): void { $this->insertRelationFixture(); @@ -1252,7 +1252,7 @@ public function testLoadRelationsByType() ); } - public function testLoadRelationsByVersion() + public function testLoadRelationsByVersion(): void { $this->insertRelationFixture(); @@ -1269,7 +1269,7 @@ public function testLoadRelationsByVersion() ); } - public function testLoadRelationsNoResult() + public function testLoadRelationsNoResult(): void { $this->insertRelationFixture(); @@ -1280,7 +1280,7 @@ public function testLoadRelationsNoResult() self::assertCount(0, $relations, 'Expecting no relation to be loaded'); } - public function testLoadReverseRelations() + public function testLoadReverseRelations(): void { $this->insertRelationFixture(); @@ -1297,7 +1297,7 @@ public function testLoadReverseRelations() ); } - public function testLoadReverseRelationsWithType() + public function testLoadReverseRelationsWithType(): void { $this->insertRelationFixture(); @@ -1330,7 +1330,7 @@ protected function insertRelationFixture() ); } - public function testGetLastVersionNumber() + public function testGetLastVersionNumber(): void { $this->insertDatabaseFixture( __DIR__ . '/../_fixtures/contentobjects.php' @@ -1344,7 +1344,7 @@ public function testGetLastVersionNumber() ); } - public function testInsertRelation() + public function testInsertRelation(): void { $struct = $this->getRelationCreateStructFixture(); $gateway = $this->getDatabaseGateway(); @@ -1376,7 +1376,7 @@ public function testInsertRelation() ); } - public function testDeleteRelation() + public function testDeleteRelation(): void { $this->insertRelationFixture(); diff --git a/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php index 9297e0e998..b5bed5210d 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/CachingLanguageHandlerTest.php @@ -45,7 +45,7 @@ class CachingLanguageHandlerTest extends TestCase /** @var \Ibexa\Core\Persistence\Cache\Identifier\CacheIdentifierGeneratorInterface */ protected $cacheIdentifierGeneratorMock; - public function testCreate() + public function testCreate(): void { $handler = $this->getLanguageHandler(); $innerHandlerMock = $this->getInnerLanguageHandlerMock(); @@ -99,7 +99,7 @@ protected function getLanguageFixture() return $language; } - public function testUpdate() + public function testUpdate(): void { $handler = $this->getLanguageHandler(); @@ -118,7 +118,7 @@ public function testUpdate() $handler->update($languageFixture); } - public function testLoad() + public function testLoad(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); @@ -142,7 +142,7 @@ public function testLoad() ); } - public function testLoadFailure() + public function testLoadFailure(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); @@ -172,7 +172,7 @@ public function testLoadFailure() $handler->load(2); } - public function testLoadByLanguageCode() + public function testLoadByLanguageCode(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); @@ -196,7 +196,7 @@ public function testLoadByLanguageCode() ); } - public function testLoadByLanguageCodeFailure() + public function testLoadByLanguageCodeFailure(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); @@ -226,7 +226,7 @@ public function testLoadByLanguageCodeFailure() $handler->loadByLanguageCode('eng-US'); } - public function testLoadAll() + public function testLoadAll(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); @@ -247,7 +247,7 @@ public function testLoadAll() self::assertIsArray($result); } - public function testDelete() + public function testDelete(): void { $handler = $this->getLanguageHandler(); $cacheMock = $this->getLanguageCacheMock(); diff --git a/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php index 02e803e263..80f7edec92 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/Gateway/DoctrineDatabaseTest.php @@ -35,7 +35,7 @@ protected function setUp(): void ); } - public function testInsertLanguage() + public function testInsertLanguage(): void { $gateway = $this->getDatabaseGateway(); @@ -73,7 +73,7 @@ protected function getLanguageFixture() return $language; } - public function testUpdateLanguage() + public function testUpdateLanguage(): void { $gateway = $this->getDatabaseGateway(); @@ -98,7 +98,7 @@ public function testUpdateLanguage() ); } - public function testLoadLanguageListData() + public function testLoadLanguageListData(): void { $gateway = $this->getDatabaseGateway(); @@ -117,7 +117,7 @@ public function testLoadLanguageListData() ); } - public function testLoadAllLanguagesData() + public function testLoadAllLanguagesData(): void { $gateway = $this->getDatabaseGateway(); @@ -142,7 +142,7 @@ public function testLoadAllLanguagesData() ); } - public function testDeleteLanguage() + public function testDeleteLanguage(): void { $gateway = $this->getDatabaseGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php index 8eaefac6d3..d7866b68f2 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/LanguageHandlerTest.php @@ -40,7 +40,7 @@ class LanguageHandlerTest extends TestCase */ protected $mapperMock; - public function testCreate() + public function testCreate(): void { $handler = $this->getLanguageHandler(); @@ -86,7 +86,7 @@ protected function getCreateStructFixture() return new Language\CreateStruct(); } - public function testUpdate() + public function testUpdate(): void { $handler = $this->getLanguageHandler(); @@ -108,7 +108,7 @@ protected function getLanguageFixture() return new Language(); } - public function testLoad() + public function testLoad(): void { $handler = $this->getLanguageHandler(); $mapperMock = $this->getMapperMock(); @@ -132,7 +132,7 @@ public function testLoad() ); } - public function testLoadFailure() + public function testLoadFailure(): void { $this->expectException(NotFoundException::class); @@ -154,7 +154,7 @@ public function testLoadFailure() $result = $handler->load(2); } - public function testLoadByLanguageCode() + public function testLoadByLanguageCode(): void { $handler = $this->getLanguageHandler(); $mapperMock = $this->getMapperMock(); @@ -178,7 +178,7 @@ public function testLoadByLanguageCode() ); } - public function testLoadByLanguageCodeFailure() + public function testLoadByLanguageCodeFailure(): void { $this->expectException(NotFoundException::class); @@ -200,7 +200,7 @@ public function testLoadByLanguageCodeFailure() $result = $handler->loadByLanguageCode('eng-US'); } - public function testLoadAll() + public function testLoadAll(): void { $handler = $this->getLanguageHandler(); $mapperMock = $this->getMapperMock(); @@ -222,7 +222,7 @@ public function testLoadAll() ); } - public function testDeleteSuccess() + public function testDeleteSuccess(): void { $handler = $this->getLanguageHandler(); $gatewayMock = $this->getGatewayMock(); @@ -238,7 +238,7 @@ public function testDeleteSuccess() $result = $handler->delete(2); } - public function testDeleteFail() + public function testDeleteFail(): void { $this->expectException(\LogicException::class); diff --git a/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php index 7d7ce7ddf6..9960215490 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/MapperTest.php @@ -16,7 +16,7 @@ #[CoversClass(Mapper::class)] class MapperTest extends TestCase { - public function testCreateLanguageFromCreateStruct() + public function testCreateLanguageFromCreateStruct(): void { $mapper = new Mapper(); @@ -31,7 +31,7 @@ public function testCreateLanguageFromCreateStruct() ); } - public function testExtractLanguagesFromRows() + public function testExtractLanguagesFromRows(): void { $mapper = new Mapper(); diff --git a/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php b/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php index 4eeb0543d8..1d103d80a0 100644 --- a/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php +++ b/tests/lib/Persistence/Legacy/Content/Language/MaskGeneratorTest.php @@ -75,7 +75,7 @@ public function testGenerateLanguageIndicator( $languageCode, $alwaysAvailable, $expectedIndicator - ) { + ): void { $generator = $this->getMaskGenerator(); self::assertSame( @@ -89,7 +89,7 @@ public function testGenerateLanguageIndicator( * * @return array */ - public static function getLanguageIndicatorData() + public static function getLanguageIndicatorData(): array { return [ 'not_available' => [ @@ -105,7 +105,7 @@ public static function getLanguageIndicatorData() ]; } - public function testIsLanguageAlwaysAvailable() + public function testIsLanguageAlwaysAvailable(): void { $generator = $this->getMaskGenerator(); @@ -120,7 +120,7 @@ public function testIsLanguageAlwaysAvailable() ); } - public function testIsLanguageAlwaysAvailableOtherLanguage() + public function testIsLanguageAlwaysAvailableOtherLanguage(): void { $generator = $this->getMaskGenerator(); @@ -135,7 +135,7 @@ public function testIsLanguageAlwaysAvailableOtherLanguage() ); } - public function testIsLanguageAlwaysAvailableNoDefault() + public function testIsLanguageAlwaysAvailableNoDefault(): void { $generator = $this->getMaskGenerator(); @@ -154,7 +154,7 @@ public function testIsLanguageAlwaysAvailableNoDefault() * @param bool $expectedResult */ #[DataProvider('isAlwaysAvailableProvider')] - public function testIsAlwaysAvailable($langMask, $expectedResult) + public function testIsAlwaysAvailable($langMask, $expectedResult): void { $generator = $this->getMaskGenerator(); self::assertSame($expectedResult, $generator->isAlwaysAvailable($langMask)); @@ -165,7 +165,7 @@ public function testIsAlwaysAvailable($langMask, $expectedResult) * * @return array */ - public static function isAlwaysAvailableProvider() + public static function isAlwaysAvailableProvider(): array { return [ [2, false], @@ -177,7 +177,7 @@ public static function isAlwaysAvailableProvider() } #[DataProvider('removeAlwaysAvailableFlagProvider')] - public function testRemoveAlwaysAvailableFlag($langMask, $expectedResult) + public function testRemoveAlwaysAvailableFlag($langMask, $expectedResult): void { $generator = $this->getMaskGenerator(); self::assertSame($expectedResult, $generator->removeAlwaysAvailableFlag($langMask)); @@ -188,7 +188,7 @@ public function testRemoveAlwaysAvailableFlag($langMask, $expectedResult) * * @return array */ - public static function removeAlwaysAvailableFlagProvider() + public static function removeAlwaysAvailableFlagProvider(): array { return [ [3, 2], @@ -203,7 +203,7 @@ public static function removeAlwaysAvailableFlagProvider() * @param array $expectedResult */ #[DataProvider('languageIdsFromMaskProvider')] - public function testExtractLanguageIdsFromMask($langMask, array $expectedResult) + public function testExtractLanguageIdsFromMask($langMask, array $expectedResult): void { $generator = $this->getMaskGenerator(); self::assertSame($expectedResult, $generator->extractLanguageIdsFromMask($langMask)); @@ -214,7 +214,7 @@ public function testExtractLanguageIdsFromMask($langMask, array $expectedResult) * * @return array */ - public static function languageIdsFromMaskProvider() + public static function languageIdsFromMaskProvider(): array { return [ [ diff --git a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php index 57464531a8..2ff5d41cb0 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTest.php @@ -66,7 +66,7 @@ private function assertLoadLocationProperties(array $locationData): void } } - public function testLoadLocationByRemoteId() + public function testLoadLocationByRemoteId(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -75,7 +75,7 @@ public function testLoadLocationByRemoteId() self::assertLoadLocationProperties($data); } - public function testLoadLocation() + public function testLoadLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -84,7 +84,7 @@ public function testLoadLocation() self::assertLoadLocationProperties($data); } - public function testLoadLocationList() + public function testLoadLocationList(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -97,7 +97,7 @@ public function testLoadLocationList() self::assertLoadLocationProperties($locationRow); } - public function testLoadInvalidLocation() + public function testLoadInvalidLocation(): void { $this->expectException(NotFoundException::class); @@ -106,7 +106,7 @@ public function testLoadInvalidLocation() $gateway->getBasicNodeData(1337); } - public function testLoadLocationDataByContent() + public function testLoadLocationDataByContent(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -121,7 +121,7 @@ public function testLoadLocationDataByContent() self::assertLoadLocationProperties($locationRow); } - public function testLoadParentLocationDataForDraftContentAll() + public function testLoadParentLocationDataForDraftContentAll(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -136,7 +136,7 @@ public function testLoadParentLocationDataForDraftContentAll() self::assertLoadLocationProperties($locationRow); } - public function testLoadLocationDataByContentLimitSubtree() + public function testLoadLocationDataByContentLimitSubtree(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -147,7 +147,7 @@ public function testLoadLocationDataByContentLimitSubtree() self::assertCount(0, $locationsData); } - public function testMoveSubtreePathUpdate() + public function testMoveSubtreePathUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -192,7 +192,7 @@ public function testMoveSubtreePathUpdate() ); } - public function testMoveHiddenDestinationUpdate() + public function testMoveHiddenDestinationUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -238,7 +238,7 @@ public function testMoveHiddenDestinationUpdate() ); } - public function testMoveHiddenSourceUpdate() + public function testMoveHiddenSourceUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -284,7 +284,7 @@ public function testMoveHiddenSourceUpdate() ); } - public function testMoveHiddenSourceChildUpdate() + public function testMoveHiddenSourceChildUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -335,7 +335,7 @@ public function testMoveHiddenSourceChildUpdate() /** * @throws \Exception */ - public function testMoveSubtreeAssignmentUpdate() + public function testMoveSubtreeAssignmentUpdate(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -367,7 +367,7 @@ public function testMoveSubtreeAssignmentUpdate() ); } - public function testHideUpdateHidden() + public function testHideUpdateHidden(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -390,7 +390,7 @@ public function testHideUpdateHidden() } #[Depends('testHideUpdateHidden')] - public function testHideUnhideUpdateHidden() + public function testHideUnhideUpdateHidden(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -414,7 +414,7 @@ public function testHideUnhideUpdateHidden() } #[Depends('testHideUpdateHidden')] - public function testHideUnhideParentTree() + public function testHideUnhideParentTree(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -441,7 +441,7 @@ public function testHideUnhideParentTree() } #[Depends('testHideUpdateHidden')] - public function testHideUnhidePartialSubtree() + public function testHideUnhidePartialSubtree(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -467,7 +467,7 @@ public function testHideUnhidePartialSubtree() ); } - public function testSwapLocations() + public function testSwapLocations(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -487,7 +487,7 @@ public function testSwapLocations() ); } - public function testCreateLocation() + public function testCreateLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -521,7 +521,7 @@ public function testCreateLocation() } #[Depends('testCreateLocation')] - public function testGetMainNodeId() + public function testGetMainNodeId(): void { $gateway = $this->getLocationGateway(); @@ -563,7 +563,10 @@ public function testGetMainNodeId() self::assertEquals($mainLocation->id, $res = $methodReflection->invoke($gateway, 68)); } - public static function getCreateLocationValues() + /** + * @return array + */ + public static function getCreateLocationValues(): array { return [ ['contentobject_id', 68], @@ -584,7 +587,7 @@ public static function getCreateLocationValues() #[Depends('testCreateLocation')] #[DataProvider('getCreateLocationValues')] - public function testCreateLocationValues($field, $value) + public function testCreateLocationValues($field, $value): void { if ($value === null) { self::markTestIncomplete('Proper value setting yet unknown.'); @@ -621,7 +624,10 @@ public function testCreateLocationValues($field, $value) ); } - public static function getCreateLocationReturnValues() + /** + * @return array + */ + public static function getCreateLocationReturnValues(): array { return [ ['id', 228], @@ -640,7 +646,7 @@ public static function getCreateLocationReturnValues() #[Depends('testCreateLocation')] #[DataProvider('getCreateLocationReturnValues')] - public function testCreateLocationReturnValues($field, $value) + public function testCreateLocationReturnValues($field, $value): void { if ($value === null) { self::markTestIncomplete('Proper value setting yet unknown.'); @@ -671,7 +677,10 @@ public function testCreateLocationReturnValues($field, $value) self::assertEquals($value, $location->$field); } - public static function getUpdateLocationData() + /** + * @return array + */ + public static function getUpdateLocationData(): array { return [ ['priority', 23], @@ -682,7 +691,7 @@ public static function getUpdateLocationData() } #[DataProvider('getUpdateLocationData')] - public function testUpdateLocation($field, $value) + public function testUpdateLocation($field, $value): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -708,7 +717,10 @@ public function testUpdateLocation($field, $value) ); } - public static function getNodeAssignmentValues() + /** + * @return array + */ + public static function getNodeAssignmentValues(): array { return [ ['contentobject_version', [1]], @@ -789,7 +801,7 @@ private function buildContentTreeSelectContentWithParentQuery( */ #[Depends('testCreateLocation')] #[DataProvider('getNodeAssignmentValues')] - public function testCreateLocationNodeAssignmentCreation(string $field, array $expectedResult) + public function testCreateLocationNodeAssignmentCreation(string $field, array $expectedResult): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -817,7 +829,7 @@ public function testCreateLocationNodeAssignmentCreation(string $field, array $e } #[Depends('testCreateLocation')] - public function testCreateLocationNodeAssignmentCreationMainLocation() + public function testCreateLocationNodeAssignmentCreationMainLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -843,7 +855,7 @@ public function testCreateLocationNodeAssignmentCreationMainLocation() ); } - public function testUpdateLocationsContentVersionNo() + public function testUpdateLocationsContentVersionNo(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -883,7 +895,7 @@ public function testUpdateLocationsContentVersionNo() ); } - public function testDeleteNodeAssignment() + public function testDeleteNodeAssignment(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -902,7 +914,7 @@ public function testDeleteNodeAssignment() ); } - public function testDeleteNodeAssignmentWithSecondArgument() + public function testDeleteNodeAssignmentWithSecondArgument(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); @@ -931,7 +943,10 @@ public function testDeleteNodeAssignmentWithSecondArgument() ); } - public static function getConvertNodeAssignmentsLocationValues() + /** + * @return array + */ + public static function getConvertNodeAssignmentsLocationValues(): array { return [ ['contentobject_id', '68'], @@ -954,7 +969,7 @@ public static function getConvertNodeAssignmentsLocationValues() #[Depends('testCreateLocationNodeAssignmentCreation')] #[DataProvider('getConvertNodeAssignmentsLocationValues')] - public function testConvertNodeAssignments($field, $value) + public function testConvertNodeAssignments($field, $value): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1012,7 +1027,7 @@ public function testConvertNodeAssignments($field, $value) } #[Depends('testCreateLocationNodeAssignmentCreation')] - public function testConvertNodeAssignmentsMainLocation() + public function testConvertNodeAssignmentsMainLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1046,7 +1061,7 @@ public function testConvertNodeAssignmentsMainLocation() } #[Depends('testCreateLocationNodeAssignmentCreation')] - public function testConvertNodeAssignmentsParentHidden() + public function testConvertNodeAssignmentsParentHidden(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1084,7 +1099,7 @@ public function testConvertNodeAssignmentsParentHidden() } #[Depends('testCreateLocationNodeAssignmentCreation')] - public function testConvertNodeAssignmentsParentInvisible() + public function testConvertNodeAssignmentsParentInvisible(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1122,7 +1137,7 @@ public function testConvertNodeAssignmentsParentInvisible() } #[Depends('testCreateLocationNodeAssignmentCreation')] - public function testConvertNodeAssignmentsUpdateAssignment() + public function testConvertNodeAssignmentsUpdateAssignment(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1154,7 +1169,7 @@ public function testConvertNodeAssignmentsUpdateAssignment() /** * Test for the setSectionForSubtree() method. */ - public function testSetSectionForSubtree() + public function testSetSectionForSubtree(): void { $this->insertDatabaseFixture(__DIR__ . '/../../_fixtures/contentobjects.php'); $gateway = $this->getLocationGateway(); @@ -1178,7 +1193,7 @@ public function testSetSectionForSubtree() * * @throws \Doctrine\DBAL\Exception */ - public function testChangeMainLocation() + public function testChangeMainLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); // Create additional location and assignment for test purpose @@ -1313,7 +1328,7 @@ public function testChangeMainLocation() /** * Test for the getChildren() method. */ - public function testGetChildren() + public function testGetChildren(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1377,7 +1392,7 @@ public function testGetFallbackMainNodeData(): void /** * Test for the removeLocation() method. */ - public function testRemoveLocation() + public function testRemoveLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); @@ -1392,7 +1407,10 @@ public function testRemoveLocation() } } - public static function providerForTestUpdatePathIdentificationString() + /** + * @return array + */ + public static function providerForTestUpdatePathIdentificationString(): array { return [ [77, 2, 'new_solutions', 'new_solutions'], @@ -1409,7 +1427,7 @@ public function testUpdatePathIdentificationString( $parentLocationId, $text, $expected - ) { + ): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $gateway = $this->getLocationGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php index 79f4cd387f..fc2bcc5842 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/Gateway/DoctrineDatabaseTrashTest.php @@ -34,7 +34,7 @@ protected function getLocationGateway() /** * @todo test updated content status */ - public function testTrashLocation() + public function testTrashLocation(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -55,7 +55,7 @@ public function testTrashLocation() ); } - public function testTrashLocationUpdateTrashTable() + public function testTrashLocationUpdateTrashTable(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -72,7 +72,10 @@ public function testTrashLocationUpdateTrashTable() ); } - public static function getUntrashedLocationValues() + /** + * @return array + */ + public static function getUntrashedLocationValues(): array { return [ ['contentobject_is_published', 1], @@ -93,7 +96,7 @@ public static function getUntrashedLocationValues() } #[DataProvider('getUntrashedLocationValues')] - public function testUntrashLocationDefault($property, $value) + public function testUntrashLocationDefault($property, $value): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -111,7 +114,7 @@ public function testUntrashLocationDefault($property, $value) ); } - public function testUntrashLocationNewParent() + public function testUntrashLocationNewParent(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -129,7 +132,7 @@ public function testUntrashLocationNewParent() ); } - public function testUntrashInvalidLocation() + public function testUntrashInvalidLocation(): void { $this->expectException(NotFoundException::class); @@ -139,7 +142,7 @@ public function testUntrashInvalidLocation() $handler->untrashLocation(23); } - public function testUntrashLocationInvalidParent() + public function testUntrashLocationInvalidParent(): void { $this->expectException(NotFoundException::class); @@ -150,7 +153,7 @@ public function testUntrashLocationInvalidParent() $handler->untrashLocation(71, 1337); } - public function testUntrashLocationInvalidOldParent() + public function testUntrashLocationInvalidOldParent(): void { $this->expectException(NotFoundException::class); @@ -163,7 +166,10 @@ public function testUntrashLocationInvalidOldParent() $handler->untrashLocation(71); } - public static function getLoadTrashValues() + /** + * @return array + */ + public static function getLoadTrashValues(): array { return [ ['node_id', 71], @@ -184,7 +190,7 @@ public static function getLoadTrashValues() } #[DataProvider('getLoadTrashValues')] - public function testLoadTrashByLocationId($field, $value) + public function testLoadTrashByLocationId($field, $value): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -199,7 +205,7 @@ public function testLoadTrashByLocationId($field, $value) ); } - public function testCountTrashed() + public function testCountTrashed(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -217,7 +223,7 @@ public function testCountTrashed() ); } - public function testListEmptyTrash() + public function testListEmptyTrash(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -241,7 +247,7 @@ protected function trashSubtree() $handler->trashLocation(76); } - public function testListFullTrash() + public function testListFullTrash(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -253,7 +259,7 @@ public function testListFullTrash() ); } - public function testListTrashLimited() + public function testListTrashLimited(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -265,7 +271,10 @@ public function testListTrashLimited() ); } - public static function getTrashValues() + /** + * @return array + */ + public static function getTrashValues(): array { return [ ['contentobject_id', 67], @@ -287,7 +296,7 @@ public static function getTrashValues() } #[DataProvider('getTrashValues')] - public function testListTrashItem($key, $value) + public function testListTrashItem($key, $value): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -297,7 +306,7 @@ public function testListTrashItem($key, $value) self::assertEquals($value, $trashList[0][$key]); } - public function testListTrashSortedPathStringDesc() + public function testListTrashSortedPathStringDesc(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -329,7 +338,7 @@ static function ($trashItem) { ); } - public function testListTrashSortedDepth() + public function testListTrashSortedDepth(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -362,7 +371,7 @@ static function ($trashItem) { ); } - public function testCleanupTrash() + public function testCleanupTrash(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -378,7 +387,7 @@ public function testCleanupTrash() ); } - public function testRemoveElementFromTrash() + public function testRemoveElementFromTrash(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); @@ -395,7 +404,7 @@ public function testRemoveElementFromTrash() ); } - public function testCountLocationsByContentId() + public function testCountLocationsByContentId(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/full_example_tree.php'); $handler = $this->getLocationGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php index 9235ec0345..e379181e6f 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/MapperTest.php @@ -74,7 +74,7 @@ class MapperTest extends TestCase 'sortOrder' => 1, ]; - public function testCreateLocationFromRow() + public function testCreateLocationFromRow(): void { $mapper = new Mapper(); @@ -88,7 +88,7 @@ public function testCreateLocationFromRow() ); } - public function testCreateLocationsFromRows() + public function testCreateLocationsFromRows(): void { $inputRows = []; for ($i = 0; $i < 3; ++$i) { @@ -110,7 +110,7 @@ public function testCreateLocationsFromRows() } } - public function testCreateTrashedFromRow() + public function testCreateTrashedFromRow(): void { $mapper = new Mapper(); @@ -127,7 +127,7 @@ public function testCreateTrashedFromRow() ); } - public function testCreateLocationFromRowWithPrefix() + public function testCreateLocationFromRowWithPrefix(): void { $prefix = 'some_prefix_'; @@ -146,7 +146,7 @@ public function testCreateLocationFromRowWithPrefix() ); } - public function testGetLocationCreateStruct() + public function testGetLocationCreateStruct(): void { $mapper = new Mapper(); diff --git a/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php index bcd5bab08a..130fa96d08 100644 --- a/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Location/TrashHandlerTest.php @@ -57,7 +57,7 @@ protected function getTrashHandler() ); } - public function testTrashSubtree() + public function testTrashSubtree(): void { $handler = $this->getTrashHandler(); @@ -127,7 +127,7 @@ public function testTrashSubtree() self::assertSame(20, $trashedObject->id); } - public function testTrashSubtreeReturnsNull() + public function testTrashSubtreeReturnsNull(): void { $handler = $this->getTrashHandler(); @@ -184,7 +184,7 @@ public function testTrashSubtreeReturnsNull() self::assertNull($returnValue); } - public function testTrashSubtreeUpdatesMainLocation() + public function testTrashSubtreeUpdatesMainLocation(): void { $handler = $this->getTrashHandler(); @@ -273,7 +273,7 @@ public function testTrashSubtreeUpdatesMainLocation() self::assertSame(20, $trashedObject->id); } - public function testRecover() + public function testRecover(): void { $handler = $this->getTrashHandler(); @@ -290,7 +290,7 @@ public function testRecover() self::assertSame(70, $handler->recover(69, 23)); } - public function testLoadTrashItem() + public function testLoadTrashItem(): void { $handler = $this->getTrashHandler(); @@ -471,7 +471,7 @@ public function testDeleteTrashItemNoMoreLocations(): void self::assertTrue($trashItemDeleteResult->contentRemoved); } - public function testDeleteTrashItemStillHaveLocations() + public function testDeleteTrashItemStillHaveLocations(): void { $handler = $this->getTrashHandler(); @@ -529,7 +529,7 @@ public function testDeleteTrashItemStillHaveLocations() self::assertFalse($trashItemDeleteResult->contentRemoved); } - public function testFindTrashItemsWhenEmpty() + public function testFindTrashItemsWhenEmpty(): void { $handler = $this->getTrashHandler(); @@ -556,7 +556,7 @@ public function testFindTrashItemsWhenEmpty() self::assertCount(0, $trashResult);// Can't assert as empty, however we can count it. } - public function testFindTrashItemsWithLimits() + public function testFindTrashItemsWithLimits(): void { $handler = $this->getTrashHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php index 465cf08aee..b6e083dbe0 100644 --- a/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/LocationHandlerTest.php @@ -85,7 +85,7 @@ protected function getLocationHandler() ); } - public function testLoadLocation() + public function testLoadLocation(): void { $handler = $this->getLocationHandler(); @@ -100,7 +100,7 @@ public function testLoadLocation() self::assertInstanceOf(Location::class, $location); } - public function testLoadLocationSubtree() + public function testLoadLocationSubtree(): void { $this->locationGateway ->expects(self::once()) @@ -116,7 +116,7 @@ public function testLoadLocationSubtree() self::assertCount(2, $this->getLocationHandler()->loadSubtreeIds(77)); } - public function testLoadLocationByRemoteId() + public function testLoadLocationByRemoteId(): void { $handler = $this->getLocationHandler(); @@ -141,7 +141,7 @@ public function testLoadLocationByRemoteId() self::assertInstanceOf(Location::class, $location); } - public function testLoadLocationsByContent() + public function testLoadLocationsByContent(): void { $handler = $this->getLocationHandler(); @@ -191,7 +191,7 @@ public function loadParentLocationsForDraftContent() self::assertIsArray($locations); } - public function testMoveSubtree() + public function testMoveSubtree(): void { $handler = $this->getLocationHandler(); @@ -273,7 +273,7 @@ public function testMoveSubtree() $handler->move(69, 77); } - public function testHideUpdateHidden() + public function testHideUpdateHidden(): void { $handler = $this->getLocationHandler(); @@ -300,7 +300,7 @@ public function testHideUpdateHidden() } #[Depends('testHideUpdateHidden')] - public function testHideUnhideUpdateHidden() + public function testHideUnhideUpdateHidden(): void { $handler = $this->getLocationHandler(); @@ -326,7 +326,7 @@ public function testHideUnhideUpdateHidden() $handler->unhide(69); } - public function testSwapLocations() + public function testSwapLocations(): void { $handler = $this->getLocationHandler(); @@ -338,7 +338,7 @@ public function testSwapLocations() $handler->swap(70, 78); } - public function testCreateLocation() + public function testCreateLocation(): void { $handler = $this->getLocationHandler(); @@ -376,7 +376,7 @@ public function testCreateLocation() $handler->create($createStruct); } - public function testUpdateLocation() + public function testUpdateLocation(): void { $handler = $this->getLocationHandler(); @@ -391,7 +391,7 @@ public function testUpdateLocation() $handler->update($updateStruct, 23); } - public function testSetSectionForSubtree() + public function testSetSectionForSubtree(): void { $handler = $this->getLocationHandler(); @@ -403,7 +403,7 @@ public function testSetSectionForSubtree() $handler->setSectionForSubtree(69, 3); } - public function testChangeMainLocation() + public function testChangeMainLocation(): void { $handler = $this->getLocationHandler(); @@ -418,7 +418,7 @@ public function testChangeMainLocation() /** * Test for the removeSubtree() method. */ - public function testRemoveSubtree() + public function testRemoveSubtree(): void { $handler = $this->getLocationHandler(); @@ -445,7 +445,7 @@ public function testDeleteChildrenDrafts(): void /** * Test for the copySubtree() method. */ - public function testCopySubtree() + public function testCopySubtree(): void { $handler = $this->getPartlyMockedHandler( [ diff --git a/tests/lib/Persistence/Legacy/Content/MapperTest.php b/tests/lib/Persistence/Legacy/Content/MapperTest.php index b09eb0ba0f..51095e6e4b 100644 --- a/tests/lib/Persistence/Legacy/Content/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/MapperTest.php @@ -73,7 +73,7 @@ protected function getCreateStructFixture() return $struct; } - public function testCreateVersionInfoForContent() + public function testCreateVersionInfoForContent(): void { $content = $this->getFullContentFixture(); $time = time(); @@ -130,7 +130,7 @@ protected function getFullContentFixture() return $content; } - public function testConvertToStorageValue() + public function testConvertToStorageValue(): void { $convMock = $this->createMock(Converter::class); $convMock->expects(self::once()) @@ -165,7 +165,7 @@ public function testConvertToStorageValue() ); } - public function testExtractContentFromRows() + public function testExtractContentFromRows(): void { $rowsFixture = self::getContentExtractFixture(); $nameRowsFixture = $this->getNamesExtractFixture(); @@ -298,7 +298,7 @@ static function (Content\Type\FieldDefinition $fieldDefinition): bool { ); } - public function testExtractContentFromRowsMultipleVersions() + public function testExtractContentFromRowsMultipleVersions(): void { $convMock = $this->createMock(Converter::class); $convMock->expects(self::any()) @@ -399,7 +399,7 @@ public function testCreateCreateStructFromContent() } #[Depends('testCreateCreateStructFromContent')] - public function testCreateCreateStructFromContentBasicProperties($data) + public function testCreateCreateStructFromContentBasicProperties($data): void { $content = $data['original']; $struct = $data['result']; @@ -417,7 +417,7 @@ public function testCreateCreateStructFromContentBasicProperties($data) } #[Depends('testCreateCreateStructFromContent')] - public function testCreateCreateStructFromContentParentLocationsEmpty($data) + public function testCreateCreateStructFromContentParentLocationsEmpty($data): void { self::assertEquals( [], @@ -426,7 +426,7 @@ public function testCreateCreateStructFromContentParentLocationsEmpty($data) } #[Depends('testCreateCreateStructFromContent')] - public function testCreateCreateStructFromContentFieldCount($data) + public function testCreateCreateStructFromContentFieldCount($data): void { self::assertEquals( count($data['original']->fields), @@ -435,14 +435,14 @@ public function testCreateCreateStructFromContentFieldCount($data) } #[Depends('testCreateCreateStructFromContent')] - public function testCreateCreateStructFromContentFieldsNoId($data) + public function testCreateCreateStructFromContentFieldsNoId($data): void { foreach ($data['result']->fields as $field) { self::assertNull($field->id); } } - public function testExtractRelationsFromRows() + public function testExtractRelationsFromRows(): void { $mapper = $this->getMapper(); @@ -456,7 +456,7 @@ public function testExtractRelationsFromRows() ); } - public function testCreateCreateStructFromContentWithPreserveOriginalLanguage() + public function testCreateCreateStructFromContentWithPreserveOriginalLanguage(): void { $time = time(); $mapper = $this->getMapper(); @@ -481,7 +481,7 @@ public function testCreateCreateStructFromContentWithPreserveOriginalLanguage() * @param string $prefix */ #[DataProvider('extractContentInfoFromRowProvider')] - public function testExtractContentInfoFromRow(array $fixtures, $prefix) + public function testExtractContentInfoFromRow(array $fixtures, $prefix): void { $contentInfoReference = $this->getContentExtractReference()->versionInfo->contentInfo; $mapper = new Mapper( @@ -499,7 +499,7 @@ public function testExtractContentInfoFromRow(array $fixtures, $prefix) * * @return array */ - public static function extractContentInfoFromRowProvider() + public static function extractContentInfoFromRowProvider(): array { $fixtures = self::getContentExtractFixture(); $fixturesNoPrefix = []; @@ -516,7 +516,7 @@ public static function extractContentInfoFromRowProvider() ]; } - public function testCreateRelationFromCreateStruct() + public function testCreateRelationFromCreateStruct(): void { $struct = $this->getRelationCreateStructFixture(); diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php index aa89965495..ebd6fb587c 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/Gateway/DoctrineDatabaseTest.php @@ -47,7 +47,7 @@ protected function setUp(): void ); } - public function testLoadObjectStateData() + public function testLoadObjectStateData(): void { $gateway = $this->getDatabaseGateway(); @@ -71,7 +71,7 @@ public function testLoadObjectStateData() ); } - public function testLoadObjectStateDataByIdentifier() + public function testLoadObjectStateDataByIdentifier(): void { $gateway = $this->getDatabaseGateway(); @@ -95,7 +95,7 @@ public function testLoadObjectStateDataByIdentifier() ); } - public function testLoadObjectStateListData() + public function testLoadObjectStateListData(): void { $gateway = $this->getDatabaseGateway(); @@ -134,7 +134,7 @@ public function testLoadObjectStateListData() ); } - public function testLoadObjectStateGroupData() + public function testLoadObjectStateGroupData(): void { $gateway = $this->getDatabaseGateway(); @@ -157,7 +157,7 @@ public function testLoadObjectStateGroupData() ); } - public function testLoadObjectStateGroupDataByIdentifier() + public function testLoadObjectStateGroupDataByIdentifier(): void { $gateway = $this->getDatabaseGateway(); @@ -180,7 +180,7 @@ public function testLoadObjectStateGroupDataByIdentifier() ); } - public function testLoadObjectStateGroupListData() + public function testLoadObjectStateGroupListData(): void { $gateway = $this->getDatabaseGateway(); @@ -205,7 +205,7 @@ public function testLoadObjectStateGroupListData() ); } - public function testInsertObjectState() + public function testInsertObjectState(): void { $gateway = $this->getDatabaseGateway(); @@ -232,7 +232,7 @@ public function testInsertObjectState() ); } - public function testInsertObjectStateInEmptyGroup() + public function testInsertObjectStateInEmptyGroup(): void { $gateway = $this->getDatabaseGateway(); @@ -267,7 +267,7 @@ public function testInsertObjectStateInEmptyGroup() ); } - public function testUpdateObjectState() + public function testUpdateObjectState(): void { $gateway = $this->getDatabaseGateway(); @@ -294,7 +294,7 @@ public function testUpdateObjectState() ); } - public function testDeleteObjectState() + public function testDeleteObjectState(): void { $gateway = $this->getDatabaseGateway(); @@ -306,7 +306,7 @@ public function testDeleteObjectState() ); } - public function testUpdateObjectStateLinks() + public function testUpdateObjectStateLinks(): void { $gateway = $this->getDatabaseGateway(); @@ -316,7 +316,7 @@ public function testUpdateObjectStateLinks() self::assertSame(185, $gateway->getContentCount(2)); } - public function testDeleteObjectStateLinks() + public function testDeleteObjectStateLinks(): void { $gateway = $this->getDatabaseGateway(); @@ -325,7 +325,7 @@ public function testDeleteObjectStateLinks() self::assertSame(0, $gateway->getContentCount(1)); } - public function testInsertObjectStateGroup() + public function testInsertObjectStateGroup(): void { $gateway = $this->getDatabaseGateway(); @@ -350,7 +350,7 @@ public function testInsertObjectStateGroup() ); } - public function testUpdateObjectStateGroup() + public function testUpdateObjectStateGroup(): void { $gateway = $this->getDatabaseGateway(); @@ -376,7 +376,7 @@ public function testUpdateObjectStateGroup() ); } - public function testDeleteObjectStateGroup() + public function testDeleteObjectStateGroup(): void { $gateway = $this->getDatabaseGateway(); @@ -388,7 +388,7 @@ public function testDeleteObjectStateGroup() ); } - public function testSetContentState() + public function testSetContentState(): void { $gateway = $this->getDatabaseGateway(); @@ -408,7 +408,7 @@ public function testSetContentState() ); } - public function testLoadObjectStateDataForContent() + public function testLoadObjectStateDataForContent(): void { $gateway = $this->getDatabaseGateway(); @@ -432,7 +432,7 @@ public function testLoadObjectStateDataForContent() ); } - public function testGetContentCount() + public function testGetContentCount(): void { $gateway = $this->getDatabaseGateway(); @@ -442,7 +442,7 @@ public function testGetContentCount() self::assertEquals(185, $result); } - public function testUpdateObjectStatePriority() + public function testUpdateObjectStatePriority(): void { $gateway = $this->getDatabaseGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php index f5eab27292..4551ed08d3 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/MapperTest.php @@ -17,7 +17,7 @@ #[CoversClass(Mapper::class)] class MapperTest extends LanguageAwareTestCase { - public function testCreateObjectStateFromData() + public function testCreateObjectStateFromData(): void { $mapper = $this->getMapper(); @@ -32,7 +32,7 @@ public function testCreateObjectStateFromData() ); } - public function testCreateObjectStateListFromData() + public function testCreateObjectStateListFromData(): void { $mapper = $this->getMapper(); @@ -47,7 +47,7 @@ public function testCreateObjectStateListFromData() ); } - public function testCreateObjectStateGroupFromData() + public function testCreateObjectStateGroupFromData(): void { $mapper = $this->getMapper(); @@ -62,7 +62,7 @@ public function testCreateObjectStateGroupFromData() ); } - public function testCreateObjectStateGroupListFromData() + public function testCreateObjectStateGroupListFromData(): void { $mapper = $this->getMapper(); @@ -77,7 +77,7 @@ public function testCreateObjectStateGroupListFromData() ); } - public function testCreateObjectStateFromInputStruct() + public function testCreateObjectStateFromInputStruct(): void { $mapper = $this->getMapper(); @@ -92,7 +92,7 @@ public function testCreateObjectStateFromInputStruct() ); } - public function testCreateObjectStateGroupFromInputStruct() + public function testCreateObjectStateGroupFromInputStruct(): void { $mapper = $this->getMapper(); diff --git a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php index c96c1c17c8..df32013d9c 100644 --- a/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ObjectState/ObjectStateHandlerTest.php @@ -42,7 +42,7 @@ class ObjectStateHandlerTest extends LanguageAwareTestCase */ protected $mapperMock; - public function testCreateGroup() + public function testCreateGroup(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -66,7 +66,7 @@ public function testCreateGroup() ); } - public function testLoadGroup() + public function testLoadGroup(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -90,7 +90,7 @@ public function testLoadGroup() ); } - public function testLoadGroupThrowsNotFoundException() + public function testLoadGroupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -105,7 +105,7 @@ public function testLoadGroupThrowsNotFoundException() $handler->loadGroup(APIBaseTest::DB_INT_MAX); } - public function testLoadGroupByIdentifier() + public function testLoadGroupByIdentifier(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -129,7 +129,7 @@ public function testLoadGroupByIdentifier() ); } - public function testLoadGroupByIdentifierThrowsNotFoundException() + public function testLoadGroupByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -144,7 +144,7 @@ public function testLoadGroupByIdentifierThrowsNotFoundException() $handler->loadGroupByIdentifier('unknown'); } - public function testLoadAllGroups() + public function testLoadAllGroups(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -170,7 +170,7 @@ public function testLoadAllGroups() } } - public function testLoadObjectStates() + public function testLoadObjectStates(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -196,7 +196,7 @@ public function testLoadObjectStates() } } - public function testUpdateGroup() + public function testUpdateGroup(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -229,7 +229,7 @@ public function testUpdateGroup() ); } - public function testDeleteGroup() + public function testDeleteGroup(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -283,7 +283,7 @@ public function testDeleteGroup() ); } - public function testCreate() + public function testCreate(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -307,7 +307,7 @@ public function testCreate() ); } - public function testLoad() + public function testLoad(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -331,7 +331,7 @@ public function testLoad() ); } - public function testLoadThrowsNotFoundException() + public function testLoadThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -346,7 +346,7 @@ public function testLoadThrowsNotFoundException() $handler->load(APIBaseTest::DB_INT_MAX); } - public function testLoadByIdentifier() + public function testLoadByIdentifier(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -370,7 +370,7 @@ public function testLoadByIdentifier() ); } - public function testLoadByIdentifierThrowsNotFoundException() + public function testLoadByIdentifierThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -385,7 +385,7 @@ public function testLoadByIdentifierThrowsNotFoundException() $handler->loadByIdentifier('unknown', 2); } - public function testUpdate() + public function testUpdate(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -418,7 +418,7 @@ public function testUpdate() ); } - public function testSetPriority() + public function testSetPriority(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -468,7 +468,7 @@ public function testSetPriority() $handler->setPriority(2, 0); } - public function testDelete() + public function testDelete(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -509,7 +509,7 @@ public function testDelete() $handler->delete(1); } - public function testDeleteThrowsNotFoundException() + public function testDeleteThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -524,7 +524,7 @@ public function testDeleteThrowsNotFoundException() $handler->delete(APIBaseTest::DB_INT_MAX); } - public function testSetContentState() + public function testSetContentState(): void { $handler = $this->getObjectStateHandler(); $gatewayMock = $this->getGatewayMock(); @@ -538,7 +538,7 @@ public function testSetContentState() self::assertTrue($result); } - public function testGetContentState() + public function testGetContentState(): void { $handler = $this->getObjectStateHandler(); $mapperMock = $this->getMapperMock(); @@ -562,7 +562,7 @@ public function testGetContentState() ); } - public function testGetContentCount() + public function testGetContentCount(): void { $handler = $this->getObjectStateHandler(); $gatewayMock = $this->getGatewayMock(); diff --git a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php index fb1c9a6214..91e2327c82 100644 --- a/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Section/Gateway/DoctrineDatabaseTest.php @@ -35,7 +35,7 @@ protected function setUp(): void ); } - public function testInsertSection() + public function testInsertSection(): void { $gateway = $this->getDatabaseGateway(); @@ -63,7 +63,7 @@ public function testInsertSection() ); } - public function testUpdateSection() + public function testUpdateSection(): void { $gateway = $this->getDatabaseGateway(); @@ -85,7 +85,7 @@ public function testUpdateSection() ); } - public function testLoadSectionData() + public function testLoadSectionData(): void { $gateway = $this->getDatabaseGateway(); @@ -103,7 +103,7 @@ public function testLoadSectionData() ); } - public function testLoadAllSectionData() + public function testLoadAllSectionData(): void { $gateway = $this->getDatabaseGateway(); @@ -152,7 +152,7 @@ public function testLoadAllSectionData() ); } - public function testLoadSectionDataByIdentifier() + public function testLoadSectionDataByIdentifier(): void { $gateway = $this->getDatabaseGateway(); @@ -170,7 +170,7 @@ public function testLoadSectionDataByIdentifier() ); } - public function testCountContentObjectsInSection() + public function testCountContentObjectsInSection(): void { $this->insertDatabaseFixture( __DIR__ . '/../../_fixtures/contentobjects.php' @@ -186,7 +186,7 @@ public function testCountContentObjectsInSection() ); } - public function testCountRoleAssignmentsUsingSection() + public function testCountRoleAssignmentsUsingSection(): void { $this->insertDatabaseFixture( __DIR__ . '/../../../User/_fixtures/roles.php' @@ -202,7 +202,7 @@ public function testCountRoleAssignmentsUsingSection() ); } - public function testDeleteSection() + public function testDeleteSection(): void { $gateway = $this->getDatabaseGateway(); @@ -233,7 +233,7 @@ public function testDeleteSection() } #[Depends('testCountContentObjectsInSection')] - public function testAssignSectionToContent() + public function testAssignSectionToContent(): void { $this->insertDatabaseFixture( __DIR__ . '/../../_fixtures/contentobjects.php' diff --git a/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php index 9c03dd0184..ee0f2240fd 100644 --- a/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Section/SectionHandlerTest.php @@ -30,7 +30,7 @@ class SectionHandlerTest extends TestCase */ protected $gatewayMock; - public function testCreate() + public function testCreate(): void { $handler = $this->getSectionHandler(); @@ -56,7 +56,7 @@ public function testCreate() ); } - public function testUpdate() + public function testUpdate(): void { $handler = $this->getSectionHandler(); @@ -83,7 +83,7 @@ public function testUpdate() ); } - public function testLoad() + public function testLoad(): void { $handler = $this->getSectionHandler(); @@ -118,7 +118,7 @@ public function testLoad() ); } - public function testLoadAll() + public function testLoadAll(): void { $handler = $this->getSectionHandler(); @@ -161,7 +161,7 @@ public function testLoadAll() ); } - public function testLoadByIdentifier() + public function testLoadByIdentifier(): void { $handler = $this->getSectionHandler(); @@ -196,7 +196,7 @@ public function testLoadByIdentifier() ); } - public function testDelete() + public function testDelete(): void { $handler = $this->getSectionHandler(); @@ -216,7 +216,7 @@ public function testDelete() $result = $handler->delete(23); } - public function testDeleteFailure() + public function testDeleteFailure(): void { $this->expectException(\RuntimeException::class); @@ -235,7 +235,7 @@ public function testDeleteFailure() $result = $handler->delete(23); } - public function testAssign() + public function testAssign(): void { $handler = $this->getSectionHandler(); @@ -251,7 +251,7 @@ public function testAssign() $result = $handler->assign(23, 42); } - public function testPoliciesCount() + public function testPoliciesCount(): void { $handler = $this->getSectionHandler(); @@ -269,7 +269,7 @@ public function testPoliciesCount() $result = $handler->policiesCount(1); } - public function testCountRoleAssignmentsUsingSection() + public function testCountRoleAssignmentsUsingSection(): void { $handler = $this->getSectionHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php b/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php index 5208863b4d..f38885a35c 100644 --- a/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php +++ b/tests/lib/Persistence/Legacy/Content/StorageRegistryTest.php @@ -26,7 +26,7 @@ public function testRegister(): void self::assertSame($storage, $registry->getStorage(self::TYPE_NAME)); } - public function testGetStorage() + public function testGetStorage(): void { $storage = $this->getStorageMock(); $registry = new StorageRegistry([self::TYPE_NAME => $storage]); @@ -39,7 +39,7 @@ public function testGetStorage() ); } - public function testGetNotFound() + public function testGetNotFound(): void { $registry = new StorageRegistry([]); self::assertInstanceOf( diff --git a/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php b/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php index f8a3aee065..69acb8a88f 100644 --- a/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/TreeHandlerTest.php @@ -23,7 +23,7 @@ */ class TreeHandlerTest extends TestCase { - public function testLoadContentInfoByRemoteId() + public function testLoadContentInfoByRemoteId(): void { $contentInfoData = [new ContentInfo()]; @@ -45,7 +45,7 @@ public function testLoadContentInfoByRemoteId() ); } - public function testListVersions() + public function testListVersions(): void { $this->getContentGatewayMock() ->expects(self::once()) @@ -73,7 +73,7 @@ public function testListVersions() ); } - public function testRemoveRawContent() + public function testRemoveRawContent(): void { $treeHandler = $this->getPartlyMockedTreeHandler( [ @@ -125,7 +125,7 @@ public function testRemoveRawContent() $treeHandler->removeRawContent(23); } - public function testRemoveSubtree() + public function testRemoveSubtree(): void { $treeHandler = $this->getPartlyMockedTreeHandler( [ @@ -283,7 +283,7 @@ public function testRemoveSubtree() $treeHandler->removeSubtree(42); } - public function testSetSectionForSubtree() + public function testSetSectionForSubtree(): void { $treeHandler = $this->getTreeHandler(); @@ -309,7 +309,7 @@ public function testSetSectionForSubtree() $treeHandler->setSectionForSubtree(69, 3); } - public function testChangeMainLocation() + public function testChangeMainLocation(): void { $treeHandler = $this->getPartlyMockedTreeHandler( [ @@ -374,7 +374,7 @@ public function testChangeMainLocation() $treeHandler->changeMainLocation(12, 34); } - public function testChangeMainLocationToLocationWithoutContentInfo() + public function testChangeMainLocationToLocationWithoutContentInfo(): void { $treeHandler = $this->getPartlyMockedTreeHandler( [ @@ -434,7 +434,7 @@ public function testChangeMainLocationToLocationWithoutContentInfo() $treeHandler->changeMainLocation(12, 34); } - public function testLoadLocation() + public function testLoadLocation(): void { $treeHandler = $this->getTreeHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php index cf23b6b18c..d1d4803faf 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentTypeHandlerTest.php @@ -55,7 +55,7 @@ class ContentTypeHandlerTest extends TestCase /** @var \Ibexa\Core\Persistence\Legacy\Content\Type\StorageDispatcherInterface&\PHPUnit\Framework\MockObject\MockObject */ protected $storageDispatcherMock; - public function testCreateGroup() + public function testCreateGroup(): void { $createStruct = new GroupCreateStruct(); @@ -96,7 +96,7 @@ public function testCreateGroup() ); } - public function testUpdateGroup() + public function testUpdateGroup(): void { $updateStruct = new GroupUpdateStruct(); $updateStruct->id = 23; @@ -141,7 +141,7 @@ public function testUpdateGroup() ); } - public function testDeleteGroupSuccess() + public function testDeleteGroupSuccess(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -156,7 +156,7 @@ public function testDeleteGroupSuccess() $handler->deleteGroup(23); } - public function testDeleteGroupFailure() + public function testDeleteGroupFailure(): void { $this->expectException(Exception\GroupNotEmpty::class); $this->expectExceptionMessage('Group with ID "23" is not empty.'); @@ -173,7 +173,7 @@ public function testDeleteGroupFailure() $handler->deleteGroup(23); } - public function testLoadGroup() + public function testLoadGroup(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -196,7 +196,7 @@ public function testLoadGroup() ); } - public function testLoadGroupByIdentifier() + public function testLoadGroupByIdentifier(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -219,7 +219,7 @@ public function testLoadGroupByIdentifier() ); } - public function testLoadAllGroups() + public function testLoadAllGroups(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -241,7 +241,7 @@ public function testLoadAllGroups() ); } - public function testLoadContentTypes() + public function testLoadContentTypes(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -312,7 +312,7 @@ public function testLoadContentTypesByFieldDefinitionIdentifier(): void ); } - public function testLoad() + public function testLoad(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -343,7 +343,7 @@ public function testLoad() ); } - public function testLoadNotFound() + public function testLoadNotFound(): void { $this->expectException(Exception\TypeNotFound::class); @@ -370,7 +370,7 @@ public function testLoadNotFound() $type = $handler->load(23, 1); } - public function testLoadDefaultVersion() + public function testLoadDefaultVersion(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -400,7 +400,7 @@ public function testLoadDefaultVersion() ); } - public function testLoadByIdentifier() + public function testLoadByIdentifier(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -430,7 +430,7 @@ public function testLoadByIdentifier() ); } - public function testLoadByRemoteId() + public function testLoadByRemoteId(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -460,7 +460,7 @@ public function testLoadByRemoteId() ); } - public function testCreate() + public function testCreate(): void { $createStructFix = $this->getContentTypeCreateStructFixture(); $createStructClone = clone $createStructFix; @@ -537,7 +537,7 @@ public function testCreate() ); } - public function testUpdate() + public function testUpdate(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -577,7 +577,7 @@ public function testUpdate() ); } - public function testDeleteSuccess() + public function testDeleteSuccess(): void { $gatewayMock = $this->getGatewayMock(); @@ -611,7 +611,7 @@ public function testDeleteSuccess() self::assertTrue($res); } - public function testDeleteThrowsBadStateException() + public function testDeleteThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -633,7 +633,7 @@ public function testDeleteThrowsBadStateException() $res = $handler->delete(23, 0); } - public function testCreateVersion() + public function testCreateVersion(): void { $userId = 42; $contentTypeId = 23; @@ -690,7 +690,7 @@ public function testCreateVersion() ); } - public function testCopy() + public function testCopy(): void { $gatewayMock = $this->getGatewayMock(); $mapperMock = $this->getMapperMock(['createCreateStructFromType']); @@ -762,7 +762,7 @@ public function testCopy() ); } - public function testLink() + public function testLink(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -781,7 +781,7 @@ public function testLink() self::assertTrue($res); } - public function testUnlinkSuccess() + public function testUnlinkSuccess(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -807,7 +807,7 @@ public function testUnlinkSuccess() self::assertTrue($res); } - public function testUnlinkFailure() + public function testUnlinkFailure(): void { $this->expectException(Exception\RemoveLastGroupFromType::class); $this->expectExceptionMessage('Type with ID "23" in status "1" cannot be unlinked from its last group.'); @@ -828,7 +828,7 @@ public function testUnlinkFailure() $res = $handler->unlink(3, 23, 1); } - public function testGetFieldDefinition() + public function testGetFieldDefinition(): void { $mapperMock = $this->getMapperMock( [ @@ -875,7 +875,7 @@ public function testGetFieldDefinition() ); } - public function testAddFieldDefinition() + public function testAddFieldDefinition(): void { $mapperMock = $this->getMapperMock( ['toStorageFieldDefinition'] @@ -924,7 +924,7 @@ public function testAddFieldDefinition() ); } - public function testGetContentCount() + public function testGetContentCount(): void { $gatewayMock = $this->getGatewayMock(); $gatewayMock->expects(self::once()) @@ -943,7 +943,7 @@ public function testGetContentCount() ); } - public function testRemoveFieldDefinition() + public function testRemoveFieldDefinition(): void { $storageDispatcherMock = $this->getStorageDispatcherMock(); $storageDispatcherMock @@ -964,7 +964,7 @@ public function testRemoveFieldDefinition() $handler->removeFieldDefinition(23, 1, new FieldDefinition(['id' => 42, 'fieldType' => 'ibexa_string'])); } - public function testUpdateFieldDefinition() + public function testUpdateFieldDefinition(): void { $fieldDef = new FieldDefinition(); @@ -997,7 +997,7 @@ public function testUpdateFieldDefinition() $handler->updateFieldDefinition(23, 1, $fieldDef); } - public function testPublish() + public function testPublish(): void { $handler = $this->getPartlyMockedHandler(['load']); $updateHandlerMock = $this->getUpdateHandlerMock(); @@ -1031,7 +1031,7 @@ public function testPublish() $handler->publish(23); } - public function testPublishNoOldType() + public function testPublishNoOldType(): void { $handler = $this->getPartlyMockedHandler(['load']); $updateHandlerMock = $this->getUpdateHandlerMock(); @@ -1203,7 +1203,7 @@ protected function getContentTypeCreateStructFixture() return $struct; } - public function testRemoveContentTypeTranslation() + public function testRemoveContentTypeTranslation(): void { $mapperMock = $this->getMapperMock(); $mapperMock->expects(self::once()) diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php index a29ec122ca..9598581a70 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/AddFieldTest.php @@ -57,7 +57,7 @@ class AddFieldTest extends TestCase */ protected $addFieldAction; - public function testConstructor() + public function testConstructor(): void { $action = new AddField( $this->getContentGatewayMock(), @@ -70,7 +70,7 @@ public function testConstructor() self::assertInstanceOf(AddField::class, $action); } - public function testApplySingleVersionSingleTranslation() + public function testApplySingleVersionSingleTranslation(): void { $contentId = 42; $versionNumbers = [1]; @@ -110,7 +110,7 @@ public function testApplySingleVersionSingleTranslation() $action->apply($contentId); } - public function testApplySingleVersionMultipleTranslations() + public function testApplySingleVersionMultipleTranslations(): void { $contentId = 42; $versionNumbers = [1]; @@ -160,7 +160,7 @@ public function testApplySingleVersionMultipleTranslations() $action->apply($contentId); } - public function testApplyMultipleVersionsSingleTranslation() + public function testApplyMultipleVersionsSingleTranslation(): void { $contentId = 42; $versionNumbers = [1, 2]; @@ -217,7 +217,7 @@ public function testApplyMultipleVersionsSingleTranslation() $action->apply($contentId); } - public function testApplyMultipleVersionsMultipleTranslations() + public function testApplyMultipleVersionsMultipleTranslations(): void { $contentId = 42; $versionNumbers = [1, 2]; @@ -285,7 +285,7 @@ public function testApplyMultipleVersionsMultipleTranslations() $action->apply($contentId); } - public function testInsertNewField() + public function testInsertNewField(): void { $versionInfo = new Content\VersionInfo(); $content = new Content(); @@ -334,7 +334,7 @@ public function testInsertNewField() self::assertEquals(23, $field->id); } - public function testInsertNewFieldUpdating() + public function testInsertNewFieldUpdating(): void { $versionInfo = new Content\VersionInfo(); $content = new Content(); @@ -389,7 +389,7 @@ public function testInsertNewFieldUpdating() self::assertEquals(23, $field->id); } - public function testInsertExistingField() + public function testInsertExistingField(): void { $versionInfo = new Content\VersionInfo(); $content = new Content(); @@ -437,7 +437,7 @@ public function testInsertExistingField() self::assertEquals(32, $field->id); } - public function testInsertExistingFieldUpdating() + public function testInsertExistingFieldUpdating(): void { $versionInfo = new Content\VersionInfo(); $content = new Content(); diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php index 228e26df80..857e7fc1d3 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdater/Action/RemoveFieldTest.php @@ -42,7 +42,7 @@ class RemoveFieldTest extends TestCase */ protected $removeFieldAction; - public function testApplySingleVersionSingleTranslation() + public function testApplySingleVersionSingleTranslation(): void { $contentId = 42; $versionNumbers = [1]; @@ -90,7 +90,7 @@ public function testApplySingleVersionSingleTranslation() $action->apply($contentId); } - public function testApplyMultipleVersionsSingleTranslation() + public function testApplyMultipleVersionsSingleTranslation(): void { $contentId = 42; $versionNumbers = [1, 2]; @@ -150,7 +150,7 @@ public function testApplyMultipleVersionsSingleTranslation() $action->apply($contentId); } - public function testApplyMultipleVersionsMultipleTranslations() + public function testApplyMultipleVersionsMultipleTranslations(): void { $contentId = 42; $versionNumbers = [1, 2]; diff --git a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php index e0277d4072..4c509f10a1 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/ContentUpdaterTest.php @@ -59,7 +59,7 @@ class ContentUpdaterTest extends TestCase /** @var \Ibexa\Core\Persistence\Legacy\Content\Mapper */ protected $contentMapperMock; - public function testDetermineActions() + public function testDetermineActions(): void { $fromType = $this->getFromTypeFixture(); $toType = $this->getToTypeFixture(); @@ -98,7 +98,7 @@ public function testDetermineActions() ); } - public function testApplyUpdates() + public function testApplyUpdates(): void { $updater = $this->getContentUpdater(); diff --git a/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php index c7afa15a14..8ddc307ec5 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/Gateway/DoctrineDatabaseTest.php @@ -38,7 +38,7 @@ protected function setUp(): void $this->insertDatabaseFixture(__DIR__ . '/_fixtures/languages.php'); } - public function testInsertGroup() + public function testInsertGroup(): void { $gateway = $this->getGateway(); @@ -96,7 +96,7 @@ protected function getGroupFixture() return $group; } - public function testUpdateGroup() + public function testUpdateGroup(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -193,7 +193,7 @@ protected function getGroupUpdateStructFixture() return $struct; } - public function testCountTypesInGroup() + public function testCountTypesInGroup(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -211,7 +211,7 @@ public function testCountTypesInGroup() ); } - public function testCountGroupsForType() + public function testCountGroupsForType(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -229,7 +229,7 @@ public function testCountGroupsForType() ); } - public function testDeleteGroup() + public function testDeleteGroup(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -251,7 +251,7 @@ public function testDeleteGroup() ); } - public function testLoadGroupData() + public function testLoadGroupData(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -276,7 +276,7 @@ public function testLoadGroupData() ); } - public function testLoadGroupDataByIdentifier() + public function testLoadGroupDataByIdentifier(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -301,7 +301,7 @@ public function testLoadGroupDataByIdentifier() ); } - public function testLoadAllGroupsData() + public function testLoadAllGroupsData(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -329,7 +329,7 @@ public function testLoadAllGroupsData() ); } - public function testLoadTypesDataForGroup() + public function testLoadTypesDataForGroup(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -344,7 +344,7 @@ public function testLoadTypesDataForGroup() ); } - public function testLoadTypeData() + public function testLoadTypeData(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -372,7 +372,7 @@ public function testLoadTypeData() */ } - public function testLoadTypeDataByIdentifier() + public function testLoadTypeDataByIdentifier(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -391,7 +391,7 @@ public function testLoadTypeDataByIdentifier() ); } - public function testLoadTypeDataByRemoteId() + public function testLoadTypeDataByRemoteId(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -415,7 +415,7 @@ public function testLoadTypeDataByRemoteId() * * @return string[][] */ - public static function getTypeCreationExpectations() + public static function getTypeCreationExpectations(): array { return [ ['always_available', 0], @@ -439,7 +439,7 @@ public static function getTypeCreationExpectations() } #[DataProvider('getTypeCreationExpectations')] - public function testInsertType($column, $expectation) + public function testInsertType($column, $expectation): void { $gateway = $this->getGateway(); $type = $this->getTypeFixture(); @@ -460,7 +460,7 @@ public function testInsertType($column, $expectation) * * @return string[][] */ - public static function getTypeCreationContentClassNameExpectations() + public static function getTypeCreationContentClassNameExpectations(): array { return [ ['content_type_status', [0, 0]], @@ -471,7 +471,7 @@ public static function getTypeCreationContentClassNameExpectations() } #[DataProvider('getTypeCreationContentClassNameExpectations')] - public function testInsertTypeContentClassName($column, $expectation) + public function testInsertTypeContentClassName($column, $expectation): void { $gateway = $this->getGateway(); $type = $this->getTypeFixture(); @@ -531,7 +531,7 @@ protected function getTypeFixture() return $type; } - public function testInsertFieldDefinition() + public function testInsertFieldDefinition(): void { $gateway = $this->getGateway(); @@ -669,7 +669,7 @@ protected function getStorageFieldDefinitionFixture() return $fieldDef; } - public function testDeleteFieldDefinition() + public function testDeleteFieldDefinition(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -687,7 +687,7 @@ public function testDeleteFieldDefinition() ); } - public function testUpdateFieldDefinition() + public function testUpdateFieldDefinition(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -759,7 +759,7 @@ public function testUpdateFieldDefinition() ); } - public function testInsertGroupAssignment() + public function testInsertGroupAssignment(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_groups.php' @@ -788,7 +788,7 @@ public function testInsertGroupAssignment() ); } - public function testDeleteGroupAssignment() + public function testDeleteGroupAssignment(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -809,7 +809,7 @@ public function testDeleteGroupAssignment() } #[DataProvider('getTypeUpdateExpectations')] - public function testUpdateType($fieldName, $expectedValue) + public function testUpdateType($fieldName, $expectedValue): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -836,7 +836,7 @@ public function testUpdateType($fieldName, $expectedValue) ); } - public function testUpdateTypeName() + public function testUpdateTypeName(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -879,7 +879,7 @@ public function testUpdateTypeName() * * @return string[][] */ - public static function getTypeUpdateExpectations() + public static function getTypeUpdateExpectations(): array { return [ ['serialized_name_list', 'a:3:{s:16:"always-available";s:6:"eng-US";s:6:"eng-US";s:10:"New Folder";s:6:"eng-GB";s:18:"New Folder for you";}'], @@ -929,7 +929,7 @@ protected function getUpdateTypeFixture(): Type return $type; } - public function testCountInstancesOfTypeExist() + public function testCountInstancesOfTypeExist(): void { $this->insertDatabaseFixture( // Fixture for content objects @@ -945,7 +945,7 @@ public function testCountInstancesOfTypeExist() ); } - public function testCountInstancesOfTypeNotExist() + public function testCountInstancesOfTypeNotExist(): void { $this->insertDatabaseFixture( // Fixture for content objects @@ -961,7 +961,7 @@ public function testCountInstancesOfTypeNotExist() ); } - public function testDeleteFieldDefinitionsForTypeExisting() + public function testDeleteFieldDefinitionsForTypeExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -997,7 +997,7 @@ public function testDeleteFieldDefinitionsForTypeExisting() ); } - public function testDeleteFieldDefinitionsForTypeNotExisting() + public function testDeleteFieldDefinitionsForTypeNotExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -1017,7 +1017,7 @@ public function testDeleteFieldDefinitionsForTypeNotExisting() ); } - public function testDeleteGroupAssignmentsForTypeExisting() + public function testDeleteGroupAssignmentsForTypeExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -1037,7 +1037,7 @@ public function testDeleteGroupAssignmentsForTypeExisting() ); } - public function testDeleteGroupAssignmentsForTypeNotExisting() + public function testDeleteGroupAssignmentsForTypeNotExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -1057,7 +1057,7 @@ public function testDeleteGroupAssignmentsForTypeNotExisting() ); } - public function testDeleteTypeExisting() + public function testDeleteTypeExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -1077,7 +1077,7 @@ public function testDeleteTypeExisting() ); } - public function testDeleteTypeNotExisting() + public function testDeleteTypeNotExisting(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/existing_types.php' @@ -1097,7 +1097,7 @@ public function testDeleteTypeNotExisting() ); } - public function testPublishTypeAndFields() + public function testPublishTypeAndFields(): void { $this->insertDatabaseFixture( __DIR__ . '/_fixtures/type_to_publish.php' diff --git a/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php b/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php index ede09300ff..ee0fec59f5 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/MapperTest.php @@ -30,7 +30,7 @@ #[CoversClass(Mapper::class)] class MapperTest extends TestCase { - public function testCreateGroupFromCreateStruct() + public function testCreateGroupFromCreateStruct(): void { $createStruct = $this->getGroupCreateStructFixture(); @@ -86,7 +86,7 @@ protected function getGroupCreateStructFixture() return $struct; } - public function testTypeFromCreateStruct() + public function testTypeFromCreateStruct(): void { $struct = $this->getContentTypeCreateStructFixture(); @@ -107,7 +107,7 @@ public function testTypeFromCreateStruct() } } - public function testTypeFromUpdateStruct() + public function testTypeFromUpdateStruct(): void { $struct = $this->getContentTypeUpdateStructFixture(); @@ -197,7 +197,7 @@ protected function getContentTypeUpdateStructFixture(): UpdateStruct return $struct; } - public function testCreateStructFromType() + public function testCreateStructFromType(): void { $type = $this->getContentTypeFixture(); @@ -265,7 +265,7 @@ protected function getContentTypeFixture() return $type; } - public function testExtractGroupsFromRows() + public function testExtractGroupsFromRows(): void { $rows = $this->getLoadGroupFixture(); @@ -301,7 +301,7 @@ public function testExtractGroupsFromRows() ); } - public function testExtractTypesFromRowsSingle() + public function testExtractTypesFromRowsSingle(): void { $rows = $this->getLoadTypeFixture(); @@ -382,7 +382,7 @@ public function testExtractTypesFromRowsSingle() ); } - public function testToStorageFieldDefinition() + public function testToStorageFieldDefinition(): void { $converterMock = $this->createMock(Converter::class); $converterMock->expects(self::once()) @@ -416,7 +416,7 @@ public function testToStorageFieldDefinition() $mapper->toStorageFieldDefinition($fieldDef, $storageFieldDef); } - public function testToFieldDefinition() + public function testToFieldDefinition(): void { $storageFieldDef = new StorageFieldDefinition(); diff --git a/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php index 6b7c255511..ab2d295736 100644 --- a/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Type/Update/Handler/DoctrineDatabaseTest.php @@ -31,7 +31,7 @@ class DoctrineDatabaseTest extends TestCase */ protected $contentUpdaterMock; - public function testUpdateContentObjects() + public function testUpdateContentObjects(): void { $handler = $this->getUpdateHandler(); @@ -48,7 +48,7 @@ public function testUpdateContentObjects() $handler->updateContentObjects($types['from'], $types['to']); } - public function testDeleteOldType() + public function testDeleteOldType(): void { $handler = $this->getUpdateHandler(); @@ -66,7 +66,7 @@ public function testDeleteOldType() $handler->deleteOldType($types['from'], $types['to']); } - public function testPublishNewType() + public function testPublishNewType(): void { $handler = $this->getUpdateHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php index 4d38f8a3bf..d6c3ff3362 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/Gateway/DoctrineDatabaseTest.php @@ -31,7 +31,7 @@ class DoctrineDatabaseTest extends TestCase /** * Test for the loadUrlAliasData() method. */ - public function testLoadUrlaliasDataNonExistent() + public function testLoadUrlaliasDataNonExistent(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_simple.php'); $gateway = $this->getGateway(); @@ -44,7 +44,7 @@ public function testLoadUrlaliasDataNonExistent() /** * Test for the loadUrlAliasData() method. */ - public function testLoadUrlaliasData() + public function testLoadUrlaliasData(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_simple.php'); $gateway = $this->getGateway(); @@ -85,7 +85,7 @@ public function testLoadUrlaliasData() * * Test with fixture containing language mask with multiple languages. */ - public function testLoadUrlaliasDataMultipleLanguages() + public function testLoadUrlaliasDataMultipleLanguages(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_multilang.php'); $gateway = $this->getGateway(); @@ -124,7 +124,7 @@ public function testLoadUrlaliasDataMultipleLanguages() /** * @return array */ - public static function providerForTestLoadPathData() + public static function providerForTestLoadPathData(): array { return [ [ @@ -171,7 +171,7 @@ public static function providerForTestLoadPathData() * Test for the loadPathData() method. */ #[DataProvider('providerForTestLoadPathData')] - public function testLoadPathData($id, $pathData) + public function testLoadPathData($id, $pathData): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_fallback.php'); $gateway = $this->getGateway(); @@ -187,7 +187,7 @@ public function testLoadPathData($id, $pathData) /** * @return array */ - public static function providerForTestLoadPathDataMultipleLanguages() + public static function providerForTestLoadPathDataMultipleLanguages(): array { return [ [ @@ -231,7 +231,7 @@ public static function providerForTestLoadPathDataMultipleLanguages() * Test for the loadPathData() method. */ #[DataProvider('providerForTestLoadPathDataMultipleLanguages')] - public function testLoadPathDataMultipleLanguages($id, $pathData) + public function testLoadPathDataMultipleLanguages($id, $pathData): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_multilang.php'); $gateway = $this->getGateway(); @@ -247,7 +247,7 @@ public function testLoadPathDataMultipleLanguages($id, $pathData) /** * @return array */ - public static function providerForTestCleanupAfterPublishHistorize() + public static function providerForTestCleanupAfterPublishHistorize(): array { return [ [ @@ -272,7 +272,7 @@ public static function providerForTestCleanupAfterPublishHistorize() * * @return array */ - public static function providerForTestArchiveUrlAliasesForDeletedTranslations() + public static function providerForTestArchiveUrlAliasesForDeletedTranslations(): array { return [ [314, [2]], @@ -287,7 +287,7 @@ public static function providerForTestArchiveUrlAliasesForDeletedTranslations() * Test for the cleanupAfterPublish() method. */ #[DataProvider('providerForTestCleanupAfterPublishHistorize')] - public function testCleanupAfterPublishHistorize($action, $languageId, $parentId, $textMD5) + public function testCleanupAfterPublishHistorize($action, $languageId, $parentId, $textMD5): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_downgrade.php'); $gateway = $this->getGateway(); @@ -307,7 +307,7 @@ public function testCleanupAfterPublishHistorize($action, $languageId, $parentId /** * @return array */ - public static function providerForTestCleanupAfterPublishRemovesLanguage() + public static function providerForTestCleanupAfterPublishRemovesLanguage(): array { return [ [ @@ -329,7 +329,7 @@ public static function providerForTestCleanupAfterPublishRemovesLanguage() * Test for the cleanupAfterPublish() method. */ #[DataProvider('providerForTestCleanupAfterPublishRemovesLanguage')] - public function testCleanupAfterPublishRemovesLanguage($action, $languageId, $parentId, $textMD5) + public function testCleanupAfterPublishRemovesLanguage($action, $languageId, $parentId, $textMD5): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_downgrade.php'); $gateway = $this->getGateway(); @@ -349,7 +349,7 @@ public function testCleanupAfterPublishRemovesLanguage($action, $languageId, $pa * * @todo document */ - public function testReparent() + public function testReparent(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_simple.php'); $gateway = $this->getGateway(); @@ -377,7 +377,7 @@ public function testReparent() /** * Test for the remove() method. */ - public function testRemove() + public function testRemove(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_remove.php'); $gateway = $this->getGateway(); @@ -395,7 +395,7 @@ public function testRemove() /** * Test for the remove() method. */ - public function testRemoveWithId() + public function testRemoveWithId(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_remove.php'); $gateway = $this->getGateway(); @@ -413,7 +413,7 @@ public function testRemoveWithId() /** * Test for the removeCustomAlias() method. */ - public function testRemoveCustomAlias() + public function testRemoveCustomAlias(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_remove.php'); $gateway = $this->getGateway(); @@ -429,7 +429,7 @@ public function testRemoveCustomAlias() /** * Test for the removeByAction() method. */ - public function testRemoveCustomAliasFails() + public function testRemoveCustomAliasFails(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_remove.php'); $gateway = $this->getGateway(); @@ -443,7 +443,7 @@ public function testRemoveCustomAliasFails() /** * Test for the getNextId() method. */ - public function testGetNextId() + public function testGetNextId(): void { $gateway = $this->getGateway(); @@ -456,7 +456,7 @@ public function testGetNextId() * @param int[] $removedLanguageIds */ #[DataProvider('providerForTestArchiveUrlAliasesForDeletedTranslations')] - public function testArchiveUrlAliasesForDeletedTranslations($locationId, array $removedLanguageIds) + public function testArchiveUrlAliasesForDeletedTranslations($locationId, array $removedLanguageIds): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_multilang.php'); $gateway = $this->getGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php index c5b48ef1ca..434526fb5d 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasHandlerTest.php @@ -49,7 +49,7 @@ class UrlAliasHandlerTest extends TestCase #[Group('resource')] #[Group('case-correction')] #[Group('multiple-languages')] - public function testLookup() + public function testLookup(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -66,7 +66,7 @@ public function testLookup() #[Group('location')] #[Group('virtual')] #[Group('resource')] - public function testLookupThrowsNotFoundException() + public function testLookupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -81,7 +81,7 @@ public function testLookupThrowsNotFoundException() */ #[Group('location')] #[Group('case-correction')] - public function testLookupThrowsInvalidArgumentException() + public function testLookupThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -89,7 +89,10 @@ public function testLookupThrowsInvalidArgumentException() $handler->lookup(str_repeat('/1', 99)); } - public static function providerForTestLookupLocationUrlAlias() + /** + * @return array + */ + public static function providerForTestLookupLocationUrlAlias(): array { return [ [ @@ -349,7 +352,7 @@ public function testLookupLocationUrlAlias( $alwaysAvailable, $locationId, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -402,7 +405,7 @@ public function testLookupLocationCaseCorrection( $alwaysAvailable, $locationId, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -427,7 +430,10 @@ public function testLookupLocationCaseCorrection( ); } - public static function providerForTestLookupLocationMultipleLanguages() + /** + * @return array + */ + public static function providerForTestLookupLocationMultipleLanguages(): array { return [ [ @@ -527,7 +533,7 @@ public function testLookupLocationMultipleLanguages( $alwaysAvailable, $locationId, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_multilang.php'); @@ -560,7 +566,7 @@ public function testLookupLocationMultipleLanguages( #[Depends('testLookup')] #[Group('history')] #[Group('location')] - public function testLookupLocationHistoryUrlAlias() + public function testLookupLocationHistoryUrlAlias(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -573,7 +579,10 @@ public function testLookupLocationHistoryUrlAlias() ); } - public static function providerForTestLookupCustomLocationUrlAlias() + /** + * @return array + */ + public static function providerForTestLookupCustomLocationUrlAlias(): array { return [ [ @@ -706,7 +715,7 @@ public function testLookupCustomLocationUrlAlias( $alwaysAvailable, $destination, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_custom.php'); @@ -747,7 +756,7 @@ public function testLookupCustomLocationUrlAliasCaseCorrection( $alwaysAvailable, $destination, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_custom.php'); @@ -772,7 +781,10 @@ public function testLookupCustomLocationUrlAliasCaseCorrection( ); } - public static function providerForTestLookupVirtualUrlAlias() + /** + * @return array + */ + public static function providerForTestLookupVirtualUrlAlias(): array { return [ [ @@ -794,7 +806,7 @@ public static function providerForTestLookupVirtualUrlAlias() #[Depends('testLookup')] #[Group('virtual')] #[DataProvider('providerForTestLookupVirtualUrlAlias')] - public function testLookupVirtualUrlAlias($url, $id) + public function testLookupVirtualUrlAlias($url, $id): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_custom.php'); @@ -804,7 +816,10 @@ public function testLookupVirtualUrlAlias($url, $id) $this->assertVirtualUrlAliasValid($urlAlias, $id); } - public static function providerForTestLookupResourceUrlAlias() + /** + * @return array + */ + public static function providerForTestLookupResourceUrlAlias(): array { return [ [ @@ -870,7 +885,7 @@ public function testLookupResourceUrlAlias( $alwaysAvailable, $destination, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -911,7 +926,7 @@ public function testLookupResourceUrlAliasCaseInsensitive( $alwaysAvailable, $destination, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -940,7 +955,7 @@ public function testLookupResourceUrlAliasCaseInsensitive( * Test for the lookup() method with uppercase utf8 characters. */ #[Depends('testLookup')] - public function testLookupUppercaseIri() + public function testLookupUppercaseIri(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_iri.php'); @@ -959,7 +974,7 @@ protected function assertVirtualUrlAliasValid(UrlAlias $urlAlias, $id) /** * Test for the listURLAliasesForLocation() method. */ - public function testListURLAliasesForLocation() + public function testListURLAliasesForLocation(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -1030,7 +1045,7 @@ public function testListURLAliasesForLocation() */ #[Depends('testLookupLocationUrlAlias')] #[Group('publish')] - public function testPublishUrlAliasForLocation() + public function testPublishUrlAliasForLocation(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1072,7 +1087,7 @@ public function testPublishUrlAliasForLocation() */ #[Depends('testPublishUrlAliasForLocation')] #[Group('publish')] - public function testPublishUrlAliasForLocationRepublish() + public function testPublishUrlAliasForLocationRepublish(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1096,7 +1111,7 @@ public function testPublishUrlAliasForLocationRepublish() */ #[Depends('testPublishUrlAliasForLocation')] #[Group('publish')] - public function testPublishUrlAliasCreatesUniqueAlias() + public function testPublishUrlAliasCreatesUniqueAlias(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1134,7 +1149,7 @@ public function testPublishUrlAliasCreatesUniqueAlias() /** * @return array */ - public static function providerForTestPublishUrlAliasForLocationComplex() + public static function providerForTestPublishUrlAliasForLocationComplex(): array { return self::providerForTestLookupLocationUrlAlias(); } @@ -1154,7 +1169,7 @@ public function testPublishUrlAliasForLocationComplex( $alwaysAvailable, $locationId, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1193,7 +1208,7 @@ public function testPublishUrlAliasForLocationComplex( */ #[Depends('testPublishUrlAliasForLocation')] #[Group('publish')] - public function testPublishUrlAliasForLocationSameAliasForMultipleLanguages() + public function testPublishUrlAliasForLocationSameAliasForMultipleLanguages(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1240,7 +1255,7 @@ public function testPublishUrlAliasForLocationSameAliasForMultipleLanguages() */ #[Depends('testPublishUrlAliasForLocation')] #[Group('publish')] - public function testPublishUrlAliasForLocationDowngradesOldEntryToHistory() + public function testPublishUrlAliasForLocationDowngradesOldEntryToHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1312,7 +1327,7 @@ public function testPublishUrlAliasForLocationDowngradesOldEntryToHistory() #[Depends('testPublishUrlAliasForLocationSameAliasForMultipleLanguages')] #[Group('publish')] #[Group('downgrade')] - public function testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage() + public function testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1384,7 +1399,7 @@ public function testPublishUrlAliasForLocationDowngradesOldEntryRemovesLanguage( #[Depends('testPublishUrlAliasForLocation')] #[Depends('testPublishUrlAliasForLocationDowngradesOldEntryToHistory')] #[Group('publish')] - public function testPublishUrlAliasForLocationReusesHistory() + public function testPublishUrlAliasForLocationReusesHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1415,7 +1430,7 @@ public function testPublishUrlAliasForLocationReusesHistory() #[Depends('testPublishUrlAliasForLocation')] #[Depends('testPublishUrlAliasForLocationDowngradesOldEntryToHistory')] #[Group('publish')] - public function testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage() + public function testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1465,7 +1480,7 @@ public function testPublishUrlAliasForLocationReusesHistoryOfDifferentLanguage() */ #[Depends('testPublishUrlAliasForLocation')] #[Group('publish')] - public function testPublishUrlAliasForLocationReusesCustomAlias() + public function testPublishUrlAliasForLocationReusesCustomAlias(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -1487,7 +1502,7 @@ public function testPublishUrlAliasForLocationReusesCustomAlias() * @todo document */ #[Depends('testPublishUrlAliasForLocation')] - public function testPublishUrlAliasForLocationReusingNopElement() + public function testPublishUrlAliasForLocationReusingNopElement(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -1557,7 +1572,7 @@ public function testPublishUrlAliasForLocationReusingNopElement() */ #[Depends('testPublishUrlAliasForLocation')] #[Depends('testPublishUrlAliasForLocationReusingNopElement')] - public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath() + public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -1604,7 +1619,7 @@ public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath */ #[Depends('testPublishUrlAliasForLocation')] #[Depends('testPublishUrlAliasForLocationReusingNopElementChangesCustomPath')] - public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPathAndCreatesHistory() + public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPathAndCreatesHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -1626,7 +1641,7 @@ public function testPublishUrlAliasForLocationReusingNopElementChangesCustomPath /** * Test for the publishUrlAliasForLocation() method. */ - public function testPublishUrlAliasForLocationUpdatesLocationPathIdentificationString() + public function testPublishUrlAliasForLocationUpdatesLocationPathIdentificationString(): void { $handler = $this->getHandler(); $locationGateway = $this->getLocationGateway(); @@ -1644,7 +1659,7 @@ public function testPublishUrlAliasForLocationUpdatesLocationPathIdentificationS * Test for the publishUrlAliasForLocation() method. */ #[Group('cleanup')] - public function testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed() + public function testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_cleanup_nop.php'); @@ -1717,7 +1732,7 @@ public function testPublishUrlAliasReuseNopCleanupCustomAliasIsDestroyed() * Test for the publishUrlAliasForLocation() method. */ #[Group('cleanup')] - public function testPublishUrlAliasReuseHistoryCleanup() + public function testPublishUrlAliasReuseHistoryCleanup(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_cleanup_history.php'); @@ -1780,7 +1795,7 @@ public function testPublishUrlAliasReuseHistoryCleanup() * Test for the publishUrlAliasForLocation() method. */ #[Group('cleanup')] - public function testPublishUrlAliasReuseAutogeneratedCleanup() + public function testPublishUrlAliasReuseAutogeneratedCleanup(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_cleanup_reusing.php'); @@ -1845,7 +1860,7 @@ public function testPublishUrlAliasReuseAutogeneratedCleanup() */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasBehaviour() + public function testCreateCustomUrlAliasBehaviour(): void { $handlerMock = $this->getPartlyMockedHandler(['createUrlAlias']); @@ -1876,7 +1891,7 @@ public function testCreateCustomUrlAliasBehaviour() */ #[Group('create')] #[Group('global')] - public function testCreateGlobalUrlAliasBehaviour() + public function testCreateGlobalUrlAliasBehaviour(): void { $handlerMock = $this->getPartlyMockedHandler(['createUrlAlias']); @@ -1907,7 +1922,7 @@ public function testCreateGlobalUrlAliasBehaviour() */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAlias() + public function testCreateCustomUrlAlias(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -1952,7 +1967,7 @@ public function testCreateCustomUrlAlias() */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasWithNonameParts() + public function testCreateCustomUrlAliasWithNonameParts(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -2026,7 +2041,7 @@ public function testCreateCustomUrlAliasWithNonameParts() */ #[Group('create')] #[Group('custom')] - public function testCreatedCustomUrlAliasIsLoadable() + public function testCreatedCustomUrlAliasIsLoadable(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -2128,7 +2143,7 @@ public function testCreateCustomUrlAliasWithNopElement(): void */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasReusesHistory() + public function testCreateCustomUrlAliasReusesHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -2223,7 +2238,7 @@ public function testCreateCustomUrlAliasAddLanguage(): void */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage() + public function testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -2269,7 +2284,7 @@ public function testCreateCustomUrlAliasReusesHistoryOfDifferentLanguage() */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasReusesNopElement() + public function testCreateCustomUrlAliasReusesNopElement(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -2321,7 +2336,7 @@ public function testCreateCustomUrlAliasReusesNopElement() */ #[Group('create')] #[Group('custom')] - public function testCreateCustomUrlAliasReusesLocationElement() + public function testCreateCustomUrlAliasReusesLocationElement(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_reusing.php'); @@ -2352,7 +2367,7 @@ public function testCreateCustomUrlAliasReusesLocationElement() * Test for the listGlobalURLAliases() method. */ #[Depends('testLookupResourceUrlAlias')] - public function testListGlobalURLAliases() + public function testListGlobalURLAliases(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -2373,7 +2388,7 @@ public function testListGlobalURLAliases() * Test for the listGlobalURLAliases() method. */ #[Depends('testLookupResourceUrlAlias')] - public function testListGlobalURLAliasesWithLanguageCode() + public function testListGlobalURLAliasesWithLanguageCode(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -2393,7 +2408,7 @@ public function testListGlobalURLAliasesWithLanguageCode() * Test for the listGlobalURLAliases() method. */ #[Depends('testLookupResourceUrlAlias')] - public function testListGlobalURLAliasesWithOffset() + public function testListGlobalURLAliasesWithOffset(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -2412,7 +2427,7 @@ public function testListGlobalURLAliasesWithOffset() * Test for the listGlobalURLAliases() method. */ #[Depends('testLookupResourceUrlAlias')] - public function testListGlobalURLAliasesWithOffsetAndLimit() + public function testListGlobalURLAliasesWithOffsetAndLimit(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -2430,7 +2445,7 @@ public function testListGlobalURLAliasesWithOffsetAndLimit() /** * Test for the locationDeleted() method. */ - public function testLocationDeleted() + public function testLocationDeleted(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_delete.php'); @@ -2483,7 +2498,7 @@ public function testLocationDeleted() /** * Test for the locationMoved() method. */ - public function testLocationMovedHistorize() + public function testLocationMovedHistorize(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2518,7 +2533,7 @@ public function testLocationMovedHistorize() /** * Test for the locationMoved() method. */ - public function testLocationMovedHistory() + public function testLocationMovedHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2553,7 +2568,7 @@ public function testLocationMovedHistory() /** * Test for the locationMoved() method. */ - public function testLocationMovedHistorySubtree() + public function testLocationMovedHistorySubtree(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2596,7 +2611,7 @@ public function testLocationMovedHistorySubtree() /** * Test for the locationMoved() method. */ - public function testLocationMovedReparent() + public function testLocationMovedReparent(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2639,7 +2654,7 @@ public function testLocationMovedReparent() /** * Test for the locationMoved() method. */ - public function testLocationMovedReparentHistory() + public function testLocationMovedReparentHistory(): void { $this->expectException(NotFoundException::class); @@ -2655,7 +2670,7 @@ public function testLocationMovedReparentHistory() /** * Test for the locationMoved() method. */ - public function testLocationMovedReparentSubtree() + public function testLocationMovedReparentSubtree(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2702,7 +2717,7 @@ public function testLocationMovedReparentSubtree() /** * Test for the locationMoved() method. */ - public function testLocationMovedReparentSubtreeHistory() + public function testLocationMovedReparentSubtreeHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_move.php'); @@ -2816,7 +2831,7 @@ public function testLocationMovedReparentWithCustomAlias(): void /** * Test for the locationCopied() method. */ - public function testLocationCopiedCopiedLocationAliasIsValid() + public function testLocationCopiedCopiedLocationAliasIsValid(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_copy.php'); @@ -2834,7 +2849,7 @@ public function testLocationCopiedCopiedLocationAliasIsValid() /** * Test for the locationCopied() method. */ - public function testLocationCopiedCopiedSubtreeIsValid() + public function testLocationCopiedCopiedSubtreeIsValid(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_copy.php'); @@ -2852,7 +2867,7 @@ public function testLocationCopiedCopiedSubtreeIsValid() /** * Test for the locationCopied() method. */ - public function testLocationCopiedHistoryNotCopied() + public function testLocationCopiedHistoryNotCopied(): void { $this->expectException(NotFoundException::class); @@ -2867,7 +2882,7 @@ public function testLocationCopiedHistoryNotCopied() /** * Test for the locationCopied() method. */ - public function testLocationCopiedSubtreeHistoryNotCopied() + public function testLocationCopiedSubtreeHistoryNotCopied(): void { $this->expectException(NotFoundException::class); @@ -2882,7 +2897,7 @@ public function testLocationCopiedSubtreeHistoryNotCopied() /** * Test for the locationCopied() method. */ - public function testLocationCopiedSubtree() + public function testLocationCopiedSubtree(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_copy.php'); @@ -2943,7 +2958,7 @@ public function testLoadAutogeneratedUrlAlias( $alwaysAvailable, $locationId, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_multilang.php'); @@ -2980,7 +2995,7 @@ public function testLoadResourceUrlAlias( $alwaysAvailable, $destination, $id - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_resource.php'); @@ -3009,7 +3024,7 @@ public function testLoadResourceUrlAlias( * Test for the loadUrlAlias() method. */ #[DataProvider('providerForTestLookupVirtualUrlAlias')] - public function testLoadVirtualUrlAlias($url, $id) + public function testLoadVirtualUrlAlias($url, $id): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location_custom.php'); @@ -3057,7 +3072,7 @@ protected function getHistoryAlias() /** * Test for the loadUrlAlias() method. */ - public function testLoadHistoryUrlAlias() + public function testLoadHistoryUrlAlias(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_location.php'); @@ -3074,7 +3089,7 @@ public function testLoadHistoryUrlAlias() /** * Test for the loadUrlAlias() method. */ - public function testLoadUrlAliasThrowsNotFoundException() + public function testLoadUrlAliasThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -3083,7 +3098,10 @@ public function testLoadUrlAliasThrowsNotFoundException() $handler->loadUrlAlias('non-existent'); } - public static function providerForTestPublishUrlAliasForLocationSkipsReservedWord() + /** + * @return array + */ + public static function providerForTestPublishUrlAliasForLocationSkipsReservedWord(): array { return [ [ @@ -3102,7 +3120,7 @@ public static function providerForTestPublishUrlAliasForLocationSkipsReservedWor */ #[Group('publish')] #[DataProvider('providerForTestPublishUrlAliasForLocationSkipsReservedWord')] - public function testPublishUrlAliasForLocationSkipsReservedWord($text, $alias) + public function testPublishUrlAliasForLocationSkipsReservedWord($text, $alias): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_base.php'); @@ -3119,7 +3137,7 @@ public function testPublishUrlAliasForLocationSkipsReservedWord($text, $alias) * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSimple() + public function testLocationSwappedSimple(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_simple.php'); @@ -3204,7 +3222,7 @@ public function testLocationSwappedSimple() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSimpleWithHistory() + public function testLocationSwappedSimpleWithHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_simple_history.php'); @@ -3355,7 +3373,7 @@ public function testLocationSwappedSimpleWithHistory() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSimpleWithConflict() + public function testLocationSwappedSimpleWithConflict(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_simple_conflict.php'); @@ -3460,7 +3478,7 @@ public function testLocationSwappedSimpleWithConflict() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSimple() + public function testLocationSwappedSiblingsSimple(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_simple.php'); @@ -3533,7 +3551,7 @@ public function testLocationSwappedSiblingsSimple() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSimpleReverse() + public function testLocationSwappedSiblingsSimpleReverse(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_simple.php'); @@ -3606,7 +3624,7 @@ public function testLocationSwappedSiblingsSimpleReverse() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSimpleWithHistory() + public function testLocationSwappedSiblingsSimpleWithHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_simple_history.php'); @@ -3733,7 +3751,7 @@ public function testLocationSwappedSiblingsSimpleWithHistory() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSimpleWithHistoryReverse() + public function testLocationSwappedSiblingsSimpleWithHistoryReverse(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_simple_history.php'); @@ -3860,7 +3878,7 @@ public function testLocationSwappedSiblingsSimpleWithHistoryReverse() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSameName() + public function testLocationSwappedSiblingsSameName(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_same_name.php'); @@ -3933,7 +3951,7 @@ public function testLocationSwappedSiblingsSameName() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSameNameReverse() + public function testLocationSwappedSiblingsSameNameReverse(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_same_name.php'); @@ -4006,7 +4024,7 @@ public function testLocationSwappedSiblingsSameNameReverse() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedSiblingsSameNameMultipleLanguages() + public function testLocationSwappedSiblingsSameNameMultipleLanguages(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_siblings_same_name_multilang.php'); @@ -4137,7 +4155,7 @@ public function testLocationSwappedSiblingsSameNameMultipleLanguages() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedMultipleLanguagesSimple() + public function testLocationSwappedMultipleLanguagesSimple(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_multilang_simple.php'); @@ -4171,7 +4189,7 @@ public function testLocationSwappedMultipleLanguagesSimple() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedMultipleLanguagesDifferentLanguagesSimple() + public function testLocationSwappedMultipleLanguagesDifferentLanguagesSimple(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_multilang_diff_simple.php'); @@ -4392,7 +4410,7 @@ public function testLocationSwappedMultipleLanguagesDifferentLanguagesSimple() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedMultipleLanguagesDifferentLanguages() + public function testLocationSwappedMultipleLanguagesDifferentLanguages(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_multilang_diff.php'); @@ -4549,7 +4567,7 @@ public function testLocationSwappedMultipleLanguagesDifferentLanguages() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedMultipleLanguagesWithCompositeHistory() + public function testLocationSwappedMultipleLanguagesWithCompositeHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_multilang_cleanup_composite.php'); @@ -4841,7 +4859,7 @@ public function testLocationSwappedMultipleLanguagesWithCompositeHistory() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedWithReusingExternalHistory() + public function testLocationSwappedWithReusingExternalHistory(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_reusing_external_history.php'); @@ -4992,7 +5010,7 @@ public function testLocationSwappedWithReusingExternalHistory() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedWithReusingNopEntry() + public function testLocationSwappedWithReusingNopEntry(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_reusing_nop.php'); @@ -5144,7 +5162,7 @@ public function testLocationSwappedWithReusingNopEntry() */ #[Depends('testLocationSwappedWithReusingNopEntry')] #[Group('swap')] - public function testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed() + public function testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed(): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlaliases_swap_reusing_nop.php'); @@ -5166,7 +5184,7 @@ public function testLocationSwappedWithReusingNopEntryCustomAliasIsDestroyed() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedUpdatesLocationPathIdentificationString() + public function testLocationSwappedUpdatesLocationPathIdentificationString(): void { $handler = $this->getHandler(); $locationGateway = $this->getLocationGateway(); @@ -5192,7 +5210,7 @@ public function testLocationSwappedUpdatesLocationPathIdentificationString() * Test for the locationSwapped() method. */ #[Group('swap')] - public function testLocationSwappedMultipleLanguagesUpdatesLocationPathIdentificationString() + public function testLocationSwappedMultipleLanguagesUpdatesLocationPathIdentificationString(): void { $handler = $this->getHandler(); $locationGateway = $this->getLocationGateway(); @@ -5364,7 +5382,7 @@ public function getProcessor() * * @return array */ - public static function providerForArchiveUrlAliasesForDeletedTranslations() + public static function providerForArchiveUrlAliasesForDeletedTranslations(): array { return [ [2, ['eng-GB', 'pol-PL'], 'pol-PL'], @@ -5382,7 +5400,7 @@ public function testArchiveUrlAliasesForDeletedTranslations( $locationId, array $expectedLanguages, $removeLanguage - ) { + ): void { $handler = $this->getHandler(); $this->insertDatabaseFixture(__DIR__ . '/_fixtures/publish_multilingual.php'); diff --git a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php index e497f790ae..c9c6c4681d 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlAlias/UrlAliasMapperTest.php @@ -230,7 +230,10 @@ protected function getExpectation() ]; } - public static function providerForTestExtractUrlAliasFromData() + /** + * @return array + */ + public static function providerForTestExtractUrlAliasFromData(): array { return [[0], [1], [2], [3]]; } @@ -239,7 +242,7 @@ public static function providerForTestExtractUrlAliasFromData() * Test for the extractUrlAliasFromData() method. */ #[DataProvider('providerForTestExtractUrlAliasFromData')] - public function testExtractUrlAliasFromData($index) + public function testExtractUrlAliasFromData($index): void { $mapper = $this->getMapper(); @@ -256,7 +259,7 @@ public function testExtractUrlAliasFromData($index) * Test for the extractUrlAliasListFromData() method. */ #[Depends('testExtractUrlAliasFromData')] - public function testExtractUrlAliasListFromData() + public function testExtractUrlAliasListFromData(): void { $mapper = $this->getMapper(); @@ -269,7 +272,7 @@ public function testExtractUrlAliasListFromData() /** * Test for the extractLanguageCodesFromData method. */ - public function testExtractLanguageCodesFromData() + public function testExtractLanguageCodesFromData(): void { $mapper = $this->getMapper(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php index 81a20a57e5..ff5a993173 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/Gateway/DoctrineDatabaseTest.php @@ -50,7 +50,7 @@ class DoctrineDatabaseTest extends TestCase /** * Test for the loadUrlWildcardData() method. */ - public function testLoadUrlWildcardData() + public function testLoadUrlWildcardData(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); @@ -66,7 +66,7 @@ public function testLoadUrlWildcardData() /** * Test for the loadUrlWildcardsData() method. */ - public function testLoadUrlWildcardsData() + public function testLoadUrlWildcardsData(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); @@ -82,7 +82,7 @@ public function testLoadUrlWildcardsData() /** * Test for the loadUrlWildcardsData() method. */ - public function testLoadUrlWildcardsDataWithOffset() + public function testLoadUrlWildcardsDataWithOffset(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); @@ -101,7 +101,7 @@ public function testLoadUrlWildcardsDataWithOffset() /** * Test for the loadUrlWildcardsData() method. */ - public function testLoadUrlWildcardsDataWithOffsetAndLimit() + public function testLoadUrlWildcardsDataWithOffsetAndLimit(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); @@ -120,7 +120,7 @@ public function testLoadUrlWildcardsDataWithOffsetAndLimit() * Test for the insertUrlWildcard() method. */ #[Depends('testLoadUrlWildcardData')] - public function testInsertUrlWildcard() + public function testInsertUrlWildcard(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); @@ -150,7 +150,7 @@ public function testInsertUrlWildcard() * Test for the deleteUrlWildcard() method. */ #[Depends('testLoadUrlWildcardData')] - public function testDeleteUrlWildcard() + public function testDeleteUrlWildcard(): void { $this->insertDatabaseFixture(__DIR__ . '/_fixtures/urlwildcards.php'); $gateway = $this->getGateway(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php index 43238cd329..83a1bde9d2 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardHandlerTest.php @@ -22,7 +22,7 @@ #[CoversClass(Handler::class)] class UrlWildcardHandlerTest extends TestCase { - public function testLoad() + public function testLoad(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); $handler = $this->getHandler(); @@ -45,7 +45,7 @@ public function testLoad() /** * Test for the load() method. */ - public function testLoadThrowsNotFoundException() + public function testLoadThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -59,7 +59,7 @@ public function testLoadThrowsNotFoundException() * Test for the create() method. */ #[Depends('testLoad')] - public function testCreate() + public function testCreate(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); $handler = $this->getHandler(); @@ -125,7 +125,7 @@ public function testUpdate(): void * Test for the remove() method. */ #[Depends('testLoad')] - public function testRemove() + public function testRemove(): void { $this->expectException(NotFoundException::class); @@ -139,7 +139,7 @@ public function testRemove() /** * Test for the loadAll() method. */ - public function testLoadAll() + public function testLoadAll(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); $handler = $this->getHandler(); @@ -159,7 +159,7 @@ public function testLoadAll() /** * Test for the loadAll() method. */ - public function testLoadAllWithOffset() + public function testLoadAllWithOffset(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); $handler = $this->getHandler(); @@ -177,7 +177,7 @@ public function testLoadAllWithOffset() /** * Test for the loadAll() method. */ - public function testLoadAllWithOffsetAndLimit() + public function testLoadAllWithOffsetAndLimit(): void { $this->insertDatabaseFixture(__DIR__ . '/Gateway/_fixtures/urlwildcards.php'); $handler = $this->getHandler(); diff --git a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php index 5ec0c4550a..3e8c46e244 100644 --- a/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/UrlWildcard/UrlWildcardMapperTest.php @@ -18,7 +18,7 @@ class UrlWildcardMapperTest extends TestCase /** * Test for the createUrlWildcard() method. */ - public function testCreateUrlWildcard() + public function testCreateUrlWildcard(): void { $mapper = $this->getMapper(); @@ -44,7 +44,7 @@ public function testCreateUrlWildcard() /** * Test for the extractUrlWildcardFromRow() method. */ - public function testExtractUrlWildcardFromRow() + public function testExtractUrlWildcardFromRow(): void { $mapper = $this->getMapper(); $row = [ @@ -72,7 +72,7 @@ public function testExtractUrlWildcardFromRow() /** * Test for the extractUrlWildcardFromRow() method. */ - public function testExtractUrlWildcardsFromRows() + public function testExtractUrlWildcardsFromRows(): void { $mapper = $this->getMapper(); $rows = [ diff --git a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php index c992ab0ac3..85ba1e0ecf 100644 --- a/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Notification/Gateway/DoctrineDatabaseTest.php @@ -42,7 +42,7 @@ protected function setUp(): void ); } - public function testInsert() + public function testInsert(): void { $id = $this->getGateway()->insert(new CreateStruct([ 'ownerId' => 14, @@ -64,7 +64,7 @@ public function testInsert() ], $data); } - public function testGetNotificationById() + public function testGetNotificationById(): void { $data = $this->getGateway()->getNotificationById(self::EXISTING_NOTIFICATION_ID); @@ -73,7 +73,7 @@ public function testGetNotificationById() ], $data); } - public function testUpdateNotification() + public function testUpdateNotification(): void { $notification = new Notification([ 'id' => self::EXISTING_NOTIFICATION_ID, @@ -96,7 +96,7 @@ public function testUpdateNotification() ], $this->loadNotification(self::EXISTING_NOTIFICATION_ID)); } - public function testCountUserNotifications() + public function testCountUserNotifications(): void { self::assertEquals( 5, @@ -106,7 +106,7 @@ public function testCountUserNotifications() ); } - public function testCountUserPendingNotifications() + public function testCountUserPendingNotifications(): void { self::assertEquals( 3, @@ -217,7 +217,7 @@ public function testFindUserNotifications(): void self::assertEquals([], $resultsWithNoResults); } - public function testDelete() + public function testDelete(): void { $this->getGateway()->delete(self::EXISTING_NOTIFICATION_ID); diff --git a/tests/lib/Persistence/Legacy/Notification/HandlerTest.php b/tests/lib/Persistence/Legacy/Notification/HandlerTest.php index 7e0b3ae9e3..ca9506e2b8 100644 --- a/tests/lib/Persistence/Legacy/Notification/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/Notification/HandlerTest.php @@ -41,7 +41,7 @@ protected function setUp(): void $this->handler = new Handler($this->gateway, $this->mapper); } - public function testCreateNotification() + public function testCreateNotification(): void { $createStruct = new CreateStruct([ 'ownerId' => 5, @@ -69,7 +69,7 @@ public function testCreateNotification() self::assertEquals($notification->id, self::NOTIFICATION_ID); } - public function testCountPendingNotifications() + public function testCountPendingNotifications(): void { $ownerId = 10; $expectedCount = 12; @@ -83,7 +83,7 @@ public function testCountPendingNotifications() self::assertEquals($expectedCount, $this->handler->countPendingNotifications($ownerId)); } - public function testGetNotificationById() + public function testGetNotificationById(): void { $rows = [ [ @@ -133,7 +133,7 @@ public function testBulkUpdateUserNotifications(): void self::assertEquals([1, 2, 3], $result); } - public function testUpdateNotification() + public function testUpdateNotification(): void { $updateStruct = new UpdateStruct([ 'isPending' => false, @@ -172,7 +172,7 @@ public function testUpdateNotification() $this->handler->updateNotification($apiNotification, $updateStruct); } - public function testCountNotifications() + public function testCountNotifications(): void { $ownerId = 10; $expectedCount = 12; @@ -261,7 +261,7 @@ public function testFindUserNotifications(): void self::assertEquals($objects, $this->handler->findUserNotifications($ownerId, $query)); } - public function testDelete() + public function testDelete(): void { $notification = new APINotification([ 'id' => self::NOTIFICATION_ID, /* ... */ diff --git a/tests/lib/Persistence/Legacy/Notification/MapperTest.php b/tests/lib/Persistence/Legacy/Notification/MapperTest.php index 6af9320104..d4cc73b941 100644 --- a/tests/lib/Persistence/Legacy/Notification/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Notification/MapperTest.php @@ -25,7 +25,7 @@ protected function setUp(): void $this->mapper = new Mapper(); } - public function testExtractNotificationsFromRows() + public function testExtractNotificationsFromRows(): void { $rows = [ [ @@ -76,7 +76,7 @@ public function testExtractNotificationsFromRows() self::assertEquals($objects, $this->mapper->extractNotificationsFromRows($rows)); } - public function testExtractNotificationsFromRowsThrowsRuntimeException() + public function testExtractNotificationsFromRowsThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); @@ -94,7 +94,7 @@ public function testExtractNotificationsFromRowsThrowsRuntimeException() $this->mapper->extractNotificationsFromRows($rows); } - public function testCreateNotificationFromUpdateStruct() + public function testCreateNotificationFromUpdateStruct(): void { $updateStruct = new UpdateStruct([ 'isPending' => false, diff --git a/tests/lib/Persistence/Legacy/TransactionHandlerTest.php b/tests/lib/Persistence/Legacy/TransactionHandlerTest.php index 366fa5f507..e154530770 100644 --- a/tests/lib/Persistence/Legacy/TransactionHandlerTest.php +++ b/tests/lib/Persistence/Legacy/TransactionHandlerTest.php @@ -34,7 +34,7 @@ class TransactionHandlerTest extends TestCase /** @var \Ibexa\Contracts\Core\Persistence\Content\Language\Handler|\PHPUnit\Framework\MockObject\MockObject */ protected $languageHandlerMock; - public function testBeginTransaction() + public function testBeginTransaction(): void { $handler = $this->getTransactionHandler(); $this->getConnectionMock() @@ -50,7 +50,7 @@ public function testBeginTransaction() $handler->beginTransaction(); } - public function testCommit() + public function testCommit(): void { $handler = $this->getTransactionHandler(); $this->getConnectionMock() @@ -66,7 +66,7 @@ public function testCommit() $handler->commit(); } - public function testCommitException() + public function testCommitException(): void { $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('test'); @@ -86,7 +86,7 @@ public function testCommitException() $handler->commit(); } - public function testRollback() + public function testRollback(): void { $handler = $this->getTransactionHandler(); $this->getConnectionMock() @@ -102,7 +102,7 @@ public function testRollback() $handler->rollback(); } - public function testRollbackException() + public function testRollbackException(): void { $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('test'); diff --git a/tests/lib/Persistence/Legacy/URL/HandlerTest.php b/tests/lib/Persistence/Legacy/URL/HandlerTest.php index bcf3201ffc..ee318d1476 100644 --- a/tests/lib/Persistence/Legacy/URL/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/URL/HandlerTest.php @@ -37,7 +37,7 @@ protected function setUp(): void $this->handler = new Handler($this->gateway, $this->mapper); } - public function testUpdateUrl() + public function testUpdateUrl(): void { $urlUpdateStruct = new URLUpdateStruct(); $url = $this->getUrl(1, 'http://ibexa.co'); @@ -56,7 +56,7 @@ public function testUpdateUrl() self::assertEquals($url, $this->handler->updateUrl($url->id, $urlUpdateStruct)); } - public function testFind() + public function testFind(): void { $query = new URLQuery(); $query->filter = new Criterion\Validity(true); @@ -98,7 +98,7 @@ public function testFind() self::assertEquals($expected, $this->handler->find($query)); } - public function testLoadByIdWithoutUrlData() + public function testLoadByIdWithoutUrlData(): void { $this->expectException(NotFoundException::class); @@ -119,7 +119,7 @@ public function testLoadByIdWithoutUrlData() $this->handler->loadById($id); } - public function testLoadByIdWithUrlData() + public function testLoadByIdWithUrlData(): void { $url = $this->getUrl(1, 'http://ibexa.co'); @@ -138,7 +138,7 @@ public function testLoadByIdWithUrlData() self::assertEquals($url, $this->handler->loadById($url->id)); } - public function testLoadByUrlWithoutUrlData() + public function testLoadByUrlWithoutUrlData(): void { $this->expectException(NotFoundException::class); @@ -159,7 +159,7 @@ public function testLoadByUrlWithoutUrlData() $this->handler->loadByUrl($url); } - public function testLoadByUrlWithUrlData() + public function testLoadByUrlWithUrlData(): void { $url = $this->getUrl(1, 'http://ibexa.co'); @@ -178,7 +178,7 @@ public function testLoadByUrlWithUrlData() self::assertEquals($url, $this->handler->loadByUrl($url->url)); } - public function testFindUsages() + public function testFindUsages(): void { $url = $this->getUrl(); $ids = [1, 2, 3]; diff --git a/tests/lib/Persistence/Legacy/URL/MapperTest.php b/tests/lib/Persistence/Legacy/URL/MapperTest.php index c60cd23725..d986201f67 100644 --- a/tests/lib/Persistence/Legacy/URL/MapperTest.php +++ b/tests/lib/Persistence/Legacy/URL/MapperTest.php @@ -23,7 +23,7 @@ protected function setUp(): void $this->mapper = new Mapper(); } - public function testCreateURLFromUpdateStruct() + public function testCreateURLFromUpdateStruct(): void { $urlUpdateStruct = new URLUpdateStruct(); $urlUpdateStruct->url = 'https://ibexa.co'; @@ -42,7 +42,7 @@ public function testCreateURLFromUpdateStruct() self::assertEquals($expected, $this->mapper->createURLFromUpdateStruct($urlUpdateStruct)); } - public function testExtractURLsFromRows() + public function testExtractURLsFromRows(): void { $rows = [ [ diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php index 95cdcee360..def242edbc 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/CriterionHandlerTestCase.php @@ -17,9 +17,9 @@ abstract class CriterionHandlerTestCase extends TestCase { - abstract public function testAccept(); + abstract public function testAccept(): void; - abstract public function testHandle(); + abstract public function testHandle(): void; /** * Check if critetion handler accepts specyfied criterion class. diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php index 49efefc54a..5cb74779dd 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalAndTest.php @@ -18,7 +18,7 @@ class LogicalAndTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new LogicalAndHandler(); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php index 0e62af35fd..abf2796f30 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalNotTest.php @@ -18,7 +18,7 @@ class LogicalNotTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new LogicalNotHandler(); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php index 69a8bd451d..51901cea60 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/LogicalOrTest.php @@ -18,7 +18,7 @@ class LogicalOrTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new LogicalOrHandler(); diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php index b75fe616ae..d8257928e6 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchAllTest.php @@ -18,7 +18,7 @@ class MatchAllTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new MatchAllHandler(); @@ -29,7 +29,7 @@ public function testAccept() /** * {@inheritdoc} */ - public function testHandle() + public function testHandle(): void { $criterion = new MatchAll(); $expected = '1 = 1'; diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php index 9d59ee67b4..165229d31e 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/MatchNoneTest.php @@ -18,7 +18,7 @@ class MatchNoneTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new MatchNoneHandler(); @@ -29,7 +29,7 @@ public function testAccept() /** * {@inheritdoc} */ - public function testHandle() + public function testHandle(): void { $criterion = new MatchNone(); $expected = '1 = 0'; diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php index 399167eeea..c2626e032f 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/PatternTest.php @@ -20,7 +20,7 @@ class PatternTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new PatternHandler(); @@ -31,7 +31,7 @@ public function testAccept() /** * {@inheritdoc} */ - public function testHandle() + public function testHandle(): void { $criterion = new Pattern('google.com'); $expected = 'url LIKE :pattern'; diff --git a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php index ba66a40a68..bbc63a43a0 100644 --- a/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php +++ b/tests/lib/Persistence/Legacy/URL/Query/CriterionHandler/ValidityTest.php @@ -20,7 +20,7 @@ class ValidityTest extends CriterionHandlerTestCase /** * {@inheritdoc} */ - public function testAccept() + public function testAccept(): void { $handler = new ValidityHandler(); @@ -31,7 +31,7 @@ public function testAccept() /** * {@inheritdoc} */ - public function testHandle() + public function testHandle(): void { $criterion = new Validity(true); $expected = 'is_valid = :is_valid'; diff --git a/tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php b/tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php index c8ba825884..21114719cb 100644 --- a/tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php +++ b/tests/lib/Persistence/Legacy/User/Role/LimitationConverterTest.php @@ -28,7 +28,7 @@ protected function getLimitationConverter() /** * Test Object State from SPI value (supported by API) to legacy value (database). */ - public function testObjectStateToLegacy() + public function testObjectStateToLegacy(): void { $this->insertSharedDatabaseFixture(); @@ -81,7 +81,7 @@ public function testObjectStateToLegacy() /** * Test Object State from legacy value (database) to SPI value (supported by API). */ - public function testObjectStateToSPI() + public function testObjectStateToSPI(): void { $this->insertSharedDatabaseFixture(); diff --git a/tests/lib/Persistence/Legacy/User/UserHandlerTest.php b/tests/lib/Persistence/Legacy/User/UserHandlerTest.php index 62457f3e48..05566c107c 100644 --- a/tests/lib/Persistence/Legacy/User/UserHandlerTest.php +++ b/tests/lib/Persistence/Legacy/User/UserHandlerTest.php @@ -69,7 +69,7 @@ protected function getValidUserToken($time = null) return $userToken; } - public function testCreateUser() + public function testCreateUser(): void { $handler = $this->getUserHandler(); @@ -105,7 +105,7 @@ protected function getDummyUser( ]; } - public function testLoadUser() + public function testLoadUser(): void { $gatewayMock = $this ->createMock(User\Gateway::class); @@ -125,7 +125,7 @@ public function testLoadUser() ); } - public function testLoadUnknownUser() + public function testLoadUnknownUser(): void { $this->expectException(NotFoundException::class); $gatewayMock = $this @@ -141,7 +141,7 @@ public function testLoadUnknownUser() $handler->load(1337); } - public function testLoadUserByLogin() + public function testLoadUserByLogin(): void { $gatewayMock = $this ->createMock(User\Gateway::class); @@ -161,7 +161,7 @@ public function testLoadUserByLogin() ); } - public function testLoadMultipleUsersByLogin() + public function testLoadMultipleUsersByLogin(): void { $this->expectException(LogicException::class); @@ -182,7 +182,7 @@ public function testLoadMultipleUsersByLogin() $handler->loadByLogin($user->login); } - public function testLoadMultipleUsersByEmail() + public function testLoadMultipleUsersByEmail(): void { $this->expectException(LogicException::class); @@ -203,7 +203,7 @@ public function testLoadMultipleUsersByEmail() $handler->loadByEmail($user->email); } - public function testLoadUserByEmailNotFound() + public function testLoadUserByEmailNotFound(): void { $this->expectException(NotFoundException::class); @@ -213,7 +213,7 @@ public function testLoadUserByEmailNotFound() $handler->loadByLogin($user->email); } - public function testLoadUserByEmail() + public function testLoadUserByEmail(): void { $gatewayMock = $this ->createMock(User\Gateway::class); @@ -233,7 +233,7 @@ public function testLoadUserByEmail() ); } - public function testLoadUsersByEmail() + public function testLoadUsersByEmail(): void { $gatewayMock = $this ->createMock(User\Gateway::class); @@ -253,7 +253,7 @@ public function testLoadUsersByEmail() ); } - public function testLoadUserByTokenNotFound() + public function testLoadUserByTokenNotFound(): void { $this->expectException(NotFoundException::class); @@ -263,7 +263,7 @@ public function testLoadUserByTokenNotFound() $handler->loadUserByToken('asd'); } - public function testLoadUserByToken() + public function testLoadUserByToken(): void { $gatewayMock = $this ->createMock(User\Gateway::class); @@ -285,7 +285,7 @@ public function testLoadUserByToken() ); } - public function testUpdateUserToken() + public function testUpdateUserToken(): void { $handler = $this->getUserHandler(); @@ -316,7 +316,7 @@ public function testUpdateUserToken() ); } - public function testExpireUserToken() + public function testExpireUserToken(): void { $handler = $this->getUserHandler(); @@ -347,7 +347,7 @@ public function testExpireUserToken() ); } - public function testDeleteNonExistingUser() + public function testDeleteNonExistingUser(): void { $handler = $this->getUserHandler(); @@ -355,7 +355,7 @@ public function testDeleteNonExistingUser() $handler->delete(1337); } - public function testUpdateUser() + public function testUpdateUser(): void { $handler = $this->getUserHandler(); $user = $this->getValidUser(); @@ -365,7 +365,7 @@ public function testUpdateUser() $handler->update($user); } - public function testUpdateUserSettings() + public function testUpdateUserSettings(): void { $handler = $this->getUserHandler(); $user = $this->getValidUser(); @@ -375,7 +375,7 @@ public function testUpdateUserSettings() $handler->update($user); } - public function testCreateNewRoleWithoutPolicies() + public function testCreateNewRoleWithoutPolicies(): void { $handler = $this->getUserHandler(); @@ -395,7 +395,7 @@ public function testCreateNewRoleWithoutPolicies() ); } - public function testCreateRoleDraftWithoutPolicies() + public function testCreateRoleDraftWithoutPolicies(): void { $handler = $this->getUserHandler(); @@ -422,7 +422,7 @@ public function testCreateRoleDraftWithoutPolicies() ); } - public function testCreateNewRoleRoleId() + public function testCreateNewRoleRoleId(): void { $handler = $this->getUserHandler(); @@ -434,7 +434,7 @@ public function testCreateNewRoleRoleId() self::assertSame(1, $roleDraft->id); } - public function testLoadRole() + public function testLoadRole(): void { $handler = $this->getUserHandler(); @@ -451,7 +451,7 @@ public function testLoadRole() ); } - public function testLoadRoleWithPolicies() + public function testLoadRoleWithPolicies(): void { $handler = $this->getUserHandler(); @@ -485,7 +485,7 @@ public function testLoadRoleWithPolicies() ); } - public function testLoadRoleWithPoliciesAndGroups() + public function testLoadRoleWithPoliciesAndGroups(): void { $handler = $this->getUserHandler(); @@ -523,7 +523,7 @@ public function testLoadRoleWithPoliciesAndGroups() ); } - public function testLoadRoleWithPolicyLimitations() + public function testLoadRoleWithPolicyLimitations(): void { $handler = $this->getUserHandler(); @@ -564,7 +564,7 @@ public function testLoadRoleWithPolicyLimitations() ); } - public function testLoadRoles() + public function testLoadRoles(): void { $handler = $this->getUserHandler(); @@ -581,7 +581,7 @@ public function testLoadRoles() ); } - public function testUpdateRole() + public function testUpdateRole(): void { $handler = $this->getUserHandler(); @@ -600,7 +600,7 @@ public function testUpdateRole() ); } - public function testDeleteRole() + public function testDeleteRole(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -627,7 +627,7 @@ public function testDeleteRole() ); } - public function testDeleteRoleDraft() + public function testDeleteRoleDraft(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -655,7 +655,7 @@ public function testDeleteRoleDraft() ); } - public function testAddPolicyToRoleLimitations() + public function testAddPolicyToRoleLimitations(): void { $handler = $this->getUserHandler(); @@ -674,7 +674,7 @@ public function testAddPolicyToRoleLimitations() ); } - public function testAddPolicyPolicyId() + public function testAddPolicyPolicyId(): void { $handler = $this->getUserHandler(); @@ -689,7 +689,7 @@ public function testAddPolicyPolicyId() self::assertEquals(1, $policy->id); } - public function testAddPolicyLimitations() + public function testAddPolicyLimitations(): void { $this->createTestRoleWithTestPolicy(); @@ -703,7 +703,7 @@ public function testAddPolicyLimitations() ); } - public function testAddPolicyLimitationValues() + public function testAddPolicyLimitationValues(): void { $this->createTestRoleWithTestPolicy(); @@ -744,7 +744,7 @@ protected function createRole() return $handler->createRole($createStruct); } - public function testImplicitlyCreatePolicies() + public function testImplicitlyCreatePolicies(): void { $this->createRole(); @@ -758,7 +758,7 @@ public function testImplicitlyCreatePolicies() ); } - public function testDeletePolicy() + public function testDeletePolicy(): void { $handler = $this->getUserHandler(); @@ -775,7 +775,7 @@ public function testDeletePolicy() ); } - public function testDeletePolicyLimitations() + public function testDeletePolicyLimitations(): void { $handler = $this->getUserHandler(); @@ -788,7 +788,7 @@ public function testDeletePolicyLimitations() ); } - public function testDeletePolicyLimitationValues() + public function testDeletePolicyLimitationValues(): void { $handler = $this->getUserHandler(); @@ -801,7 +801,7 @@ public function testDeletePolicyLimitationValues() ); } - public function testUpdatePolicies() + public function testUpdatePolicies(): void { $handler = $this->getUserHandler(); @@ -831,7 +831,7 @@ public function testUpdatePolicies() ); } - public function testAddRoleToUser() + public function testAddRoleToUser(): void { $handler = $this->getUserHandler(); @@ -851,7 +851,7 @@ public function testAddRoleToUser() ); } - public function testAddRoleToUserWithLimitation() + public function testAddRoleToUserWithLimitation(): void { $handler = $this->getUserHandler(); @@ -877,7 +877,7 @@ public function testAddRoleToUserWithLimitation() ); } - public function testAddRoleToUserWithComplexLimitation() + public function testAddRoleToUserWithComplexLimitation(): void { $handler = $this->getUserHandler(); @@ -906,7 +906,7 @@ public function testAddRoleToUserWithComplexLimitation() ); } - public function testRemoveUserRoleAssociation() + public function testRemoveUserRoleAssociation(): void { $handler = $this->getUserHandler(); @@ -933,7 +933,7 @@ public function testRemoveUserRoleAssociation() ); } - public function testLoadRoleAssignmentsByGroupId() + public function testLoadRoleAssignmentsByGroupId(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -977,7 +977,7 @@ public function testLoadRoleAssignmentsByGroupId() ); } - public function testLoadRoleAssignmentsByGroupIdInherited() + public function testLoadRoleAssignmentsByGroupIdInherited(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -996,7 +996,7 @@ public function testLoadRoleAssignmentsByGroupIdInherited() ); } - public function testLoadComplexRoleAssignments() + public function testLoadComplexRoleAssignments(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -1123,7 +1123,7 @@ public function testLoadRoleAssignmentsByRoleIdWithOffsetAndLimit(): void ); } - public function testLoadRoleDraftByRoleId() + public function testLoadRoleDraftByRoleId(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); @@ -1136,7 +1136,7 @@ public function testLoadRoleDraftByRoleId() self::assertEquals($draft, $loadedDraft); } - public function testRoleDraftOnlyHavePolicyDraft() + public function testRoleDraftOnlyHavePolicyDraft(): void { $this->insertSharedDatabaseFixture(); $handler = $this->getUserHandler(); diff --git a/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php index df25baf9b7..b4017b7ce5 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/Gateway/DoctrineDatabaseTest.php @@ -35,7 +35,7 @@ protected function setUp(): void ); } - public function testInsert() + public function testInsert(): void { $id = $this->getGateway()->setUserPreference(new UserPreferenceSetStruct([ 'userId' => 14, @@ -53,7 +53,7 @@ public function testInsert() ], $data); } - public function testUpdateUserPreference() + public function testUpdateUserPreference(): void { $userPreference = new UserPreferenceSetStruct([ 'userId' => 14, @@ -71,14 +71,14 @@ public function testUpdateUserPreference() ], $this->loadUserPreference(self::EXISTING_USER_PREFERENCE_ID)); } - public function testCountUserPreferences() + public function testCountUserPreferences(): void { self::assertEquals(3, $this->getGateway()->countUserPreferences( self::EXISTING_USER_PREFERENCE_DATA['user_id'] )); } - public function testLoadUserPreferences() + public function testLoadUserPreferences(): void { $userId = 14; $offset = 1; diff --git a/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php b/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php index 8f8a886416..114083a317 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/HandlerTest.php @@ -37,7 +37,7 @@ protected function setUp(): void $this->handler = new Handler($this->gateway, $this->mapper); } - public function testSetUserPreference() + public function testSetUserPreference(): void { $setStruct = new UserPreferenceSetStruct([ 'userId' => 5, @@ -63,7 +63,7 @@ public function testSetUserPreference() self::assertEquals($userPreference->id, self::USER_PREFERENCE_ID); } - public function testCountUserPreferences() + public function testCountUserPreferences(): void { $ownerId = 10; $expectedCount = 12; @@ -77,7 +77,7 @@ public function testCountUserPreferences() self::assertEquals($expectedCount, $this->handler->countUserPreferences($ownerId)); } - public function testLoadUserPreferences() + public function testLoadUserPreferences(): void { $ownerId = 9; $limit = 5; diff --git a/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php b/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php index 3926c071b1..9f25a840df 100644 --- a/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php +++ b/tests/lib/Persistence/Legacy/UserPreference/MapperTest.php @@ -24,7 +24,7 @@ protected function setUp(): void $this->mapper = new Mapper(); } - public function testExtractUserPreferencesFromRows() + public function testExtractUserPreferencesFromRows(): void { $rows = [ [ diff --git a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php index 448b6cd455..a718f9adde 100644 --- a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php +++ b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorDefinitionBasedTest.php @@ -28,7 +28,7 @@ public function getProcessor() ); } - public function testSimpleNormalizationLowercase() + public function testSimpleNormalizationLowercase(): void { $processor = $this->getProcessor(); @@ -38,7 +38,7 @@ public function testSimpleNormalizationLowercase() ); } - public function testSimpleNormalizationUppercase() + public function testSimpleNormalizationUppercase(): void { $processor = $this->getProcessor(); @@ -48,7 +48,7 @@ public function testSimpleNormalizationUppercase() ); } - public function testApplyAllLowercaseNormalizations() + public function testApplyAllLowercaseNormalizations(): void { $processor = $this->getProcessor(); @@ -63,7 +63,7 @@ public function testApplyAllLowercaseNormalizations() * available can be compiled without errors. The actual expectation is not * important. */ - public function testAllNormalizations() + public function testAllNormalizations(): void { $processor = $this->getProcessor(); diff --git a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php index bda7c272a3..03dcf91940 100644 --- a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php +++ b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPcreCompilerTest.php @@ -34,7 +34,7 @@ protected function applyTransformations(array $transformations, $string) return $string; } - public function testCompileMap() + public function testCompileMap(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -52,7 +52,7 @@ public function testCompileMap() ); } - public function testCompileMapRemove() + public function testCompileMapRemove(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -70,7 +70,7 @@ public function testCompileMapRemove() ); } - public function testCompileMapKeep() + public function testCompileMapKeep(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -88,7 +88,7 @@ public function testCompileMapKeep() ); } - public function testCompileMapAscii() + public function testCompileMapAscii(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -106,7 +106,7 @@ public function testCompileMapAscii() ); } - public function testCompileMapUnicode() + public function testCompileMapUnicode(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -124,7 +124,7 @@ public function testCompileMapUnicode() ); } - public function testCompileReplace() + public function testCompileReplace(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -142,7 +142,7 @@ public function testCompileReplace() ); } - public function testCompileTranspose() + public function testCompileTranspose(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -160,7 +160,7 @@ public function testCompileTranspose() ); } - public function testCompileTransposeAsciiLowercase() + public function testCompileTransposeAsciiLowercase(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -178,7 +178,7 @@ public function testCompileTransposeAsciiLowercase() ); } - public function testCompileTransposePlus() + public function testCompileTransposePlus(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); @@ -196,7 +196,7 @@ public function testCompileTransposePlus() ); } - public function testCompileModuloTranspose() + public function testCompileModuloTranspose(): void { $parser = new Persistence\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir()); $compiler = new Persistence\TransformationProcessor\PcreCompiler(new Persistence\Utf8Converter()); diff --git a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php index f94991fd5b..5d2e97690c 100644 --- a/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php +++ b/tests/lib/Persistence/TransformationProcessor/TransformationProcessorPreprocessedBasedTest.php @@ -29,7 +29,7 @@ public function getProcessor() ); } - public function testSimpleNormalizationLowercase() + public function testSimpleNormalizationLowercase(): void { $processor = $this->getProcessor(); @@ -39,7 +39,7 @@ public function testSimpleNormalizationLowercase() ); } - public function testSimpleNormalizationUppercase() + public function testSimpleNormalizationUppercase(): void { $processor = $this->getProcessor(); @@ -54,7 +54,7 @@ public function testSimpleNormalizationUppercase() * available can be compiled without errors. The actual expectation is not * important. */ - public function testAllNormalizations() + public function testAllNormalizations(): void { $processor = $this->getProcessor(); diff --git a/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php b/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php index f0f098ec3d..53603d92a1 100644 --- a/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php +++ b/tests/lib/Repository/ContentThumbnail/StaticStrategyTest.php @@ -16,7 +16,7 @@ class StaticStrategyTest extends TestCase { - public function testStaticStrategy() + public function testStaticStrategy(): void { $resource = 'static-test-resource'; diff --git a/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php b/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php index 5a7e4d0981..e68ccb5589 100644 --- a/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/BookmarkServiceDecoratorTest.php @@ -27,7 +27,7 @@ protected function createServiceMock(): MockObject return $this->createMock(BookmarkService::class); } - public function testCreateBookmarkDecorator() + public function testCreateBookmarkDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -39,7 +39,7 @@ public function testCreateBookmarkDecorator() $decoratedService->createBookmark(...$parameters); } - public function testDeleteBookmarkDecorator() + public function testDeleteBookmarkDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -51,7 +51,7 @@ public function testDeleteBookmarkDecorator() $decoratedService->deleteBookmark(...$parameters); } - public function testLoadBookmarksDecorator() + public function testLoadBookmarksDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -66,7 +66,7 @@ public function testLoadBookmarksDecorator() $decoratedService->loadBookmarks(...$parameters); } - public function testIsBookmarkedDecorator() + public function testIsBookmarkedDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php index 3d3d2274bb..9498b0d92b 100644 --- a/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ContentServiceDecoratorTest.php @@ -43,7 +43,7 @@ protected function createServiceMock(): ContentService&MockObject return $this->createMock(ContentService::class); } - public function testLoadContentInfoDecorator() + public function testLoadContentInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -55,7 +55,7 @@ public function testLoadContentInfoDecorator() $decoratedService->loadContentInfo(...$parameters); } - public function testLoadContentInfoListDecorator() + public function testLoadContentInfoListDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -67,7 +67,7 @@ public function testLoadContentInfoListDecorator() $decoratedService->loadContentInfoList(...$parameters); } - public function testLoadContentInfoByRemoteIdDecorator() + public function testLoadContentInfoByRemoteIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -79,7 +79,7 @@ public function testLoadContentInfoByRemoteIdDecorator() $decoratedService->loadContentInfoByRemoteId(...$parameters); } - public function testLoadVersionInfoDecorator() + public function testLoadVersionInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -94,7 +94,7 @@ public function testLoadVersionInfoDecorator() $decoratedService->loadVersionInfo(...$parameters); } - public function testLoadVersionInfoByIdDecorator() + public function testLoadVersionInfoByIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -109,7 +109,7 @@ public function testLoadVersionInfoByIdDecorator() $decoratedService->loadVersionInfoById(...$parameters); } - public function testLoadContentByContentInfoDecorator() + public function testLoadContentByContentInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -126,7 +126,7 @@ public function testLoadContentByContentInfoDecorator() $decoratedService->loadContentByContentInfo(...$parameters); } - public function testLoadContentByVersionInfoDecorator() + public function testLoadContentByVersionInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -142,7 +142,7 @@ public function testLoadContentByVersionInfoDecorator() $decoratedService->loadContentByVersionInfo(...$parameters); } - public function testLoadContentDecorator() + public function testLoadContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -159,7 +159,7 @@ public function testLoadContentDecorator() $decoratedService->loadContent(...$parameters); } - public function testLoadContentByRemoteIdDecorator() + public function testLoadContentByRemoteIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -176,7 +176,7 @@ public function testLoadContentByRemoteIdDecorator() $decoratedService->loadContentByRemoteId(...$parameters); } - public function testLoadContentListByContentInfoDecorator() + public function testLoadContentListByContentInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -192,7 +192,7 @@ public function testLoadContentListByContentInfoDecorator() $decoratedService->loadContentListByContentInfo(...$parameters); } - public function testCreateContentDecorator() + public function testCreateContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -207,7 +207,7 @@ public function testCreateContentDecorator() $decoratedService->createContent(...$parameters); } - public function testUpdateContentMetadataDecorator() + public function testUpdateContentMetadataDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -222,7 +222,7 @@ public function testUpdateContentMetadataDecorator() $decoratedService->updateContentMetadata(...$parameters); } - public function testDeleteContentDecorator() + public function testDeleteContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -234,7 +234,7 @@ public function testDeleteContentDecorator() $decoratedService->deleteContent(...$parameters); } - public function testCreateContentDraftDecorator() + public function testCreateContentDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -262,7 +262,7 @@ public function testLoadContentDraftListDecorator(): void $decoratedService->loadContentDraftList(...$parameters); } - public function testUpdateContentDecorator() + public function testUpdateContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -277,7 +277,7 @@ public function testUpdateContentDecorator() $decoratedService->updateContent(...$parameters); } - public function testPublishVersionDecorator() + public function testPublishVersionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -289,7 +289,7 @@ public function testPublishVersionDecorator() $decoratedService->publishVersion(...$parameters); } - public function testDeleteVersionDecorator() + public function testDeleteVersionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -301,7 +301,7 @@ public function testDeleteVersionDecorator() $decoratedService->deleteVersion(...$parameters); } - public function testLoadVersionsDecorator() + public function testLoadVersionsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -313,7 +313,7 @@ public function testLoadVersionsDecorator() $decoratedService->loadVersions(...$parameters); } - public function testCopyContentDecorator() + public function testCopyContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -341,7 +341,7 @@ public function testLoadRelationListDecorator(): void $decoratedService->loadRelationList(...$parameters); } - public function testLoadReverseRelationsDecorator() + public function testLoadReverseRelationsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -353,7 +353,7 @@ public function testLoadReverseRelationsDecorator() $decoratedService->loadReverseRelations(...$parameters); } - public function testAddRelationDecorator() + public function testAddRelationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -368,7 +368,7 @@ public function testAddRelationDecorator() $decoratedService->addRelation(...$parameters); } - public function testDeleteRelationDecorator() + public function testDeleteRelationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -383,7 +383,7 @@ public function testDeleteRelationDecorator() $decoratedService->deleteRelation(...$parameters); } - public function testDeleteTranslationDecorator() + public function testDeleteTranslationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -398,7 +398,7 @@ public function testDeleteTranslationDecorator() $decoratedService->deleteTranslation(...$parameters); } - public function testDeleteTranslationFromDraftDecorator() + public function testDeleteTranslationFromDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -413,7 +413,7 @@ public function testDeleteTranslationFromDraftDecorator() $decoratedService->deleteTranslationFromDraft(...$parameters); } - public function testHideContentDecorator() + public function testHideContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -425,7 +425,7 @@ public function testHideContentDecorator() $decoratedService->hideContent(...$parameters); } - public function testRevealContentDecorator() + public function testRevealContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -437,7 +437,7 @@ public function testRevealContentDecorator() $decoratedService->revealContent(...$parameters); } - public function testNewContentCreateStructDecorator() + public function testNewContentCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -452,7 +452,7 @@ public function testNewContentCreateStructDecorator() $decoratedService->newContentCreateStruct(...$parameters); } - public function testNewContentMetadataUpdateStructDecorator() + public function testNewContentMetadataUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -464,7 +464,7 @@ public function testNewContentMetadataUpdateStructDecorator() $decoratedService->newContentMetadataUpdateStruct(...$parameters); } - public function testNewContentUpdateStructDecorator() + public function testNewContentUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php index a75671be09..e0a3a4a7c3 100644 --- a/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ContentTypeServiceDecoratorTest.php @@ -37,7 +37,7 @@ protected function createServiceMock(): MockObject return $this->createMock(ContentTypeService::class); } - public function testCreateContentTypeGroupDecorator() + public function testCreateContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -49,7 +49,7 @@ public function testCreateContentTypeGroupDecorator() $decoratedService->createContentTypeGroup(...$parameters); } - public function testLoadContentTypeGroupDecorator() + public function testLoadContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -64,7 +64,7 @@ public function testLoadContentTypeGroupDecorator() $decoratedService->loadContentTypeGroup(...$parameters); } - public function testLoadContentTypeGroupByIdentifierDecorator() + public function testLoadContentTypeGroupByIdentifierDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -79,7 +79,7 @@ public function testLoadContentTypeGroupByIdentifierDecorator() $decoratedService->loadContentTypeGroupByIdentifier(...$parameters); } - public function testLoadContentTypeGroupsDecorator() + public function testLoadContentTypeGroupsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -91,7 +91,7 @@ public function testLoadContentTypeGroupsDecorator() $decoratedService->loadContentTypeGroups(...$parameters); } - public function testUpdateContentTypeGroupDecorator() + public function testUpdateContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -106,7 +106,7 @@ public function testUpdateContentTypeGroupDecorator() $decoratedService->updateContentTypeGroup(...$parameters); } - public function testDeleteContentTypeGroupDecorator() + public function testDeleteContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -118,7 +118,7 @@ public function testDeleteContentTypeGroupDecorator() $decoratedService->deleteContentTypeGroup(...$parameters); } - public function testCreateContentTypeDecorator() + public function testCreateContentTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -133,7 +133,7 @@ public function testCreateContentTypeDecorator() $decoratedService->createContentType(...$parameters); } - public function testLoadContentTypeDecorator() + public function testLoadContentTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -148,7 +148,7 @@ public function testLoadContentTypeDecorator() $decoratedService->loadContentType(...$parameters); } - public function testLoadContentTypeByIdentifierDecorator() + public function testLoadContentTypeByIdentifierDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -163,7 +163,7 @@ public function testLoadContentTypeByIdentifierDecorator() $decoratedService->loadContentTypeByIdentifier(...$parameters); } - public function testLoadContentTypeByRemoteIdDecorator() + public function testLoadContentTypeByRemoteIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -178,7 +178,7 @@ public function testLoadContentTypeByRemoteIdDecorator() $decoratedService->loadContentTypeByRemoteId(...$parameters); } - public function testLoadContentTypeDraftDecorator() + public function testLoadContentTypeDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -190,7 +190,7 @@ public function testLoadContentTypeDraftDecorator() $decoratedService->loadContentTypeDraft(...$parameters); } - public function testLoadContentTypeListDecorator() + public function testLoadContentTypeListDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -205,7 +205,7 @@ public function testLoadContentTypeListDecorator() $decoratedService->loadContentTypeList(...$parameters); } - public function testLoadContentTypesDecorator() + public function testLoadContentTypesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -220,7 +220,7 @@ public function testLoadContentTypesDecorator() $decoratedService->loadContentTypes(...$parameters); } - public function testCreateContentTypeDraftDecorator() + public function testCreateContentTypeDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -232,7 +232,7 @@ public function testCreateContentTypeDraftDecorator() $decoratedService->createContentTypeDraft(...$parameters); } - public function testUpdateContentTypeDraftDecorator() + public function testUpdateContentTypeDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -247,7 +247,7 @@ public function testUpdateContentTypeDraftDecorator() $decoratedService->updateContentTypeDraft(...$parameters); } - public function testDeleteContentTypeDecorator() + public function testDeleteContentTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -259,7 +259,7 @@ public function testDeleteContentTypeDecorator() $decoratedService->deleteContentType(...$parameters); } - public function testCopyContentTypeDecorator() + public function testCopyContentTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -274,7 +274,7 @@ public function testCopyContentTypeDecorator() $decoratedService->copyContentType(...$parameters); } - public function testAssignContentTypeGroupDecorator() + public function testAssignContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -289,7 +289,7 @@ public function testAssignContentTypeGroupDecorator() $decoratedService->assignContentTypeGroup(...$parameters); } - public function testUnassignContentTypeGroupDecorator() + public function testUnassignContentTypeGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -304,7 +304,7 @@ public function testUnassignContentTypeGroupDecorator() $decoratedService->unassignContentTypeGroup(...$parameters); } - public function testAddFieldDefinitionDecorator() + public function testAddFieldDefinitionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -319,7 +319,7 @@ public function testAddFieldDefinitionDecorator() $decoratedService->addFieldDefinition(...$parameters); } - public function testRemoveFieldDefinitionDecorator() + public function testRemoveFieldDefinitionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -334,7 +334,7 @@ public function testRemoveFieldDefinitionDecorator() $decoratedService->removeFieldDefinition(...$parameters); } - public function testUpdateFieldDefinitionDecorator() + public function testUpdateFieldDefinitionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -350,7 +350,7 @@ public function testUpdateFieldDefinitionDecorator() $decoratedService->updateFieldDefinition(...$parameters); } - public function testPublishContentTypeDraftDecorator() + public function testPublishContentTypeDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -362,7 +362,7 @@ public function testPublishContentTypeDraftDecorator() $decoratedService->publishContentTypeDraft(...$parameters); } - public function testNewContentTypeGroupCreateStructDecorator() + public function testNewContentTypeGroupCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -374,7 +374,7 @@ public function testNewContentTypeGroupCreateStructDecorator() $decoratedService->newContentTypeGroupCreateStruct(...$parameters); } - public function testNewContentTypeCreateStructDecorator() + public function testNewContentTypeCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -386,7 +386,7 @@ public function testNewContentTypeCreateStructDecorator() $decoratedService->newContentTypeCreateStruct(...$parameters); } - public function testNewContentTypeUpdateStructDecorator() + public function testNewContentTypeUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -398,7 +398,7 @@ public function testNewContentTypeUpdateStructDecorator() $decoratedService->newContentTypeUpdateStruct(...$parameters); } - public function testNewContentTypeGroupUpdateStructDecorator() + public function testNewContentTypeGroupUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -410,7 +410,7 @@ public function testNewContentTypeGroupUpdateStructDecorator() $decoratedService->newContentTypeGroupUpdateStruct(...$parameters); } - public function testNewFieldDefinitionCreateStructDecorator() + public function testNewFieldDefinitionCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -425,7 +425,7 @@ public function testNewFieldDefinitionCreateStructDecorator() $decoratedService->newFieldDefinitionCreateStruct(...$parameters); } - public function testNewFieldDefinitionUpdateStructDecorator() + public function testNewFieldDefinitionUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -437,7 +437,7 @@ public function testNewFieldDefinitionUpdateStructDecorator() $decoratedService->newFieldDefinitionUpdateStruct(...$parameters); } - public function testIsContentTypeUsedDecorator() + public function testIsContentTypeUsedDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -449,7 +449,7 @@ public function testIsContentTypeUsedDecorator() $decoratedService->isContentTypeUsed(...$parameters); } - public function testRemoveContentTypeTranslationDecorator() + public function testRemoveContentTypeTranslationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php b/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php index d26802b682..cf28c52084 100644 --- a/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/FieldTypeServiceDecoratorTest.php @@ -26,7 +26,7 @@ protected function createServiceMock(): MockObject return $this->createMock(FieldTypeService::class); } - public function testGetFieldTypesDecorator() + public function testGetFieldTypesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -38,7 +38,7 @@ public function testGetFieldTypesDecorator() $decoratedService->getFieldTypes(...$parameters); } - public function testGetFieldTypeDecorator() + public function testGetFieldTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -50,7 +50,7 @@ public function testGetFieldTypeDecorator() $decoratedService->getFieldType(...$parameters); } - public function testHasFieldTypeDecorator() + public function testHasFieldTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php b/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php index aec0ea265c..c3b1394e17 100644 --- a/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/LanguageServiceDecoratorTest.php @@ -28,7 +28,7 @@ protected function createServiceMock(): MockObject return $this->createMock(LanguageService::class); } - public function testCreateLanguageDecorator() + public function testCreateLanguageDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -40,7 +40,7 @@ public function testCreateLanguageDecorator() $decoratedService->createLanguage(...$parameters); } - public function testUpdateLanguageNameDecorator() + public function testUpdateLanguageNameDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -55,7 +55,7 @@ public function testUpdateLanguageNameDecorator() $decoratedService->updateLanguageName(...$parameters); } - public function testEnableLanguageDecorator() + public function testEnableLanguageDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -67,7 +67,7 @@ public function testEnableLanguageDecorator() $decoratedService->enableLanguage(...$parameters); } - public function testDisableLanguageDecorator() + public function testDisableLanguageDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -79,7 +79,7 @@ public function testDisableLanguageDecorator() $decoratedService->disableLanguage(...$parameters); } - public function testLoadLanguageDecorator() + public function testLoadLanguageDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -91,7 +91,7 @@ public function testLoadLanguageDecorator() $decoratedService->loadLanguage(...$parameters); } - public function testLoadLanguagesDecorator() + public function testLoadLanguagesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -103,7 +103,7 @@ public function testLoadLanguagesDecorator() $decoratedService->loadLanguages(...$parameters); } - public function testLoadLanguageByIdDecorator() + public function testLoadLanguageByIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -115,7 +115,7 @@ public function testLoadLanguageByIdDecorator() $decoratedService->loadLanguageById(...$parameters); } - public function testLoadLanguageListByCodeDecorator() + public function testLoadLanguageListByCodeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -127,7 +127,7 @@ public function testLoadLanguageListByCodeDecorator() $decoratedService->loadLanguageListByCode(...$parameters); } - public function testLoadLanguageListByIdDecorator() + public function testLoadLanguageListByIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -139,7 +139,7 @@ public function testLoadLanguageListByIdDecorator() $decoratedService->loadLanguageListById(...$parameters); } - public function testDeleteLanguageDecorator() + public function testDeleteLanguageDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -151,7 +151,7 @@ public function testDeleteLanguageDecorator() $decoratedService->deleteLanguage(...$parameters); } - public function testGetDefaultLanguageCodeDecorator() + public function testGetDefaultLanguageCodeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -163,7 +163,7 @@ public function testGetDefaultLanguageCodeDecorator() $decoratedService->getDefaultLanguageCode(...$parameters); } - public function testNewLanguageCreateStructDecorator() + public function testNewLanguageCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php index e70e819ae4..a8b57c8cec 100644 --- a/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/LocationServiceDecoratorTest.php @@ -35,7 +35,7 @@ protected function createServiceMock(): MockObject return $this->createMock(LocationService::class); } - public function testCopySubtreeDecorator() + public function testCopySubtreeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -50,7 +50,7 @@ public function testCopySubtreeDecorator() $decoratedService->copySubtree(...$parameters); } - public function testLoadLocationDecorator() + public function testLoadLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -66,7 +66,7 @@ public function testLoadLocationDecorator() $decoratedService->loadLocation(...$parameters); } - public function testLoadLocationListDecorator() + public function testLoadLocationListDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -82,7 +82,7 @@ public function testLoadLocationListDecorator() $decoratedService->loadLocationList(...$parameters); } - public function testLoadLocationByRemoteIdDecorator() + public function testLoadLocationByRemoteIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -98,7 +98,7 @@ public function testLoadLocationByRemoteIdDecorator() $decoratedService->loadLocationByRemoteId(...$parameters); } - public function testLoadLocationsDecorator() + public function testLoadLocationsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -114,7 +114,7 @@ public function testLoadLocationsDecorator() $decoratedService->loadLocations(...$parameters); } - public function testLoadLocationChildrenDecorator() + public function testLoadLocationChildrenDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -131,7 +131,7 @@ public function testLoadLocationChildrenDecorator() $decoratedService->loadLocationChildren(...$parameters); } - public function testLoadParentLocationsForDraftContentDecorator() + public function testLoadParentLocationsForDraftContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -146,7 +146,7 @@ public function testLoadParentLocationsForDraftContentDecorator() $decoratedService->loadParentLocationsForDraftContent(...$parameters); } - public function testGetLocationChildCountDecorator() + public function testGetLocationChildCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -158,7 +158,7 @@ public function testGetLocationChildCountDecorator() $decoratedService->getLocationChildCount(...$parameters); } - public function testCreateLocationDecorator() + public function testCreateLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -173,7 +173,7 @@ public function testCreateLocationDecorator() $decoratedService->createLocation(...$parameters); } - public function testUpdateLocationDecorator() + public function testUpdateLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -188,7 +188,7 @@ public function testUpdateLocationDecorator() $decoratedService->updateLocation(...$parameters); } - public function testSwapLocationDecorator() + public function testSwapLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -203,7 +203,7 @@ public function testSwapLocationDecorator() $decoratedService->swapLocation(...$parameters); } - public function testHideLocationDecorator() + public function testHideLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -215,7 +215,7 @@ public function testHideLocationDecorator() $decoratedService->hideLocation(...$parameters); } - public function testUnhideLocationDecorator() + public function testUnhideLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -227,7 +227,7 @@ public function testUnhideLocationDecorator() $decoratedService->unhideLocation(...$parameters); } - public function testMoveSubtreeDecorator() + public function testMoveSubtreeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -242,7 +242,7 @@ public function testMoveSubtreeDecorator() $decoratedService->moveSubtree(...$parameters); } - public function testDeleteLocationDecorator() + public function testDeleteLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -254,7 +254,7 @@ public function testDeleteLocationDecorator() $decoratedService->deleteLocation(...$parameters); } - public function testNewLocationCreateStructDecorator() + public function testNewLocationCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -266,7 +266,7 @@ public function testNewLocationCreateStructDecorator() $decoratedService->newLocationCreateStruct(...$parameters); } - public function testNewLocationUpdateStructDecorator() + public function testNewLocationUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -278,7 +278,7 @@ public function testNewLocationUpdateStructDecorator() $decoratedService->newLocationUpdateStruct(...$parameters); } - public function testGetAllLocationsCountDecorator() + public function testGetAllLocationsCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -290,7 +290,7 @@ public function testGetAllLocationsCountDecorator() $decoratedService->getAllLocationsCount(...$parameters); } - public function testLoadAllLocationsDecorator() + public function testLoadAllLocationsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php index 47fec0ca94..c70f3c9426 100644 --- a/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/NotificationServiceDecoratorTest.php @@ -58,7 +58,7 @@ public function testFindNotificationsDecorator(): void $decoratedService->findNotifications($query); } - public function testGetNotificationDecorator() + public function testGetNotificationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -80,7 +80,7 @@ public function testMarkUserNotificationsAsReadDecorator(): void $decoratedService->markUserNotificationsAsRead(); } - public function testMarkNotificationAsReadDecorator() + public function testMarkNotificationAsReadDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -104,7 +104,7 @@ public function testMarkNotificationAsUnreadDecorator(): void $decoratedService->markNotificationAsUnread(...$parameters); } - public function testGetPendingNotificationCountDecorator() + public function testGetPendingNotificationCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -116,7 +116,7 @@ public function testGetPendingNotificationCountDecorator() $decoratedService->getPendingNotificationCount(...$parameters); } - public function testGetNotificationCountDecorator() + public function testGetNotificationCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -128,7 +128,7 @@ public function testGetNotificationCountDecorator() $decoratedService->getNotificationCount(...$parameters); } - public function testCreateNotificationDecorator() + public function testCreateNotificationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -140,7 +140,7 @@ public function testCreateNotificationDecorator() $decoratedService->createNotification(...$parameters); } - public function testDeleteNotificationDecorator() + public function testDeleteNotificationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php b/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php index f8a33d62c5..4ba85422f1 100644 --- a/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/ObjectStateServiceDecoratorTest.php @@ -33,7 +33,7 @@ protected function createServiceMock(): MockObject return $this->createMock(ObjectStateService::class); } - public function testCreateObjectStateGroupDecorator() + public function testCreateObjectStateGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -45,7 +45,7 @@ public function testCreateObjectStateGroupDecorator() $decoratedService->createObjectStateGroup(...$parameters); } - public function testLoadObjectStateGroupDecorator() + public function testLoadObjectStateGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -85,7 +85,7 @@ public function testLoadObjectStateGroupByIdentifierDecorator(): void ); } - public function testLoadObjectStateGroupsDecorator() + public function testLoadObjectStateGroupsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -101,7 +101,7 @@ public function testLoadObjectStateGroupsDecorator() $decoratedService->loadObjectStateGroups(...$parameters); } - public function testLoadObjectStatesDecorator() + public function testLoadObjectStatesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -116,7 +116,7 @@ public function testLoadObjectStatesDecorator() $decoratedService->loadObjectStates(...$parameters); } - public function testUpdateObjectStateGroupDecorator() + public function testUpdateObjectStateGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -131,7 +131,7 @@ public function testUpdateObjectStateGroupDecorator() $decoratedService->updateObjectStateGroup(...$parameters); } - public function testDeleteObjectStateGroupDecorator() + public function testDeleteObjectStateGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -143,7 +143,7 @@ public function testDeleteObjectStateGroupDecorator() $decoratedService->deleteObjectStateGroup(...$parameters); } - public function testCreateObjectStateDecorator() + public function testCreateObjectStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -158,7 +158,7 @@ public function testCreateObjectStateDecorator() $decoratedService->createObjectState(...$parameters); } - public function testLoadObjectStateDecorator() + public function testLoadObjectStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -199,7 +199,7 @@ public function testLoadObjectStateDecoratorByIdentifier(): void ); } - public function testUpdateObjectStateDecorator() + public function testUpdateObjectStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -214,7 +214,7 @@ public function testUpdateObjectStateDecorator() $decoratedService->updateObjectState(...$parameters); } - public function testSetPriorityOfObjectStateDecorator() + public function testSetPriorityOfObjectStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -229,7 +229,7 @@ public function testSetPriorityOfObjectStateDecorator() $decoratedService->setPriorityOfObjectState(...$parameters); } - public function testDeleteObjectStateDecorator() + public function testDeleteObjectStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -241,7 +241,7 @@ public function testDeleteObjectStateDecorator() $decoratedService->deleteObjectState(...$parameters); } - public function testSetContentStateDecorator() + public function testSetContentStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -257,7 +257,7 @@ public function testSetContentStateDecorator() $decoratedService->setContentState(...$parameters); } - public function testGetContentStateDecorator() + public function testGetContentStateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -272,7 +272,7 @@ public function testGetContentStateDecorator() $decoratedService->getContentState(...$parameters); } - public function testGetContentCountDecorator() + public function testGetContentCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -284,7 +284,7 @@ public function testGetContentCountDecorator() $decoratedService->getContentCount(...$parameters); } - public function testNewObjectStateGroupCreateStructDecorator() + public function testNewObjectStateGroupCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -296,7 +296,7 @@ public function testNewObjectStateGroupCreateStructDecorator() $decoratedService->newObjectStateGroupCreateStruct(...$parameters); } - public function testNewObjectStateGroupUpdateStructDecorator() + public function testNewObjectStateGroupUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -308,7 +308,7 @@ public function testNewObjectStateGroupUpdateStructDecorator() $decoratedService->newObjectStateGroupUpdateStruct(...$parameters); } - public function testNewObjectStateCreateStructDecorator() + public function testNewObjectStateCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -320,7 +320,7 @@ public function testNewObjectStateCreateStructDecorator() $decoratedService->newObjectStateCreateStruct(...$parameters); } - public function testNewObjectStateUpdateStructDecorator() + public function testNewObjectStateUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php b/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php index d1bf8eea2d..4a71dec06d 100644 --- a/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/RoleServiceDecoratorTest.php @@ -40,7 +40,7 @@ protected function createServiceMock(): MockObject return $this->createMock(RoleService::class); } - public function testCreateRoleDecorator() + public function testCreateRoleDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -52,7 +52,7 @@ public function testCreateRoleDecorator() $decoratedService->createRole(...$parameters); } - public function testCreateRoleDraftDecorator() + public function testCreateRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -64,7 +64,7 @@ public function testCreateRoleDraftDecorator() $decoratedService->createRoleDraft(...$parameters); } - public function testLoadRoleDraftDecorator() + public function testLoadRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -76,7 +76,7 @@ public function testLoadRoleDraftDecorator() $decoratedService->loadRoleDraft(...$parameters); } - public function testLoadRoleDraftByRoleIdDecorator() + public function testLoadRoleDraftByRoleIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -88,7 +88,7 @@ public function testLoadRoleDraftByRoleIdDecorator() $decoratedService->loadRoleDraftByRoleId(...$parameters); } - public function testUpdateRoleDraftDecorator() + public function testUpdateRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -103,7 +103,7 @@ public function testUpdateRoleDraftDecorator() $decoratedService->updateRoleDraft(...$parameters); } - public function testAddPolicyByRoleDraftDecorator() + public function testAddPolicyByRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -118,7 +118,7 @@ public function testAddPolicyByRoleDraftDecorator() $decoratedService->addPolicyByRoleDraft(...$parameters); } - public function testRemovePolicyByRoleDraftDecorator() + public function testRemovePolicyByRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -133,7 +133,7 @@ public function testRemovePolicyByRoleDraftDecorator() $decoratedService->removePolicyByRoleDraft(...$parameters); } - public function testUpdatePolicyByRoleDraftDecorator() + public function testUpdatePolicyByRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -149,7 +149,7 @@ public function testUpdatePolicyByRoleDraftDecorator() $decoratedService->updatePolicyByRoleDraft(...$parameters); } - public function testDeleteRoleDraftDecorator() + public function testDeleteRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -161,7 +161,7 @@ public function testDeleteRoleDraftDecorator() $decoratedService->deleteRoleDraft(...$parameters); } - public function testPublishRoleDraftDecorator() + public function testPublishRoleDraftDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -173,7 +173,7 @@ public function testPublishRoleDraftDecorator() $decoratedService->publishRoleDraft(...$parameters); } - public function testLoadRoleDecorator() + public function testLoadRoleDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -185,7 +185,7 @@ public function testLoadRoleDecorator() $decoratedService->loadRole(...$parameters); } - public function testLoadRoleByIdentifierDecorator() + public function testLoadRoleByIdentifierDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -197,7 +197,7 @@ public function testLoadRoleByIdentifierDecorator() $decoratedService->loadRoleByIdentifier(...$parameters); } - public function testLoadRolesDecorator() + public function testLoadRolesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -209,7 +209,7 @@ public function testLoadRolesDecorator() $decoratedService->loadRoles(...$parameters); } - public function testDeleteRoleDecorator() + public function testDeleteRoleDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -221,7 +221,7 @@ public function testDeleteRoleDecorator() $decoratedService->deleteRole(...$parameters); } - public function testAssignRoleToUserGroupDecorator() + public function testAssignRoleToUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -237,7 +237,7 @@ public function testAssignRoleToUserGroupDecorator() $decoratedService->assignRoleToUserGroup(...$parameters); } - public function testAssignRoleToUserDecorator() + public function testAssignRoleToUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -253,7 +253,7 @@ public function testAssignRoleToUserDecorator() $decoratedService->assignRoleToUser(...$parameters); } - public function testLoadRoleAssignmentDecorator() + public function testLoadRoleAssignmentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -265,7 +265,7 @@ public function testLoadRoleAssignmentDecorator() $decoratedService->loadRoleAssignment(...$parameters); } - public function testGetRoleAssignmentsDecorator() + public function testGetRoleAssignmentsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -277,7 +277,7 @@ public function testGetRoleAssignmentsDecorator() $decoratedService->getRoleAssignments(...$parameters); } - public function testGetRoleAssignmentsForUserDecorator() + public function testGetRoleAssignmentsForUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -292,7 +292,7 @@ public function testGetRoleAssignmentsForUserDecorator() $decoratedService->getRoleAssignmentsForUser(...$parameters); } - public function testGetRoleAssignmentsForUserGroupDecorator() + public function testGetRoleAssignmentsForUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -304,7 +304,7 @@ public function testGetRoleAssignmentsForUserGroupDecorator() $decoratedService->getRoleAssignmentsForUserGroup(...$parameters); } - public function testRemoveRoleAssignmentDecorator() + public function testRemoveRoleAssignmentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -316,7 +316,7 @@ public function testRemoveRoleAssignmentDecorator() $decoratedService->removeRoleAssignment(...$parameters); } - public function testNewRoleCreateStructDecorator() + public function testNewRoleCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -328,7 +328,7 @@ public function testNewRoleCreateStructDecorator() $decoratedService->newRoleCreateStruct(...$parameters); } - public function testNewPolicyCreateStructDecorator() + public function testNewPolicyCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -343,7 +343,7 @@ public function testNewPolicyCreateStructDecorator() $decoratedService->newPolicyCreateStruct(...$parameters); } - public function testNewPolicyUpdateStructDecorator() + public function testNewPolicyUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -355,7 +355,7 @@ public function testNewPolicyUpdateStructDecorator() $decoratedService->newPolicyUpdateStruct(...$parameters); } - public function testNewRoleUpdateStructDecorator() + public function testNewRoleUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -367,7 +367,7 @@ public function testNewRoleUpdateStructDecorator() $decoratedService->newRoleUpdateStruct(...$parameters); } - public function testGetLimitationTypeDecorator() + public function testGetLimitationTypeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -379,7 +379,7 @@ public function testGetLimitationTypeDecorator() $decoratedService->getLimitationType(...$parameters); } - public function testGetLimitationTypesByModuleFunctionDecorator() + public function testGetLimitationTypesByModuleFunctionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php index 8738968b79..628f97b56e 100644 --- a/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SearchServiceDecoratorTest.php @@ -30,7 +30,7 @@ protected function createServiceMock(): MockObject return $this->createMock(SearchService::class); } - public function testFindContentDecorator() + public function testFindContentDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -46,7 +46,7 @@ public function testFindContentDecorator() $decoratedService->findContent(...$parameters); } - public function testFindContentInfoDecorator() + public function testFindContentInfoDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -62,7 +62,7 @@ public function testFindContentInfoDecorator() $decoratedService->findContentInfo(...$parameters); } - public function testFindSingleDecorator() + public function testFindSingleDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -78,7 +78,7 @@ public function testFindSingleDecorator() $decoratedService->findSingle(...$parameters); } - public function testSuggestDecorator() + public function testSuggestDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -95,7 +95,7 @@ public function testSuggestDecorator() $decoratedService->suggest(...$parameters); } - public function testFindLocationsDecorator() + public function testFindLocationsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php index 8c0529efbc..2ce7bc89e5 100644 --- a/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SectionServiceDecoratorTest.php @@ -33,7 +33,7 @@ protected function createServiceMock(): MockObject return $this->createMock(SectionService::class); } - public function testCreateSectionDecorator() + public function testCreateSectionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -45,7 +45,7 @@ public function testCreateSectionDecorator() $decoratedService->createSection(...$parameters); } - public function testUpdateSectionDecorator() + public function testUpdateSectionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -60,7 +60,7 @@ public function testUpdateSectionDecorator() $decoratedService->updateSection(...$parameters); } - public function testLoadSectionDecorator() + public function testLoadSectionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -72,7 +72,7 @@ public function testLoadSectionDecorator() $decoratedService->loadSection(...$parameters); } - public function testLoadSectionsDecorator() + public function testLoadSectionsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -84,7 +84,7 @@ public function testLoadSectionsDecorator() $decoratedService->loadSections(...$parameters); } - public function testLoadSectionByIdentifierDecorator() + public function testLoadSectionByIdentifierDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -96,7 +96,7 @@ public function testLoadSectionByIdentifierDecorator() $decoratedService->loadSectionByIdentifier(...$parameters); } - public function testCountAssignedContentsDecorator() + public function testCountAssignedContentsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -108,7 +108,7 @@ public function testCountAssignedContentsDecorator() $decoratedService->countAssignedContents(...$parameters); } - public function testIsSectionUsedDecorator() + public function testIsSectionUsedDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -120,7 +120,7 @@ public function testIsSectionUsedDecorator() $decoratedService->isSectionUsed(...$parameters); } - public function testAssignSectionDecorator() + public function testAssignSectionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -135,7 +135,7 @@ public function testAssignSectionDecorator() $decoratedService->assignSection(...$parameters); } - public function testAssignSectionToSubtreeDecorator() + public function testAssignSectionToSubtreeDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -150,7 +150,7 @@ public function testAssignSectionToSubtreeDecorator() $decoratedService->assignSectionToSubtree(...$parameters); } - public function testDeleteSectionDecorator() + public function testDeleteSectionDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -162,7 +162,7 @@ public function testDeleteSectionDecorator() $decoratedService->deleteSection(...$parameters); } - public function testNewSectionCreateStructDecorator() + public function testNewSectionCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -174,7 +174,7 @@ public function testNewSectionCreateStructDecorator() $decoratedService->newSectionCreateStruct(...$parameters); } - public function testNewSectionUpdateStructDecorator() + public function testNewSectionUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php b/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php index 2f2b94b9f6..a1e76e0745 100644 --- a/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/SettingServiceDecoratorTest.php @@ -32,7 +32,7 @@ protected function createServiceMock(): MockObject return $this->createMock(SettingService::class); } - public function testCreateSettingDecorator() + public function testCreateSettingDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -44,7 +44,7 @@ public function testCreateSettingDecorator() $decoratedService->createSetting(...$parameters); } - public function testUpdateSettingDecorator() + public function testUpdateSettingDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -59,7 +59,7 @@ public function testUpdateSettingDecorator() $decoratedService->updateSetting(...$parameters); } - public function testLoadSettingDecorator() + public function testLoadSettingDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -74,7 +74,7 @@ public function testLoadSettingDecorator() $decoratedService->loadSetting(...$parameters); } - public function testDeleteSettingDecorator() + public function testDeleteSettingDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -86,7 +86,7 @@ public function testDeleteSettingDecorator() $decoratedService->deleteSetting(...$parameters); } - public function testNewSettingCreateStructDecorator() + public function testNewSettingCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -98,7 +98,7 @@ public function testNewSettingCreateStructDecorator() $decoratedService->newSettingCreateStruct(...$parameters); } - public function testNewSettingUpdateStructDecorator() + public function testNewSettingUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php b/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php index c449f80596..8297226567 100644 --- a/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/TranslationServiceDecoratorTest.php @@ -27,7 +27,7 @@ protected function createServiceMock(): MockObject return $this->createMock(TranslationService::class); } - public function testTranslateDecorator() + public function testTranslateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -42,7 +42,7 @@ public function testTranslateDecorator() $decoratedService->translate(...$parameters); } - public function testTranslateStringDecorator() + public function testTranslateStringDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php b/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php index c3319194e8..070983a1e9 100644 --- a/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/TrashServiceDecoratorTest.php @@ -29,7 +29,7 @@ protected function createServiceMock(): MockObject return $this->createMock(TrashService::class); } - public function testLoadTrashItemDecorator() + public function testLoadTrashItemDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -41,7 +41,7 @@ public function testLoadTrashItemDecorator() $decoratedService->loadTrashItem(...$parameters); } - public function testTrashDecorator() + public function testTrashDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -53,7 +53,7 @@ public function testTrashDecorator() $decoratedService->trash(...$parameters); } - public function testRecoverDecorator() + public function testRecoverDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -68,7 +68,7 @@ public function testRecoverDecorator() $decoratedService->recover(...$parameters); } - public function testEmptyTrashDecorator() + public function testEmptyTrashDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -80,7 +80,7 @@ public function testEmptyTrashDecorator() $decoratedService->emptyTrash(...$parameters); } - public function testDeleteTrashItemDecorator() + public function testDeleteTrashItemDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -92,7 +92,7 @@ public function testDeleteTrashItemDecorator() $decoratedService->deleteTrashItem(...$parameters); } - public function testFindTrashItemsDecorator() + public function testFindTrashItemsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php index 6f446ea0e0..25459e7905 100644 --- a/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLAliasServiceDecoratorTest.php @@ -30,7 +30,7 @@ protected function createServiceMock(): MockObject return $this->createMock(URLAliasService::class); } - public function testCreateUrlAliasDecorator() + public function testCreateUrlAliasDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -48,7 +48,7 @@ public function testCreateUrlAliasDecorator() $decoratedService->createUrlAlias(...$parameters); } - public function testCreateGlobalUrlAliasDecorator() + public function testCreateGlobalUrlAliasDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -66,7 +66,7 @@ public function testCreateGlobalUrlAliasDecorator() $decoratedService->createGlobalUrlAlias(...$parameters); } - public function testListLocationAliasesDecorator() + public function testListLocationAliasesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -82,7 +82,7 @@ public function testListLocationAliasesDecorator() $decoratedService->listLocationAliases(...$parameters); } - public function testListGlobalAliasesDecorator() + public function testListGlobalAliasesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -98,7 +98,7 @@ public function testListGlobalAliasesDecorator() $decoratedService->listGlobalAliases(...$parameters); } - public function testRemoveAliasesDecorator() + public function testRemoveAliasesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -110,7 +110,7 @@ public function testRemoveAliasesDecorator() $decoratedService->removeAliases(...$parameters); } - public function testLookupDecorator() + public function testLookupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -125,7 +125,7 @@ public function testLookupDecorator() $decoratedService->lookup(...$parameters); } - public function testReverseLookupDecorator() + public function testReverseLookupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -140,7 +140,7 @@ public function testReverseLookupDecorator() $decoratedService->reverseLookup(...$parameters); } - public function testLoadDecorator() + public function testLoadDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -152,7 +152,7 @@ public function testLoadDecorator() $decoratedService->load(...$parameters); } - public function testRefreshSystemUrlAliasesForLocationDecorator() + public function testRefreshSystemUrlAliasesForLocationDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -164,7 +164,7 @@ public function testRefreshSystemUrlAliasesForLocationDecorator() $decoratedService->refreshSystemUrlAliasesForLocation(...$parameters); } - public function testDeleteCorruptedUrlAliasesDecorator() + public function testDeleteCorruptedUrlAliasesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php index 25c6aee419..94cac0a834 100644 --- a/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLServiceDecoratorTest.php @@ -29,7 +29,7 @@ protected function createServiceMock(): MockObject return $this->createMock(URLService::class); } - public function testCreateUpdateStructDecorator() + public function testCreateUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -41,7 +41,7 @@ public function testCreateUpdateStructDecorator() $decoratedService->createUpdateStruct(...$parameters); } - public function testFindUrlsDecorator() + public function testFindUrlsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -53,7 +53,7 @@ public function testFindUrlsDecorator() $decoratedService->findUrls(...$parameters); } - public function testFindUsagesDecorator() + public function testFindUsagesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -69,7 +69,7 @@ public function testFindUsagesDecorator() $decoratedService->findUsages(...$parameters); } - public function testLoadByIdDecorator() + public function testLoadByIdDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -81,7 +81,7 @@ public function testLoadByIdDecorator() $decoratedService->loadById(...$parameters); } - public function testLoadByUrlDecorator() + public function testLoadByUrlDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -93,7 +93,7 @@ public function testLoadByUrlDecorator() $decoratedService->loadByUrl(...$parameters); } - public function testUpdateUrlDecorator() + public function testUpdateUrlDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php b/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php index e8a71549db..63df1dc030 100644 --- a/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/URLWildcardServiceDecoratorTest.php @@ -27,7 +27,7 @@ protected function createServiceMock(): MockObject return $this->createMock(URLWildcardService::class); } - public function testCreateDecorator() + public function testCreateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -43,7 +43,7 @@ public function testCreateDecorator() $decoratedService->create(...$parameters); } - public function testRemoveDecorator() + public function testRemoveDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -55,7 +55,7 @@ public function testRemoveDecorator() $decoratedService->remove(...$parameters); } - public function testLoadDecorator() + public function testLoadDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -67,7 +67,7 @@ public function testLoadDecorator() $decoratedService->load(...$parameters); } - public function testLoadAllDecorator() + public function testLoadAllDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -82,7 +82,7 @@ public function testLoadAllDecorator() $decoratedService->loadAll(...$parameters); } - public function testTranslateDecorator() + public function testTranslateDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php b/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php index 52943f41a9..f2282564cb 100644 --- a/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/UserPreferenceServiceDecoratorTest.php @@ -26,7 +26,7 @@ protected function createServiceMock(): MockObject return $this->createMock(UserPreferenceService::class); } - public function testSetUserPreferenceDecorator() + public function testSetUserPreferenceDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -38,7 +38,7 @@ public function testSetUserPreferenceDecorator() $decoratedService->setUserPreference(...$parameters); } - public function testGetUserPreferenceDecorator() + public function testGetUserPreferenceDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -50,7 +50,7 @@ public function testGetUserPreferenceDecorator() $decoratedService->getUserPreference(...$parameters); } - public function testLoadUserPreferencesDecorator() + public function testLoadUserPreferencesDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -65,7 +65,7 @@ public function testLoadUserPreferencesDecorator() $decoratedService->loadUserPreferences(...$parameters); } - public function testGetUserPreferenceCountDecorator() + public function testGetUserPreferenceCountDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php b/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php index e4b3356261..1abb0e157b 100644 --- a/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php +++ b/tests/lib/Repository/Decorator/UserServiceDecoratorTest.php @@ -43,7 +43,7 @@ protected function createServiceMock(): MockObject return $this->createMock(UserService::class); } - public function testCreateUserGroupDecorator() + public function testCreateUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -58,7 +58,7 @@ public function testCreateUserGroupDecorator() $decoratedService->createUserGroup(...$parameters); } - public function testLoadUserGroupDecorator() + public function testLoadUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -88,7 +88,7 @@ public function testLoadUserGroupByRemoteIdDecorator(): void $decoratedService->loadUserGroupByRemoteId(...$parameters); } - public function testLoadSubUserGroupsDecorator() + public function testLoadSubUserGroupsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -105,7 +105,7 @@ public function testLoadSubUserGroupsDecorator() $decoratedService->loadSubUserGroups(...$parameters); } - public function testDeleteUserGroupDecorator() + public function testDeleteUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -117,7 +117,7 @@ public function testDeleteUserGroupDecorator() $decoratedService->deleteUserGroup(...$parameters); } - public function testMoveUserGroupDecorator() + public function testMoveUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -132,7 +132,7 @@ public function testMoveUserGroupDecorator() $decoratedService->moveUserGroup(...$parameters); } - public function testUpdateUserGroupDecorator() + public function testUpdateUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -147,7 +147,7 @@ public function testUpdateUserGroupDecorator() $decoratedService->updateUserGroup(...$parameters); } - public function testCreateUserDecorator() + public function testCreateUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -162,7 +162,7 @@ public function testCreateUserDecorator() $decoratedService->createUser(...$parameters); } - public function testLoadUserDecorator() + public function testLoadUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -177,7 +177,7 @@ public function testLoadUserDecorator() $decoratedService->loadUser(...$parameters); } - public function testCheckUserCredentialsDecorator() + public function testCheckUserCredentialsDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -192,7 +192,7 @@ public function testCheckUserCredentialsDecorator() $decoratedService->checkUserCredentials(...$parameters); } - public function testLoadUserByLoginDecorator() + public function testLoadUserByLoginDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -207,7 +207,7 @@ public function testLoadUserByLoginDecorator() $decoratedService->loadUserByLogin(...$parameters); } - public function testLoadUsersByEmailDecorator() + public function testLoadUsersByEmailDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -222,7 +222,7 @@ public function testLoadUsersByEmailDecorator() $decoratedService->loadUsersByEmail(...$parameters); } - public function testLoadUserByTokenDecorator() + public function testLoadUserByTokenDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -237,7 +237,7 @@ public function testLoadUserByTokenDecorator() $decoratedService->loadUserByToken(...$parameters); } - public function testDeleteUserDecorator() + public function testDeleteUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -249,7 +249,7 @@ public function testDeleteUserDecorator() $decoratedService->deleteUser(...$parameters); } - public function testUpdateUserDecorator() + public function testUpdateUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -279,7 +279,7 @@ public function testUpdateUserPasswordDecorator(): void $decoratedService->updateUserPassword(...$parameters); } - public function testUpdateUserTokenDecorator() + public function testUpdateUserTokenDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -294,7 +294,7 @@ public function testUpdateUserTokenDecorator() $decoratedService->updateUserToken(...$parameters); } - public function testExpireUserTokenDecorator() + public function testExpireUserTokenDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -306,7 +306,7 @@ public function testExpireUserTokenDecorator() $decoratedService->expireUserToken(...$parameters); } - public function testAssignUserToUserGroupDecorator() + public function testAssignUserToUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -321,7 +321,7 @@ public function testAssignUserToUserGroupDecorator() $decoratedService->assignUserToUserGroup(...$parameters); } - public function testUnAssignUserFromUserGroupDecorator() + public function testUnAssignUserFromUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -336,7 +336,7 @@ public function testUnAssignUserFromUserGroupDecorator() $decoratedService->unAssignUserFromUserGroup(...$parameters); } - public function testLoadUserGroupsOfUserDecorator() + public function testLoadUserGroupsOfUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -353,7 +353,7 @@ public function testLoadUserGroupsOfUserDecorator() $decoratedService->loadUserGroupsOfUser(...$parameters); } - public function testLoadUsersOfUserGroupDecorator() + public function testLoadUsersOfUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -370,7 +370,7 @@ public function testLoadUsersOfUserGroupDecorator() $decoratedService->loadUsersOfUserGroup(...$parameters); } - public function testIsUserDecorator() + public function testIsUserDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -382,7 +382,7 @@ public function testIsUserDecorator() $decoratedService->isUser(...$parameters); } - public function testIsUserGroupDecorator() + public function testIsUserGroupDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -394,7 +394,7 @@ public function testIsUserGroupDecorator() $decoratedService->isUserGroup(...$parameters); } - public function testNewUserCreateStructDecorator() + public function testNewUserCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -412,7 +412,7 @@ public function testNewUserCreateStructDecorator() $decoratedService->newUserCreateStruct(...$parameters); } - public function testNewUserGroupCreateStructDecorator() + public function testNewUserGroupCreateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -427,7 +427,7 @@ public function testNewUserGroupCreateStructDecorator() $decoratedService->newUserGroupCreateStruct(...$parameters); } - public function testNewUserUpdateStructDecorator() + public function testNewUserUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -439,7 +439,7 @@ public function testNewUserUpdateStructDecorator() $decoratedService->newUserUpdateStruct(...$parameters); } - public function testNewUserGroupUpdateStructDecorator() + public function testNewUserGroupUpdateStructDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); @@ -451,7 +451,7 @@ public function testNewUserGroupUpdateStructDecorator() $decoratedService->newUserGroupUpdateStruct(...$parameters); } - public function testValidatePasswordDecorator() + public function testValidatePasswordDecorator(): void { $serviceMock = $this->createServiceMock(); $decoratedService = $this->createDecorator($serviceMock); diff --git a/tests/lib/Repository/Helper/FieldTypeRegistryTest.php b/tests/lib/Repository/Helper/FieldTypeRegistryTest.php index e28e538d0d..d45a682902 100644 --- a/tests/lib/Repository/Helper/FieldTypeRegistryTest.php +++ b/tests/lib/Repository/Helper/FieldTypeRegistryTest.php @@ -19,7 +19,7 @@ class FieldTypeRegistryTest extends TestCase { private const FIELD_TYPE_ID = 'one'; - public function testConstructor() + public function testConstructor(): void { $fieldType = $this->getFieldTypeMock(); $fieldTypes = [self::FIELD_TYPE_ID => $fieldType]; @@ -33,7 +33,7 @@ protected function getFieldTypeMock() return $this->createMock(FieldType::class); } - public function testGetFieldType() + public function testGetFieldType(): void { $fieldTypes = [ self::FIELD_TYPE_ID => $this->getFieldTypeMock(), @@ -49,7 +49,7 @@ public function testGetFieldType() ); } - public function testGetFieldTypeThrowsNotFoundException() + public function testGetFieldTypeThrowsNotFoundException(): void { $this->expectException(FieldTypeNotFoundException::class); @@ -58,7 +58,7 @@ public function testGetFieldTypeThrowsNotFoundException() $registry->getFieldType('none'); } - public function testGetFieldTypeThrowsRuntimeExceptionIncorrectType() + public function testGetFieldTypeThrowsRuntimeExceptionIncorrectType(): void { $this->expectException(\TypeError::class); @@ -71,7 +71,7 @@ public function testGetFieldTypeThrowsRuntimeExceptionIncorrectType() $registry->getFieldType('none'); } - public function testGetFieldTypes() + public function testGetFieldTypes(): void { $fieldTypes = [ self::FIELD_TYPE_ID => $this->getFieldTypeMock(), diff --git a/tests/lib/Repository/Permission/CachedPermissionServiceTest.php b/tests/lib/Repository/Permission/CachedPermissionServiceTest.php index a4cb260b74..1998771022 100644 --- a/tests/lib/Repository/Permission/CachedPermissionServiceTest.php +++ b/tests/lib/Repository/Permission/CachedPermissionServiceTest.php @@ -37,7 +37,10 @@ function time() */ class CachedPermissionServiceTest extends TestCase { - public static function providerForTestPermissionResolverPassTrough() + /** + * @return array + */ + public static function providerForTestPermissionResolverPassTrough(): array { $valueObject = self::createStub(ValueObject::class); @@ -63,7 +66,7 @@ public static function providerForTestPermissionResolverPassTrough() * @param $expectedReturn */ #[DataProvider('providerForTestPermissionResolverPassTrough')] - public function testPermissionResolverPassTrough($method, array $arguments, $expectedReturn) + public function testPermissionResolverPassTrough($method, array $arguments, $expectedReturn): void { if ($expectedReturn !== null) { $this->getPermissionResolverMock([$method]) @@ -84,7 +87,7 @@ public function testPermissionResolverPassTrough($method, array $arguments, $exp self::assertSame($expectedReturn, $actualReturn); } - public function testGetPermissionsCriterionPassTrough() + public function testGetPermissionsCriterionPassTrough(): void { $criterionMock = $this ->getMockBuilder(Criterion::class) @@ -103,7 +106,7 @@ public function testGetPermissionsCriterionPassTrough() self::assertSame($criterionMock, $actualReturn); } - public function testGetPermissionsCriterionCaching() + public function testGetPermissionsCriterionCaching(): void { $criterionMock = $this ->getMockBuilder(Criterion::class) diff --git a/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php b/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php index a543245cc8..d8be23a311 100644 --- a/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php +++ b/tests/lib/Repository/Permission/PermissionCriterionResolverTest.php @@ -24,7 +24,10 @@ */ class PermissionCriterionResolverTest extends TestCase { - public static function providerForTestGetPermissionsCriterion() + /** + * @return array + */ + public static function providerForTestGetPermissionsCriterion(): array { $criterionMock = self::createStub(Criterion::class); $limitationMock = self::createStub(Limitation::class); @@ -288,7 +291,7 @@ public function testGetPermissionsCriterion( $limitationCount, $permissionSets, $expectedCriterion - ) { + ): void { $this->mockServices($criterionMock, $limitationCount, $permissionSets); $criterionResolver = $this->getPermissionCriterionResolverMock(null); @@ -297,7 +300,10 @@ public function testGetPermissionsCriterion( self::assertEquals($expectedCriterion, $permissionsCriterion); } - public static function providerForTestGetPermissionsCriterionBooleanPermissionSets() + /** + * @return array + */ + public static function providerForTestGetPermissionsCriterionBooleanPermissionSets(): array { return [ [true], @@ -309,7 +315,7 @@ public static function providerForTestGetPermissionsCriterionBooleanPermissionSe * Test for the getPermissionsCriterion() method. */ #[DataProvider('providerForTestGetPermissionsCriterionBooleanPermissionSets')] - public function testGetPermissionsCriterionBooleanPermissionSets($permissionSets) + public function testGetPermissionsCriterionBooleanPermissionSets($permissionSets): void { $permissionResolverMock = $this->getPermissionResolverMock(['hasAccess']); $permissionResolverMock diff --git a/tests/lib/Repository/Service/Mock/BookmarkTest.php b/tests/lib/Repository/Service/Mock/BookmarkTest.php index 853e235a87..810b3dbeb3 100644 --- a/tests/lib/Repository/Service/Mock/BookmarkTest.php +++ b/tests/lib/Repository/Service/Mock/BookmarkTest.php @@ -52,7 +52,7 @@ protected function setUp(): void ->willReturn($permissionResolverMock); } - public function testCreateBookmark() + public function testCreateBookmark(): void { $location = $this->createLocation(self::LOCATION_ID); @@ -79,7 +79,7 @@ public function testCreateBookmark() $this->createBookmarkService()->createBookmark($location); } - public function testCreateBookmarkThrowsInvalidArgumentException() + public function testCreateBookmarkThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -100,7 +100,7 @@ public function testCreateBookmarkThrowsInvalidArgumentException() $this->createBookmarkService()->createBookmark($location); } - public function testCreateBookmarkWithRollback() + public function testCreateBookmarkWithRollback(): void { $this->expectException(\Exception::class); @@ -124,7 +124,7 @@ public function testCreateBookmarkWithRollback() $this->createBookmarkService()->createBookmark($location); } - public function testDeleteBookmarkExisting() + public function testDeleteBookmarkExisting(): void { $location = $this->createLocation(self::LOCATION_ID); @@ -148,7 +148,7 @@ public function testDeleteBookmarkExisting() $this->createBookmarkService()->deleteBookmark($location); } - public function testDeleteBookmarkWithRollback() + public function testDeleteBookmarkWithRollback(): void { $this->expectException(\Exception::class); @@ -172,7 +172,7 @@ public function testDeleteBookmarkWithRollback() $this->createBookmarkService()->deleteBookmark($location); } - public function testDeleteBookmarkNonExisting() + public function testDeleteBookmarkNonExisting(): void { $this->expectException(InvalidArgumentException::class); @@ -193,7 +193,7 @@ public function testDeleteBookmarkNonExisting() $this->createBookmarkService()->deleteBookmark($location); } - public function testLoadBookmarks() + public function testLoadBookmarks(): void { $offset = 0; $limit = 25; @@ -227,7 +227,7 @@ public function testLoadBookmarks() self::assertEquals($expectedItems, $bookmarks->items); } - public function testLocationShouldNotBeBookmarked() + public function testLocationShouldNotBeBookmarked(): void { $this->bookmarkHandler ->expects(self::once()) @@ -238,7 +238,7 @@ public function testLocationShouldNotBeBookmarked() self::assertFalse($this->createBookmarkService()->isBookmarked($this->createLocation(self::LOCATION_ID))); } - public function testLocationShouldBeBookmarked() + public function testLocationShouldBeBookmarked(): void { $this->bookmarkHandler ->expects(self::once()) diff --git a/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php b/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php index 3f31538516..e824546af8 100644 --- a/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php +++ b/tests/lib/Repository/Service/Mock/ContentDomainMapperTest.php @@ -50,7 +50,7 @@ final class ContentDomainMapperTest extends BaseServiceMockTest private const int EXAMPLE_VERSION_INFO_ID = 12; #[DataProvider('providerForBuildVersionInfo')] - public function testBuildVersionInfo(SPIVersionInfo $spiVersionInfo) + public function testBuildVersionInfo(SPIVersionInfo $spiVersionInfo): void { $languageHandlerMock = $this->getLanguageHandlerMock(); $languageHandlerMock->expects(self::never())->method('load'); @@ -60,7 +60,7 @@ public function testBuildVersionInfo(SPIVersionInfo $spiVersionInfo) self::assertInstanceOf(APIVersionInfo::class, $versionInfo); } - public function testBuildLocationWithContentForRootLocation() + public function testBuildLocationWithContentForRootLocation(): void { $spiRootLocation = new Location([ 'id' => 1, @@ -115,7 +115,7 @@ public function testBuildLocationWithContentForRootLocation() self::assertEquals($expectedContent, $apiRootLocation->getContent()); } - public function testBuildLocationWithContentThrowsInvalidArgumentException() + public function testBuildLocationWithContentThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Argument \'$content\' is invalid: Location 2 has missing Content'); @@ -125,7 +125,7 @@ public function testBuildLocationWithContentThrowsInvalidArgumentException() $this->getContentDomainMapper()->buildLocationWithContent($nonRootLocation, null); } - public function testBuildLocationWithContentIsAlignedWithBuildLocation() + public function testBuildLocationWithContentIsAlignedWithBuildLocation(): void { $spiRootLocation = new Location([ 'id' => 1, @@ -173,7 +173,10 @@ public function testBuildDomainFieldsDeprecatedBehavior(): void $this->getContentDomainMapper()->buildDomainFields($persistenceFields, $persistenceContentType); } - public static function providerForBuildVersionInfo() + /** + * @return array + */ + public static function providerForBuildVersionInfo(): array { $properties = [ 'id' => self::EXAMPLE_VERSION_INFO_ID, @@ -236,7 +239,10 @@ public static function providerForBuildVersionInfo() ]; } - public static function providerForBuildLocationDomainObjectsOnSearchResult() + /** + * @return array + */ + public static function providerForBuildLocationDomainObjectsOnSearchResult(): array { $properties = [ 'name' => self::EXAMPLE_NAME, @@ -325,7 +331,7 @@ public function testBuildLocationDomainObjectsOnSearchResult( array $languageFilter, array $contentInfoList, int $missing - ) { + ): void { $contentHandlerMock = $this->getContentHandlerMock(); $contentHandlerMock ->expects(self::once()) diff --git a/tests/lib/Repository/Service/Mock/ContentTest.php b/tests/lib/Repository/Service/Mock/ContentTest.php index cdb5d9c85f..3dc9f011d8 100644 --- a/tests/lib/Repository/Service/Mock/ContentTest.php +++ b/tests/lib/Repository/Service/Mock/ContentTest.php @@ -126,7 +126,7 @@ public function testConstructor(): void /** * Test for the loadVersionInfo() method, of published version. */ - public function testLoadVersionInfoById() + public function testLoadVersionInfoById(): void { $contentServiceMock = $this->getPartlyMockedContentService(['loadContentInfo']); /** @var \PHPUnit\Framework\MockObject\MockObject $contentHandler */ @@ -173,7 +173,7 @@ public function testLoadVersionInfoById() * Test for the loadVersionInfo() method, of a draft. */ #[Depends('testLoadVersionInfoById')] - public function testLoadVersionInfoByIdAndVersionNumber() + public function testLoadVersionInfoByIdAndVersionNumber(): void { $permissionResolver = $this->getPermissionResolverMock(); $contentServiceMock = $this->getPartlyMockedContentService(['loadContentInfo']); @@ -218,7 +218,7 @@ public function testLoadVersionInfoByIdAndVersionNumber() /** * Test for the loadVersionInfo() method. */ - public function testLoadVersionInfoByIdThrowsNotFoundException() + public function testLoadVersionInfoByIdThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -249,7 +249,7 @@ public function testLoadVersionInfoByIdThrowsNotFoundException() /** * Test for the loadVersionInfo() method. */ - public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion() + public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion(): void { $this->expectException(UnauthorizedException::class); @@ -292,7 +292,7 @@ public function testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVe /** * Test for the loadVersionInfo() method. */ - public function testLoadVersionInfoByIdPublishedVersion() + public function testLoadVersionInfoByIdPublishedVersion(): void { $contentServiceMock = $this->getPartlyMockedContentService(); /** @var \PHPUnit\Framework\MockObject\MockObject $contentHandler */ @@ -335,7 +335,7 @@ public function testLoadVersionInfoByIdPublishedVersion() /** * Test for the loadVersionInfo() method. */ - public function testLoadVersionInfoByIdNonPublishedVersion() + public function testLoadVersionInfoByIdNonPublishedVersion(): void { $contentServiceMock = $this->getPartlyMockedContentService(); /** @var \PHPUnit\Framework\MockObject\MockObject $contentHandler */ @@ -383,7 +383,7 @@ public function testLoadVersionInfoByIdNonPublishedVersion() #[DependsExternal(self::class, 'testLoadVersionInfoByIdThrowsUnauthorizedExceptionNonPublishedVersion')] #[DependsExternal(self::class, 'testLoadVersionInfoByIdPublishedVersion')] #[DependsExternal(self::class, 'testLoadVersionInfoByIdNonPublishedVersion')] - public function testLoadVersionInfo() + public function testLoadVersionInfo(): void { $expectedResult = self::createStub(VersionInfo::class); @@ -409,7 +409,7 @@ public function testLoadVersionInfo() self::assertEquals($expectedResult, $result); } - public function testLoadContent() + public function testLoadContent(): void { $contentService = $this->getPartlyMockedContentService(['internalLoadContentById']); $content = $this->createMock(APIContent::class); @@ -440,7 +440,7 @@ public function testLoadContent() self::assertSame($content, $contentService->loadContent($contentId)); } - public function testLoadContentNonPublished() + public function testLoadContentNonPublished(): void { $contentService = $this->getPartlyMockedContentService(['internalLoadContentById']); $content = $this->createMock(APIContent::class); @@ -473,7 +473,7 @@ public function testLoadContentNonPublished() self::assertSame($content, $contentService->loadContent($contentId)); } - public function testLoadContentUnauthorized() + public function testLoadContentUnauthorized(): void { $this->expectException(UnauthorizedException::class); @@ -497,7 +497,7 @@ public function testLoadContentUnauthorized() $contentService->loadContent($contentId); } - public function testLoadContentNotPublishedStatusUnauthorized() + public function testLoadContentNotPublishedStatusUnauthorized(): void { $permissionResolver = $this->getPermissionResolverMock(); $contentService = $this->getPartlyMockedContentService(['internalLoadContentById']); @@ -573,7 +573,7 @@ public function testInternalLoadContentById(int $id, ?array $languages, ?int $ve } #[DataProvider('internalLoadContentProviderByRemoteId')] - public function testInternalLoadContentByRemoteId(string $remoteId, ?array $languages, ?int $versionNo, bool $useAlwaysAvailable) + public function testInternalLoadContentByRemoteId(string $remoteId, ?array $languages, ?int $versionNo, bool $useAlwaysAvailable): void { $realId = 123; @@ -703,7 +703,7 @@ public function testInternalLoadContentByRemoteIdNotFound(): void /** * Test for the loadContentByContentInfo() method. */ - public function testLoadContentByContentInfo() + public function testLoadContentByContentInfo(): void { $versionInfo = self::createStub(APIVersionInfo::class); $content = $this->createMock(APIContent::class); @@ -743,7 +743,7 @@ public function testLoadContentByContentInfo() /** * Test for the loadContentByVersionInfo() method. */ - public function testLoadContentByVersionInfo() + public function testLoadContentByVersionInfo(): void { $expectedResult = self::createStub(Content::class); @@ -779,7 +779,7 @@ public function testLoadContentByVersionInfo() /** * Test for the deleteContent() method. */ - public function testDeleteContentThrowsUnauthorizedException() + public function testDeleteContentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -826,7 +826,7 @@ public function testDeleteContentThrowsUnauthorizedException() /** * Test for the deleteContent() method. */ - public function testDeleteContent() + public function testDeleteContent(): void { $repository = $this->getRepositoryMock(); $permissionResolver = $this->getPermissionResolverMock(); @@ -904,7 +904,7 @@ public function testDeleteContent() /** * Test for the deleteContent() method. */ - public function testDeleteContentWithRollback() + public function testDeleteContentWithRollback(): void { $this->expectException(\Exception::class); @@ -965,7 +965,7 @@ public function testDeleteContentWithRollback() /** * Test for the deleteVersion() method. */ - public function testDeleteVersionThrowsBadStateExceptionLastVersion() + public function testDeleteVersionThrowsBadStateExceptionLastVersion(): void { $this->expectException(BadStateException::class); @@ -1022,7 +1022,7 @@ public function testDeleteVersionThrowsBadStateExceptionLastVersion() /** * Test for the createContent() method. */ - public function testCreateContentThrowsUnauthorizedException() + public function testCreateContentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -1085,7 +1085,7 @@ public function testCreateContentThrowsUnauthorizedException() * * @exceptionMessage Argument '$contentCreateStruct' is invalid: Another content with remoteId 'faraday' exists */ - public function testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId() + public function testCreateContentThrowsInvalidArgumentExceptionDuplicateRemoteId(): void { $this->expectException(InvalidArgumentException::class); @@ -1431,7 +1431,10 @@ static function (ValueStub $value): string { return $contentCreateStruct; } - public static function providerForTestCreateContentNonRedundantFieldSet1() + /** + * @return array + */ + public static function providerForTestCreateContentNonRedundantFieldSet1(): array { $spiFields = [ new SPIField( @@ -1483,7 +1486,7 @@ public static function providerForTestCreateContentNonRedundantFieldSet1() * Testing the simplest use case. */ #[DataProvider('providerForTestCreateContentNonRedundantFieldSet1')] - public function testCreateContentNonRedundantFieldSet1($mainLanguageCode, $structFields, $spiFields) + public function testCreateContentNonRedundantFieldSet1($mainLanguageCode, $structFields, $spiFields): void { $fieldDefinitions = [ new FieldDefinition( @@ -1506,7 +1509,10 @@ public function testCreateContentNonRedundantFieldSet1($mainLanguageCode, $struc ); } - public static function providerForTestCreateContentNonRedundantFieldSet2() + /** + * @return array + */ + public static function providerForTestCreateContentNonRedundantFieldSet2(): array { $spiFields = [ new SPIField( @@ -1581,7 +1587,7 @@ public static function providerForTestCreateContentNonRedundantFieldSet2() * Testing multiple languages with multiple translatable fields with empty default value. */ #[DataProvider('providerForTestCreateContentNonRedundantFieldSet2')] - public function testCreateContentNonRedundantFieldSet2($mainLanguageCode, $structFields, $spiFields) + public function testCreateContentNonRedundantFieldSet2($mainLanguageCode, $structFields, $spiFields): void { $fieldDefinitions = [ new FieldDefinition( @@ -1614,7 +1620,10 @@ public function testCreateContentNonRedundantFieldSet2($mainLanguageCode, $struc ); } - public static function providerForTestCreateContentNonRedundantFieldSetComplex() + /** + * @return array + */ + public static function providerForTestCreateContentNonRedundantFieldSetComplex(): array { $spiFields0 = [ new SPIField( @@ -1790,7 +1799,7 @@ protected function fixturesForTestCreateContentNonRedundantFieldSetComplex() * Testing multiple languages with multiple translatable fields with empty default value. */ #[DataProvider('providerForTestCreateContentNonRedundantFieldSetComplex')] - public function testCreateContentNonRedundantFieldSetComplex($mainLanguageCode, $structFields, $spiFields) + public function testCreateContentNonRedundantFieldSetComplex($mainLanguageCode, $structFields, $spiFields): void { $fieldDefinitions = $this->fixturesForTestCreateContentNonRedundantFieldSetComplex(); @@ -1802,7 +1811,10 @@ public function testCreateContentNonRedundantFieldSetComplex($mainLanguageCode, ); } - public static function providerForTestCreateContentWithInvalidLanguage() + /** + * @return array + */ + public static function providerForTestCreateContentWithInvalidLanguage(): array { return [ [ @@ -1836,7 +1848,7 @@ public static function providerForTestCreateContentWithInvalidLanguage() * Test for the updateContent() method. */ #[DataProvider('providerForTestCreateContentWithInvalidLanguage')] - public function testCreateContentWithInvalidLanguage($mainLanguageCode, $structFields) + public function testCreateContentWithInvalidLanguage($mainLanguageCode, $structFields): void { $this->expectException(APINotFoundException::class); $this->expectExceptionMessage('Could not find \'Language\' with identifier \'Klingon\''); @@ -2007,7 +2019,10 @@ static function ($valueString) { $mockedService->createContent($contentCreateStruct, []); } - public static function providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition() + /** + * @return array + */ + public static function providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition(): array { return [ [ @@ -2029,7 +2044,7 @@ public static function providerForTestCreateContentThrowsContentValidationExcept * Test for the createContent() method. */ #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionFieldDefinition')] - public function testCreateContentThrowsContentValidationExceptionFieldDefinition($mainLanguageCode, $structFields) + public function testCreateContentThrowsContentValidationExceptionFieldDefinition($mainLanguageCode, $structFields): void { $this->expectException(ContentValidationException::class); $this->expectExceptionMessage('Field definition \'identifier\' does not exist in the given content type'); @@ -2041,7 +2056,10 @@ public function testCreateContentThrowsContentValidationExceptionFieldDefinition ); } - public static function providerForTestCreateContentThrowsContentValidationExceptionTranslation() + /** + * @return array + */ + public static function providerForTestCreateContentThrowsContentValidationExceptionTranslation(): array { return [ [ @@ -2063,7 +2081,7 @@ public static function providerForTestCreateContentThrowsContentValidationExcept * Test for the createContent() method. */ #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionTranslation')] - public function testCreateContentThrowsContentValidationExceptionTranslation($mainLanguageCode, $structFields) + public function testCreateContentThrowsContentValidationExceptionTranslation($mainLanguageCode, $structFields): void { $this->expectException(ContentValidationException::class); $this->expectExceptionMessage('You cannot set a value for the non-translatable Field definition \'identifier\' in language \'eng-US\''); @@ -2215,7 +2233,10 @@ static function () use ($that, $contentCreateStruct): bool { return $contentCreateStruct; } - public static function providerForTestCreateContentThrowsContentValidationExceptionRequiredField() + /** + * @return array + */ + public static function providerForTestCreateContentThrowsContentValidationExceptionRequiredField(): array { return [ [ @@ -2245,7 +2266,7 @@ public function testCreateContentRequiredField( $structFields, $identifier, $languageCode - ) { + ): void { $this->expectException(ContentFieldValidationException::class); $fieldDefinitions = [ @@ -2414,7 +2435,10 @@ static function (ValueStub $value) use ($emptyValue): bool { return [$contentCreateStruct, $allFieldErrors]; } - public static function providerForTestCreateContentThrowsContentFieldValidationException() + /** + * @return array + */ + public static function providerForTestCreateContentThrowsContentFieldValidationException(): array { return self::providerForTestCreateContentNonRedundantFieldSetComplex(); } @@ -2511,7 +2535,7 @@ static function ($object) use ($that, $contentCreateStruct): string { /** * Test for the createContent() method. */ - public function testCreateContentWithLocations() + public function testCreateContentWithLocations(): void { $spiFields = [ new SPIField( @@ -2646,7 +2670,7 @@ public function testCreateContentWithLocations() /** * Test for the createContent() method. */ - public function testCreateContentWithLocationsDuplicateUnderParent() + public function testCreateContentWithLocationsDuplicateUnderParent(): void { $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('You provided multiple LocationCreateStructs with the same parent Location \'321\''); @@ -2810,7 +2834,7 @@ static function ($valueString) { /** * Test for the createContent() method. */ - public function testCreateContentObjectStates() + public function testCreateContentObjectStates(): void { $spiFields = [ new SPIField( @@ -2912,7 +2936,7 @@ public function testCreateContentObjectStates() * Test for the createContent() method. */ #[DataProvider('providerForTestCreateContentThrowsContentValidationExceptionTranslation')] - public function testCreateContentWithRollback() + public function testCreateContentWithRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Store failed'); @@ -2957,7 +2981,10 @@ public function testCreateContentWithRollback() $this->partlyMockedContentService->createContent($contentCreateStruct, []); } - public static function providerForTestUpdateContentThrowsBadStateException() + /** + * @return array + */ + public static function providerForTestUpdateContentThrowsBadStateException(): array { return [ [VersionInfo::STATUS_PUBLISHED], @@ -2969,7 +2996,7 @@ public static function providerForTestUpdateContentThrowsBadStateException() * Test for the updateContent() method. */ #[DataProvider('providerForTestUpdateContentThrowsBadStateException')] - public function testUpdateContentThrowsBadStateException($status) + public function testUpdateContentThrowsBadStateException($status): void { $this->expectException(BadStateException::class); @@ -3017,7 +3044,7 @@ public function testUpdateContentThrowsBadStateException($status) /** * Test for the updateContent() method. */ - public function testUpdateContentThrowsUnauthorizedException() + public function testUpdateContentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -3443,7 +3470,10 @@ static function (SPIValue $value) use ($emptyValue): bool { return [$content->versionInfo, $contentUpdateStruct]; } - public static function providerForTestUpdateContentNonRedundantFieldSet1() + /** + * @return array + */ + public static function providerForTestUpdateContentNonRedundantFieldSet1(): array { $spiFields = [ new SPIField( @@ -3503,7 +3533,7 @@ public static function providerForTestUpdateContentNonRedundantFieldSet1() * Testing the simplest use case. */ #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet1')] - public function testUpdateContentNonRedundantFieldSet1($initialLanguageCode, $structFields, $spiFields) + public function testUpdateContentNonRedundantFieldSet1($initialLanguageCode, $structFields, $spiFields): void { $existingFields = [ new Field( @@ -3538,7 +3568,10 @@ public function testUpdateContentNonRedundantFieldSet1($initialLanguageCode, $st ); } - public static function providerForTestUpdateContentNonRedundantFieldSet2() + /** + * @return array + */ + public static function providerForTestUpdateContentNonRedundantFieldSet2(): array { $spiFields0 = [ new SPIField( @@ -3715,7 +3748,7 @@ public static function providerForTestUpdateContentNonRedundantFieldSet2() * Testing with translatable field. */ #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet2')] - public function testUpdateContentNonRedundantFieldSet2($initialLanguageCode, $structFields, $spiFields) + public function testUpdateContentNonRedundantFieldSet2($initialLanguageCode, $structFields, $spiFields): void { $existingFields = [ new Field( @@ -3750,7 +3783,10 @@ public function testUpdateContentNonRedundantFieldSet2($initialLanguageCode, $st ); } - public static function providerForTestUpdateContentNonRedundantFieldSet3() + /** + * @return array + */ + public static function providerForTestUpdateContentNonRedundantFieldSet3(): array { $spiFields0 = [ new SPIField( @@ -3978,7 +4014,7 @@ public static function providerForTestUpdateContentNonRedundantFieldSet3() * Testing with new language and untranslatable field. */ #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet3')] - public function testUpdateContentNonRedundantFieldSet3($initialLanguageCode, $structFields, $spiFields) + public function testUpdateContentNonRedundantFieldSet3($initialLanguageCode, $structFields, $spiFields): void { $existingFields = [ new Field( @@ -4031,7 +4067,10 @@ public function testUpdateContentNonRedundantFieldSet3($initialLanguageCode, $st ); } - public static function providerForTestUpdateContentNonRedundantFieldSet4() + /** + * @return array + */ + public static function providerForTestUpdateContentNonRedundantFieldSet4(): array { $spiFields0 = [ new SPIField( @@ -4285,7 +4324,7 @@ public static function providerForTestUpdateContentNonRedundantFieldSet4() * Testing with empty values. */ #[DataProvider('providerForTestUpdateContentNonRedundantFieldSet4')] - public function testUpdateContentNonRedundantFieldSet4($initialLanguageCode, $structFields, $spiFields) + public function testUpdateContentNonRedundantFieldSet4($initialLanguageCode, $structFields, $spiFields): void { $existingFields = [ new Field( @@ -4343,7 +4382,7 @@ public function testUpdateContentNonRedundantFieldSet4($initialLanguageCode, $st * * @todo add first field empty */ - public static function providerForTestUpdateContentNonRedundantFieldSetComplex() + public static function providerForTestUpdateContentNonRedundantFieldSetComplex(): array { $spiFields0 = [ new SPIField( @@ -4667,7 +4706,7 @@ protected function fixturesForTestUpdateContentNonRedundantFieldSetComplex() * Testing more complex cases. */ #[DataProvider('providerForTestUpdateContentNonRedundantFieldSetComplex')] - public function testUpdateContentNonRedundantFieldSetComplex($initialLanguageCode, $structFields, $spiFields) + public function testUpdateContentNonRedundantFieldSetComplex($initialLanguageCode, $structFields, $spiFields): void { list($existingFields, $fieldDefinitions) = $this->fixturesForTestUpdateContentNonRedundantFieldSetComplex(); @@ -4680,7 +4719,10 @@ public function testUpdateContentNonRedundantFieldSetComplex($initialLanguageCod ); } - public static function providerForTestUpdateContentWithInvalidLanguage() + /** + * @return array + */ + public static function providerForTestUpdateContentWithInvalidLanguage(): array { return [ [ @@ -4724,7 +4766,7 @@ public function __toString(): string * Test for the updateContent() method. */ #[DataProvider('providerForTestUpdateContentWithInvalidLanguage')] - public function testUpdateContentWithInvalidLanguage($initialLanguageCode, $structFields) + public function testUpdateContentWithInvalidLanguage($initialLanguageCode, $structFields): void { $this->expectException(APINotFoundException::class); $this->expectExceptionMessage('Could not find \'Language\' with identifier \'Klingon\''); @@ -4975,7 +5017,10 @@ private function prepareContentForTestCreateAndUpdateContent( ); } - public static function providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition() + /** + * @return array + */ + public static function providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition(): array { return [ [ @@ -4997,7 +5042,7 @@ public static function providerForTestUpdateContentThrowsContentValidationExcept * Test for the updateContent() method. */ #[DataProvider('providerForTestUpdateContentThrowsContentValidationExceptionFieldDefinition')] - public function testUpdateContentThrowsContentValidationExceptionFieldDefinition($initialLanguageCode, $structFields) + public function testUpdateContentThrowsContentValidationExceptionFieldDefinition($initialLanguageCode, $structFields): void { $this->expectException(ContentValidationException::class); $this->expectExceptionMessage('Field definition \'identifier\' does not exist in given content type'); @@ -5009,7 +5054,10 @@ public function testUpdateContentThrowsContentValidationExceptionFieldDefinition ); } - public static function providerForTestUpdateContentThrowsContentValidationExceptionTranslation() + /** + * @return array + */ + public static function providerForTestUpdateContentThrowsContentValidationExceptionTranslation(): array { return [ [ @@ -5031,7 +5079,7 @@ public static function providerForTestUpdateContentThrowsContentValidationExcept * Test for the updateContent() method. */ #[DataProvider('providerForTestUpdateContentThrowsContentValidationExceptionTranslation')] - public function testUpdateContentThrowsContentValidationExceptionTranslation($initialLanguageCode, $structFields) + public function testUpdateContentThrowsContentValidationExceptionTranslation($initialLanguageCode, $structFields): void { $this->expectException(ContentValidationException::class); $this->expectExceptionMessage('You cannot set a value for the non-translatable Field definition \'identifier\' in language \'eng-US\''); @@ -5132,7 +5180,10 @@ static function (Field $field) { return [$content->versionInfo, $contentUpdateStruct]; } - public static function providerForTestUpdateContentRequiredField() + /** + * @return array + */ + public static function providerForTestUpdateContentRequiredField(): array { return [ [ @@ -5162,7 +5213,7 @@ public function testUpdateContentRequiredField( $structFields, $identifier, $languageCode - ) { + ): void { $this->expectException(ContentFieldValidationException::class); $existingFields = [ @@ -5407,7 +5458,7 @@ public function testUpdateContentThrowsContentFieldValidationException( /** * Test for the updateContent() method. */ - public function testUpdateContentTransactionRollback() + public function testUpdateContentTransactionRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Store failed'); @@ -5468,7 +5519,7 @@ public function testUpdateContentTransactionRollback() /** * Test for the copyContent() method. */ - public function testCopyContentThrowsUnauthorizedException() + public function testCopyContentThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -5515,7 +5566,7 @@ public function testCopyContentThrowsUnauthorizedException() /** * Test for the copyContent() method. */ - public function testCopyContent() + public function testCopyContent(): void { $repositoryMock = $this->getRepositoryMock(); $contentService = $this->getPartlyMockedContentService([ @@ -5661,7 +5712,7 @@ public function testCopyContent() /** * Test for the copyContent() method. */ - public function testCopyContentWithVersionInfo() + public function testCopyContentWithVersionInfo(): void { $repositoryMock = $this->getRepositoryMock(); $contentService = $this->getPartlyMockedContentService([ @@ -5798,7 +5849,7 @@ public function testCopyContentWithVersionInfo() /** * Test for the copyContent() method. */ - public function testCopyContentWithRollback() + public function testCopyContentWithRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); diff --git a/tests/lib/Repository/Service/Mock/PermissionTest.php b/tests/lib/Repository/Service/Mock/PermissionTest.php index d3938bc737..047d31a60b 100644 --- a/tests/lib/Repository/Service/Mock/PermissionTest.php +++ b/tests/lib/Repository/Service/Mock/PermissionTest.php @@ -30,7 +30,10 @@ */ class PermissionTest extends BaseServiceMockTest { - public static function providerForTestHasAccessReturnsTrue() + /** + * @return array + */ + public static function providerForTestHasAccessReturnsTrue(): array { return [ [ @@ -103,7 +106,7 @@ public static function providerForTestHasAccessReturnsTrue() * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsTrue')] - public function testHasAccessReturnsTrue(array $roles, array $roleAssignments) + public function testHasAccessReturnsTrue(array $roles, array $roleAssignments): void { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ $userHandlerMock = $this->getPersistenceMock()->userHandler(); @@ -122,7 +125,10 @@ public function testHasAccessReturnsTrue(array $roles, array $roleAssignments) self::assertTrue($result); } - public static function providerForTestHasAccessReturnsFalse() + /** + * @return array + */ + public static function providerForTestHasAccessReturnsFalse(): array { return [ [[], []], @@ -167,7 +173,7 @@ public static function providerForTestHasAccessReturnsFalse() * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsFalse')] - public function testHasAccessReturnsFalse(array $roles, array $roleAssignments) + public function testHasAccessReturnsFalse(array $roles, array $roleAssignments): void { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ $userHandlerMock = $this->getPersistenceMock()->userHandler(); @@ -189,7 +195,7 @@ public function testHasAccessReturnsFalse(array $roles, array $roleAssignments) /** * Test for the sudo() & hasAccess() method. */ - public function testHasAccessReturnsFalseButSudoSoTrue() + public function testHasAccessReturnsFalseButSudoSoTrue(): void { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ $userHandlerMock = $this->getPersistenceMock()->userHandler(); @@ -217,7 +223,7 @@ static function (Repository $repo) { /** * @return array */ - public static function providerForTestHasAccessReturnsPermissionSets() + public static function providerForTestHasAccessReturnsPermissionSets(): array { return [ [ @@ -272,7 +278,7 @@ public static function providerForTestHasAccessReturnsPermissionSets() * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsPermissionSets')] - public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssignments) + public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssignments): void { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ $userHandlerMock = $this->getPersistenceMock()->userHandler(); @@ -332,7 +338,7 @@ public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssi /** * @return array */ - public static function providerForTestHasAccessReturnsLimitationNotFoundException() + public static function providerForTestHasAccessReturnsLimitationNotFoundException(): array { return [ [ @@ -387,7 +393,7 @@ public static function providerForTestHasAccessReturnsLimitationNotFoundExceptio * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsLimitationNotFoundException')] - public function testHasAccessReturnsLimitationNotFoundException(array $roles, array $roleAssignments) + public function testHasAccessReturnsLimitationNotFoundException(array $roles, array $roleAssignments): void { $this->expectException(LimitationNotFoundException::class); @@ -449,7 +455,7 @@ public function testHasAccessReturnsLimitationNotFoundException(array $roles, ar /** * @return array */ - public static function providerForTestHasAccessReturnsInvalidArgumentValueException() + public static function providerForTestHasAccessReturnsInvalidArgumentValueException(): array { return [ [ @@ -504,7 +510,7 @@ public static function providerForTestHasAccessReturnsInvalidArgumentValueExcept * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsInvalidArgumentValueException')] - public function testHasAccessReturnsInvalidArgumentValueException(array $roles, array $roleAssignments) + public function testHasAccessReturnsInvalidArgumentValueException(array $roles, array $roleAssignments): void { $this->expectException(InvalidArgumentValue::class); @@ -519,7 +525,10 @@ public function testHasAccessReturnsInvalidArgumentValueException(array $roles, } } - public static function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation() + /** + * @return array + */ + public static function providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation(): array { return [ [ @@ -568,7 +577,7 @@ public static function providerForTestHasAccessReturnsPermissionSetsWithRoleLimi * Test for the hasAccess() method. */ #[DataProvider('providerForTestHasAccessReturnsPermissionSetsWithRoleLimitation')] - public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $roles, array $roleAssignments) + public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $roles, array $roleAssignments): void { /** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */ $userHandlerMock = $this->getPersistenceMock()->userHandler(); @@ -706,7 +715,10 @@ private static function createRole(array $policiesData, $roleId = null) ); } - public static function providerForTestCanUserSimple() + /** + * @return array + */ + public static function providerForTestCanUserSimple(): array { return [ [true, true], @@ -721,7 +733,7 @@ public static function providerForTestCanUserSimple() * Tests execution paths with permission sets equaling to boolean value or empty array. */ #[DataProvider('providerForTestCanUserSimple')] - public function testCanUserSimple($permissionSets, $result) + public function testCanUserSimple($permissionSets, $result): void { $permissionResolverMock = $this->getPermissionResolverMock(['hasAccess']); @@ -745,7 +757,7 @@ public function testCanUserSimple($permissionSets, $result) * * Tests execution path with permission set defining no limitations. */ - public function testCanUserWithoutLimitations() + public function testCanUserWithoutLimitations(): void { $permissionResolverMock = $this->getPermissionResolverMock( [ @@ -836,7 +848,7 @@ private function getPermissionSetsMock() * * @return array */ - public static function providerForTestCanUserComplex() + public static function providerForTestCanUserComplex(): array { return [ [ @@ -918,7 +930,7 @@ public static function providerForTestCanUserComplex() * Tests execution paths with permission sets containing limitations. */ #[DataProvider('providerForTestCanUserComplex')] - public function testCanUserComplex(array $roleLimitationEvaluations, array $policyLimitationEvaluations, $userCan) + public function testCanUserComplex(array $roleLimitationEvaluations, array $policyLimitationEvaluations, $userCan): void { /** @var $valueObject \Ibexa\Contracts\Core\Repository\Values\ValueObject */ $valueObject = self::createStub(ValueObject::class); @@ -1009,7 +1021,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli /** * Test for the setCurrentUserReference() and getCurrentUserReference() methods. */ - public function testSetAndGetCurrentUserReference() + public function testSetAndGetCurrentUserReference(): void { $permissionResolverMock = $this->getPermissionResolverMock(null); $userReferenceMock = $this->getUserReferenceMock(); @@ -1030,7 +1042,7 @@ public function testSetAndGetCurrentUserReference() /** * Test for the getCurrentUserReference() method. */ - public function testGetCurrentUserReferenceReturnsAnonymousUser() + public function testGetCurrentUserReferenceReturnsAnonymousUser(): void { $permissionResolverMock = $this->getPermissionResolverMock(null); diff --git a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php index 64c5e3ff24..ac48a61799 100644 --- a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php +++ b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php @@ -27,7 +27,10 @@ #[CoversClass(RelationProcessor::class)] class RelationProcessorTest extends BaseServiceMockTest { - public static function providerForTestAppendRelations() + /** + * @return array + */ + public static function providerForTestAppendRelations(): array { return [ [ @@ -163,7 +166,7 @@ public static function providerForTestAppendRelations() * Test for the appendFieldRelations() method. */ #[DataProvider('providerForTestAppendRelations')] - public function testAppendFieldRelations(array $fieldRelations, array $expected) + public function testAppendFieldRelations(array $fieldRelations, array $expected): void { $locationHandler = $this->getPersistenceMock()->locationHandler(); $relationProcessor = $this->getPartlyMockedRelationProcessor(); @@ -228,7 +231,7 @@ protected function assertLocationHandlerExpectation($fieldRelations, $type, arra /** * Test for the appendFieldRelations() method. */ - public function testAppendFieldRelationsLocationMappingWorks() + public function testAppendFieldRelationsLocationMappingWorks(): void { $locationHandler = $this->getPersistenceMock()->locationHandler(); $relationProcessor = $this->getPartlyMockedRelationProcessor(); @@ -288,7 +291,7 @@ public function testAppendFieldRelationsLocationMappingWorks() ); } - public function testAppendFieldRelationsLogsMissingLocations() + public function testAppendFieldRelationsLogsMissingLocations(): void { $fieldValueMock = $this->getMockForAbstractClass(Value::class); $fieldTypeMock = $this->createMock(FieldType::class); @@ -343,7 +346,7 @@ public function testAppendFieldRelationsLogsMissingLocations() /** * Test for the processFieldRelations() method. */ - public function testProcessFieldRelationsNoChanges() + public function testProcessFieldRelationsNoChanges(): void { $relationProcessor = $this->getPartlyMockedRelationProcessor(); $contentHandlerMock = $this->getPersistenceMockHandler('Content\\Handler'); @@ -418,7 +421,7 @@ public function testProcessFieldRelationsNoChanges() /** * Test for the processFieldRelations() method. */ - public function testProcessFieldRelationsAddsRelations() + public function testProcessFieldRelationsAddsRelations(): void { $relationProcessor = $this->getPartlyMockedRelationProcessor(); $contentHandlerMock = $this->getPersistenceMockHandler('Content\\Handler'); @@ -518,7 +521,7 @@ public function testProcessFieldRelationsAddsRelations() /** * Test for the processFieldRelations() method. */ - public function testProcessFieldRelationsRemovesRelations() + public function testProcessFieldRelationsRemovesRelations(): void { $relationProcessor = $this->getPartlyMockedRelationProcessor(); $contentHandlerMock = $this->getPersistenceMockHandler('Content\\Handler'); @@ -606,7 +609,7 @@ public function testProcessFieldRelationsRemovesRelations() /** * Test for the processFieldRelations() method. */ - public function testProcessFieldRelationsWhenRelationFieldNoLongerExists() + public function testProcessFieldRelationsWhenRelationFieldNoLongerExists(): void { $existingRelations = [ $this->getStubbedRelation(2, RelationType::FIELD->value, 43, 17), diff --git a/tests/lib/Repository/Service/Mock/RepositoryTest.php b/tests/lib/Repository/Service/Mock/RepositoryTest.php index c559732276..4627e51d68 100644 --- a/tests/lib/Repository/Service/Mock/RepositoryTest.php +++ b/tests/lib/Repository/Service/Mock/RepositoryTest.php @@ -20,7 +20,7 @@ class RepositoryTest extends BaseServiceMockTest /** * Test for the beginTransaction() method. */ - public function testBeginTransaction() + public function testBeginTransaction(): void { $mockedRepository = $this->getRepository(); $transactionHandlerMock = $this->getTransactionHandlerMock(); @@ -37,7 +37,7 @@ public function testBeginTransaction() /** * Test for the commit() method. */ - public function testCommit() + public function testCommit(): void { $mockedRepository = $this->getRepository(); $transactionHandlerMock = $this->getTransactionHandlerMock(); @@ -54,7 +54,7 @@ public function testCommit() /** * Test for the commit() method. */ - public function testCommitThrowsRuntimeException() + public function testCommitThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); @@ -75,7 +75,7 @@ public function testCommitThrowsRuntimeException() /** * Test for the rollback() method. */ - public function testRollback() + public function testRollback(): void { $mockedRepository = $this->getRepository(); $transactionHandlerMock = $this->getTransactionHandlerMock(); @@ -92,7 +92,7 @@ public function testRollback() /** * Test for the rollback() method. */ - public function testRollbackThrowsRuntimeException() + public function testRollbackThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); diff --git a/tests/lib/Repository/Service/Mock/RoleTest.php b/tests/lib/Repository/Service/Mock/RoleTest.php index f4b2d81d36..d916a06b73 100644 --- a/tests/lib/Repository/Service/Mock/RoleTest.php +++ b/tests/lib/Repository/Service/Mock/RoleTest.php @@ -39,7 +39,7 @@ class RoleTest extends BaseServiceMockTest /** * Test for the createRole() method. */ - public function testCreateRoleThrowsLimitationValidationException() + public function testCreateRoleThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -104,7 +104,7 @@ public function testCreateRoleThrowsLimitationValidationException() /** * Test for the addPolicy() method. */ - public function testAddPolicyThrowsLimitationValidationException() + public function testAddPolicyThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -168,7 +168,7 @@ public function testAddPolicyThrowsLimitationValidationException() /** * Test for the updatePolicyByRoleDraft() method. */ - public function testUpdatePolicyThrowsLimitationValidationException() + public function testUpdatePolicyThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -241,7 +241,7 @@ static function ($propertyName): ?string { /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUserThrowsUnauthorizedException() + public function testAssignRoleToUserThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -267,7 +267,7 @@ public function testAssignRoleToUserThrowsUnauthorizedException() /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUserThrowsLimitationValidationException() + public function testAssignRoleToUserThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -314,7 +314,7 @@ public function testAssignRoleToUserThrowsLimitationValidationException() /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUserThrowsBadStateException() + public function testAssignRoleToUserThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -346,7 +346,7 @@ public function testAssignRoleToUserThrowsBadStateException() /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUser() + public function testAssignRoleToUser(): void { $limitationMock = $this->createMock(RoleLimitation::class); $limitationTypeMock = $this->createMock(SPIType::class); @@ -429,7 +429,7 @@ public function testAssignRoleToUser() /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUserWithNullLimitation() + public function testAssignRoleToUserWithNullLimitation(): void { $repository = $this->getRepositoryMock(); $roleServiceMock = $this->getPartlyMockedRoleService(['checkAssignmentAndFilterLimitationValues']); @@ -491,7 +491,7 @@ public function testAssignRoleToUserWithNullLimitation() /** * Test for the assignRoleToUser() method. */ - public function testAssignRoleToUserWithRollback() + public function testAssignRoleToUserWithRollback(): void { $this->expectException(\Exception::class); @@ -555,7 +555,7 @@ public function testAssignRoleToUserWithRollback() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleToUserGroupThrowsUnauthorizedException() + public function testAssignRoleToUserGroupThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -582,7 +582,7 @@ public function testAssignRoleToUserGroupThrowsUnauthorizedException() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleToUserGroupThrowsLimitationValidationException() + public function testAssignRoleToUserGroupThrowsLimitationValidationException(): void { $this->expectException(LimitationValidationException::class); @@ -630,7 +630,7 @@ public function testAssignRoleToUserGroupThrowsLimitationValidationException() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleGroupToUserThrowsBadStateException() + public function testAssignRoleGroupToUserThrowsBadStateException(): void { $this->expectException(BadStateException::class); @@ -663,7 +663,7 @@ public function testAssignRoleGroupToUserThrowsBadStateException() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleToUserGroup() + public function testAssignRoleToUserGroup(): void { $limitationMock = $this->createMock(RoleLimitation::class); $limitationTypeMock = $this->createMock(SPIType::class); @@ -750,7 +750,7 @@ public function testAssignRoleToUserGroup() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleToUserGroupWithNullLimitation() + public function testAssignRoleToUserGroupWithNullLimitation(): void { $repository = $this->getRepositoryMock(); $roleServiceMock = $this->getPartlyMockedRoleService(['checkAssignmentAndFilterLimitationValues']); @@ -816,7 +816,7 @@ public function testAssignRoleToUserGroupWithNullLimitation() /** * Test for the assignRoleToUserGroup() method. */ - public function testAssignRoleToUserGroupWithRollback() + public function testAssignRoleToUserGroupWithRollback(): void { $this->expectException(\Exception::class); @@ -881,7 +881,7 @@ public function testAssignRoleToUserGroupWithRollback() $roleServiceMock->assignRoleToUserGroup($roleMock, $userGroupMock, null); } - public function testRemovePolicyByRoleDraftThrowsUnauthorizedException() + public function testRemovePolicyByRoleDraftThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -920,7 +920,7 @@ public function testRemovePolicyByRoleDraftThrowsUnauthorizedException() /** * Test for the removePolicyByRoleDraft() method. */ - public function testRemovePolicyByRoleDraftWithRollback() + public function testRemovePolicyByRoleDraftWithRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -975,7 +975,7 @@ public function testRemovePolicyByRoleDraftWithRollback() $roleServiceMock->removePolicyByRoleDraft($roleDraftMock, $policyDraftMock); } - public function testRemovePolicyByRoleDraft() + public function testRemovePolicyByRoleDraft(): void { $repository = $this->getRepositoryMock(); $roleDraftMock = $this->createMock(RoleDraft::class); diff --git a/tests/lib/Repository/Service/Mock/SearchTest.php b/tests/lib/Repository/Service/Mock/SearchTest.php index 4a4760d0a1..63417e7281 100644 --- a/tests/lib/Repository/Service/Mock/SearchTest.php +++ b/tests/lib/Repository/Service/Mock/SearchTest.php @@ -44,7 +44,7 @@ class SearchTest extends BaseServiceMockTest /** * Test for the __construct() method. */ - public function testConstructor() + public function testConstructor(): void { $repositoryMock = $this->getRepositoryMock(); /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ @@ -63,7 +63,10 @@ public function testConstructor() ); } - public static function providerForFindContentValidatesLocationCriteriaAndSortClauses() + /** + * @return array + */ + public static function providerForFindContentValidatesLocationCriteriaAndSortClauses(): array { return [ [ @@ -94,7 +97,7 @@ public static function providerForFindContentValidatesLocationCriteriaAndSortCla } #[DataProvider('providerForFindContentValidatesLocationCriteriaAndSortClauses')] - public function testFindContentValidatesLocationCriteriaAndSortClauses($query, $exceptionMessage) + public function testFindContentValidatesLocationCriteriaAndSortClauses($query, $exceptionMessage): void { $this->expectException(InvalidArgumentException::class); @@ -122,7 +125,10 @@ public function testFindContentValidatesLocationCriteriaAndSortClauses($query, $ self::fail('Expected exception was not thrown'); } - public static function providerForFindSingleValidatesLocationCriteria() + /** + * @return array + */ + public static function providerForFindSingleValidatesLocationCriteria(): array { return [ [ @@ -141,7 +147,7 @@ public static function providerForFindSingleValidatesLocationCriteria() } #[DataProvider('providerForFindSingleValidatesLocationCriteria')] - public function testFindSingleValidatesLocationCriteria($criterion, $exceptionMessage) + public function testFindSingleValidatesLocationCriteria($criterion, $exceptionMessage): void { $this->expectException(InvalidArgumentException::class); @@ -171,7 +177,7 @@ public function testFindSingleValidatesLocationCriteria($criterion, $exceptionMe /** * Test for the findContent() method. */ - public function testFindContentThrowsHandlerException() + public function testFindContentThrowsHandlerException(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -208,7 +214,7 @@ public function testFindContentThrowsHandlerException() /** * Test for the findContent() method when search is out of sync with persistence. */ - public function testFindContentWhenDomainMapperThrowsException() + public function testFindContentWhenDomainMapperThrowsException(): void { $indexer = $this->createMock(BackgroundIndexer::class); $indexer->expects(self::once()) @@ -254,7 +260,7 @@ public function testFindContentWhenDomainMapperThrowsException() /** * Test for the findContent() method. */ - public function testFindContentNoPermissionsFilter() + public function testFindContentNoPermissionsFilter(): void { /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ $searchHandlerMock = $this->getSPIMockHandler('Search\\Handler'); @@ -316,7 +322,7 @@ public function testFindContentNoPermissionsFilter() /** * Test for the findContent() method. */ - public function testFindContentWithPermission() + public function testFindContentWithPermission(): void { /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ $searchHandlerMock = $this->getSPIMockHandler('Search\\Handler'); @@ -386,7 +392,7 @@ public function testFindContentWithPermission() /** * Test for the findContent() method. */ - public function testFindContentWithNoPermission() + public function testFindContentWithNoPermission(): void { /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ $searchHandlerMock = $this->getSPIMockHandler('Search\\Handler'); @@ -430,7 +436,7 @@ public function testFindContentWithNoPermission() /** * Test for the findContent() method. */ - public function testFindContentWithDefaultQueryValues() + public function testFindContentWithDefaultQueryValues(): void { /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ $searchHandlerMock = $this->getSPIMockHandler('Search\\Handler'); @@ -498,7 +504,7 @@ public function testFindContentWithDefaultQueryValues() /** * Test for the findSingle() method. */ - public function testFindSingleThrowsNotFoundException() + public function testFindSingleThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -531,7 +537,7 @@ public function testFindSingleThrowsNotFoundException() /** * Test for the findSingle() method. */ - public function testFindSingleThrowsHandlerException() + public function testFindSingleThrowsHandlerException(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -626,7 +632,7 @@ public function testFindSingle(): void /** * Test for the findLocations() method. */ - public function testFindLocationsWithPermission() + public function testFindLocationsWithPermission(): void { $repositoryMock = $this->getRepositoryMock(); /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ @@ -697,7 +703,7 @@ public function testFindLocationsWithPermission() /** * Test for the findLocations() method. */ - public function testFindLocationsWithNoPermissionsFilter() + public function testFindLocationsWithNoPermissionsFilter(): void { $repositoryMock = $this->getRepositoryMock(); /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ @@ -764,7 +770,7 @@ public function testFindLocationsWithNoPermissionsFilter() /** * Test for the findLocations() method when search is out of sync with persistence. */ - public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsException() + public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsException(): void { $indexer = $this->createMock(BackgroundIndexer::class); $indexer->expects(self::once()) @@ -815,7 +821,7 @@ public function testFindLocationsBackgroundIndexerWhenDomainMapperThrowsExceptio /** * Test for the findLocations() method. */ - public function testFindLocationsThrowsHandlerException() + public function testFindLocationsThrowsHandlerException(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -852,7 +858,7 @@ public function testFindLocationsThrowsHandlerException() /** * Test for the findLocations() method. */ - public function testFindLocationsWithDefaultQueryValues() + public function testFindLocationsWithDefaultQueryValues(): void { $repositoryMock = $this->getRepositoryMock(); /** @var \Ibexa\Contracts\Core\Search\Handler $searchHandlerMock */ diff --git a/tests/lib/Repository/Service/Mock/UrlAliasTest.php b/tests/lib/Repository/Service/Mock/UrlAliasTest.php index 9fa33b3525..a01414b7fd 100644 --- a/tests/lib/Repository/Service/Mock/UrlAliasTest.php +++ b/tests/lib/Repository/Service/Mock/UrlAliasTest.php @@ -56,7 +56,7 @@ protected function setUp(): void /** * Test for the __construct() method. */ - public function testConstructor() + public function testConstructor(): void { $repositoryMock = $this->getRepositoryMock(); @@ -73,7 +73,7 @@ public function testConstructor() /** * Test for the load() method. */ - public function testLoad() + public function testLoad(): void { $mockedService = $this->getPartlyMockedURLAliasServiceService(['extractPath']); /** @var \PHPUnit\Framework\MockObject\MockObject $urlAliasHandlerMock */ @@ -116,7 +116,7 @@ public function testLoad() /** * Test for the load() method. */ - public function testLoadThrowsNotFoundException() + public function testLoadThrowsNotFoundException(): void { $mockedService = $this->getPartlyMockedURLAliasServiceService(['extractPath']); /** @var \PHPUnit\Framework\MockObject\MockObject $urlAliasHandlerMock */ @@ -174,7 +174,7 @@ protected function getSpiUrlAlias() /** * Test for the load() method. */ - public function testLoadThrowsNotFoundExceptionPath() + public function testLoadThrowsNotFoundExceptionPath(): void { $spiUrlAlias = $this->getSpiUrlAlias(); $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -196,7 +196,7 @@ public function testLoadThrowsNotFoundExceptionPath() /** * Test for the removeAliases() method. */ - public function testRemoveAliasesThrowsInvalidArgumentException() + public function testRemoveAliasesThrowsInvalidArgumentException(): void { $aliasList = [new URLAlias(['isCustom' => false])]; $mockedService = $this->getPartlyMockedURLAliasServiceService(); @@ -216,7 +216,7 @@ public function testRemoveAliasesThrowsInvalidArgumentException() /** * Test for the removeAliases() method. */ - public function testRemoveAliases() + public function testRemoveAliases(): void { $aliasList = [ new URLAlias([ @@ -266,7 +266,7 @@ public function testRemoveAliases() /** * Test for the removeAliases() method. */ - public function testRemoveAliasesWithRollback() + public function testRemoveAliasesWithRollback(): void { $aliasList = [ new URLAlias([ @@ -317,7 +317,10 @@ public function testRemoveAliasesWithRollback() $mockedService->removeAliases($aliasList); } - public static function providerForTestListAutogeneratedLocationAliasesPath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesPath(): array { $pathElement1 = [ 'always-available' => true, @@ -718,7 +721,7 @@ public static function providerForTestListAutogeneratedLocationAliasesPath() * Test for the listLocationAliases() method. */ #[DataProvider('providerForTestListAutogeneratedLocationAliasesPath')] - public function testListAutogeneratedLocationAliasesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths) + public function testListAutogeneratedLocationAliasesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -756,7 +759,7 @@ public function testListAutogeneratedLocationAliasesPathCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -793,7 +796,7 @@ public function testListAutogeneratedLocationAliasesPathCustomConfiguration( /** * Test for the load() method. */ - public function testListLocationAliasesWithShowAllTranslations() + public function testListLocationAliasesWithShowAllTranslations(): void { $pathElement1 = [ 'always-available' => true, @@ -855,7 +858,7 @@ public function testListLocationAliasesWithShowAllTranslations() /** * Test for the load() method. */ - public function testListLocationAliasesWithShowAllTranslationsCustomConfiguration() + public function testListLocationAliasesWithShowAllTranslationsCustomConfiguration(): void { $pathElement1 = [ 'always-available' => true, @@ -921,7 +924,10 @@ public function testListLocationAliasesWithShowAllTranslationsCustomConfiguratio self::assertEquals('/jedan/dva/tri', $urlAliases[0]->path); } - public static function providerForTestListAutogeneratedLocationAliasesEmpty() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesEmpty(): array { $pathElement1 = [ 'always-available' => true, @@ -1002,7 +1008,7 @@ public static function providerForTestListAutogeneratedLocationAliasesEmpty() * Test for the listLocationAliases() method. */ #[DataProvider('providerForTestListAutogeneratedLocationAliasesEmpty')] - public function testListAutogeneratedLocationAliasesEmpty($spiUrlAliases, $prioritizedLanguageCodes) + public function testListAutogeneratedLocationAliasesEmpty($spiUrlAliases, $prioritizedLanguageCodes): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -1024,7 +1030,7 @@ public function testListAutogeneratedLocationAliasesEmpty($spiUrlAliases, $prior public function testListAutogeneratedLocationAliasesEmptyCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -1044,7 +1050,10 @@ public function testListAutogeneratedLocationAliasesEmptyCustomConfiguration( self::assertEmpty($urlAliases); } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodePath(): array { $pathElement1 = [ 'always-available' => true, @@ -1408,7 +1417,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodePath( $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -1441,7 +1450,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodePathCustomCo $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -1471,7 +1480,10 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodePathCustomCo } } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeEmpty(): array { $pathElement1 = [ 'always-available' => true, @@ -1668,7 +1680,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeEmpty( $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -1690,7 +1702,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomC $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -1710,7 +1722,10 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeEmptyCustomC self::assertEmpty($urlAliases); } - public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -1779,7 +1794,7 @@ public static function providerForTestListAutogeneratedLocationAliasesMultipleLa * Test for the listLocationAliases() method. */ #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesPath')] - public function testListAutogeneratedLocationAliasesMultipleLanguagesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths) + public function testListAutogeneratedLocationAliasesMultipleLanguagesPath($spiUrlAliases, $prioritizedLanguageCodes, $paths): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -1812,7 +1827,7 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomC $spiUrlAliases, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -1842,7 +1857,10 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesPathCustomC } } - public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -1885,7 +1903,7 @@ public static function providerForTestListAutogeneratedLocationAliasesMultipleLa * Test for the listLocationAliases() method. */ #[DataProvider('providerForTestListAutogeneratedLocationAliasesMultipleLanguagesEmpty')] - public function testListAutogeneratedLocationAliasesMultipleLanguagesEmpty($spiUrlAliases, $prioritizedLanguageCodes) + public function testListAutogeneratedLocationAliasesMultipleLanguagesEmpty($spiUrlAliases, $prioritizedLanguageCodes): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -1907,7 +1925,7 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesEmpty($spiU public function testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustomConfiguration( $spiUrlAliases, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -1926,7 +1944,10 @@ public function testListAutogeneratedLocationAliasesMultipleLanguagesEmptyCustom self::assertEmpty($urlAliases); } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesPath(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -2004,7 +2025,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2036,7 +2057,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -2065,7 +2086,10 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang } } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeMultipleLanguagesEmpty(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -2124,7 +2148,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2145,7 +2169,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -2164,7 +2188,10 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeMultipleLang self::assertEmpty($urlAliases); } - public static function providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -2243,7 +2270,7 @@ public function testListAutogeneratedLocationAliasesAlwaysAvailablePath( $spiUrlAliases, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2274,7 +2301,7 @@ public function testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomCon $spiUrlAliases, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -2303,7 +2330,10 @@ public function testListAutogeneratedLocationAliasesAlwaysAvailablePathCustomCon } } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailablePath(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -2364,7 +2394,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2396,7 +2426,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila $languageCode, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -2425,7 +2455,10 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila } } - public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty() + /** + * @return array + */ + public static function providerForTestListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvailableEmpty(): array { $spiUrlAliases = [ new SPIUrlAlias( @@ -2478,7 +2511,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2499,7 +2532,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila $spiUrlAliases, $languageCode, $prioritizedLanguageCodes - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, [] @@ -2521,7 +2554,7 @@ public function testListAutogeneratedLocationAliasesWithLanguageCodeAlwaysAvaila /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliases() + public function testListGlobalAliases(): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -2571,7 +2604,7 @@ public function testListGlobalAliases() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliasesEmpty() + public function testListGlobalAliasesEmpty(): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService(); @@ -2610,7 +2643,7 @@ public function testListGlobalAliasesEmpty() /** * Test for the listGlobalAliases() method. */ - public function testListGlobalAliasesWithParameters() + public function testListGlobalAliasesWithParameters(): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService(); @@ -2638,7 +2671,7 @@ public function testListGlobalAliasesWithParameters() /** * Test for the lookup() method. */ - public function testLookupThrowsNotFoundException() + public function testLookupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2657,7 +2690,10 @@ public function testLookupThrowsNotFoundException() $urlAliasService->lookup('url'); } - public static function providerForTestLookupThrowsNotFoundExceptionPath() + /** + * @return array + */ + public static function providerForTestLookupThrowsNotFoundExceptionPath(): array { return [ // alias does not exist in requested language @@ -2675,7 +2711,7 @@ public static function providerForTestLookupThrowsNotFoundExceptionPath() * Test for the lookup() method. */ #[DataProvider('providerForTestLookupThrowsNotFoundExceptionPath')] - public function testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable($url, $prioritizedLanguageList, $languageCode) + public function testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable($url, $prioritizedLanguageList, $languageCode): void { $this->expectException(NotFoundException::class); @@ -2715,7 +2751,10 @@ public function testLookupThrowsNotFoundExceptionPathNotMatchedOrNotLoadable($ur $urlAliasService->lookup($url, $languageCode); } - public static function providerForTestLookup() + /** + * @return array + */ + public static function providerForTestLookup(): array { return [ // showAllTranslations setting is true @@ -2731,7 +2770,7 @@ public static function providerForTestLookup() * Test for the lookup() method. */ #[DataProvider('providerForTestLookup')] - public function testLookup($prioritizedLanguageList, $showAllTranslations, $alwaysAvailable, $languageCode) + public function testLookup($prioritizedLanguageList, $showAllTranslations, $alwaysAvailable, $languageCode): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -2781,7 +2820,10 @@ public function testLookup($prioritizedLanguageList, $showAllTranslations, $alwa ); } - public static function providerForTestLookupWithSharedTranslation() + /** + * @return array + */ + public static function providerForTestLookupWithSharedTranslation(): array { return [ // showAllTranslations setting is true @@ -2811,7 +2853,7 @@ public function testLookupWithSharedTranslation( $showAllTranslations, $alwaysAvailable, $languageCode - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageList, @@ -2863,7 +2905,7 @@ public function testLookupWithSharedTranslation( /** * Test for the reverseLookup() method. */ - public function testReverseLookupCustomConfiguration() + public function testReverseLookupCustomConfiguration(): void { $this->expectException(NotFoundException::class); @@ -2889,7 +2931,7 @@ public function testReverseLookupCustomConfiguration() /** * Test for the reverseLookup() method. */ - public function testReverseLookupThrowsNotFoundException() + public function testReverseLookupThrowsNotFoundException(): void { $this->expectException(NotFoundException::class); @@ -2923,7 +2965,10 @@ public function testReverseLookupThrowsNotFoundException() $urlAliasService->reverseLookup($location, $languageCode); } - public static function providerForTestReverseLookup() + /** + * @return array + */ + public static function providerForTestReverseLookup(): array { return self::providerForTestListAutogeneratedLocationAliasesPath(); } @@ -2932,7 +2977,7 @@ public static function providerForTestReverseLookup() * Test for the reverseLookup() method. */ #[DataProvider('providerForTestReverseLookup')] - public function testReverseLookupPath($spiUrlAliases, $prioritizedLanguageCodes, $paths, $reverseLookupLanguageCode) + public function testReverseLookupPath($spiUrlAliases, $prioritizedLanguageCodes, $paths, $reverseLookupLanguageCode): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, @@ -2953,7 +2998,10 @@ public function testReverseLookupPath($spiUrlAliases, $prioritizedLanguageCodes, ); } - public static function providerForTestReverseLookupAlwaysAvailablePath() + /** + * @return array + */ + public static function providerForTestReverseLookupAlwaysAvailablePath(): array { return self::providerForTestListAutogeneratedLocationAliasesAlwaysAvailablePath(); } @@ -2966,7 +3014,7 @@ public function testReverseLookupAlwaysAvailablePath( $spiUrlAliases, $prioritizedLanguageCodes, $paths - ) { + ): void { $urlAliasService = $this->getPartlyMockedURLAliasServiceService( null, $prioritizedLanguageCodes @@ -2985,7 +3033,7 @@ public function testReverseLookupAlwaysAvailablePath( /** * Test for the reverseLookup() method. */ - public function testReverseLookupWithShowAllTranslations() + public function testReverseLookupWithShowAllTranslations(): void { $spiUrlAlias = $this->getSpiUrlAlias(); $urlAliasService = $this->getPartlyMockedURLAliasServiceService( @@ -3004,7 +3052,7 @@ public function testReverseLookupWithShowAllTranslations() /** * Test for the createUrlAlias() method. */ - public function testCreateUrlAlias() + public function testCreateUrlAlias(): void { $location = $this->getLocationStub(); $this->permissionResolver @@ -3072,7 +3120,7 @@ public function testCreateUrlAlias() /** * Test for the createUrlAlias() method. */ - public function testCreateUrlAliasWithRollback() + public function testCreateUrlAliasWithRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -3128,7 +3176,7 @@ public function testCreateUrlAliasWithRollback() /** * Test for the createUrlAlias() method. */ - public function testCreateUrlAliasThrowsInvalidArgumentException() + public function testCreateUrlAliasThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -3174,7 +3222,7 @@ public function testCreateUrlAliasThrowsInvalidArgumentException() /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAlias() + public function testCreateGlobalUrlAlias(): void { $resource = 'module:content/search'; @@ -3243,7 +3291,7 @@ public function testCreateGlobalUrlAlias() /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAliasWithRollback() + public function testCreateGlobalUrlAliasWithRollback(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Handler threw an exception'); @@ -3298,7 +3346,7 @@ public function testCreateGlobalUrlAliasWithRollback() /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionResource() + public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionResource(): void { $this->expectException(InvalidArgumentException::class); @@ -3323,7 +3371,7 @@ public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionResource() /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionPath() + public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionPath(): void { $this->expectException(InvalidArgumentException::class); @@ -3368,7 +3416,7 @@ public function testCreateGlobalUrlAliasThrowsInvalidArgumentExceptionPath() #[DependsExternal(self::class, 'testCreateUrlAlias')] #[DependsExternal(self::class, 'testCreateUrlAliasWithRollback')] #[DependsExternal(self::class, 'testCreateUrlAliasThrowsInvalidArgumentException')] - public function testCreateGlobalUrlAliasForLocation() + public function testCreateGlobalUrlAliasForLocation(): void { $repositoryMock = $this->getRepositoryMock(); $mockedService = $this->getPartlyMockedURLAliasServiceService(['createUrlAlias']); @@ -3496,7 +3544,7 @@ protected function getPartlyMockedURLAliasServiceService( /** * Test for the createUrlAlias() method. */ - public function testCreateUrlAliasThrowsUnauthorizedException() + public function testCreateUrlAliasThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -3522,7 +3570,7 @@ public function testCreateUrlAliasThrowsUnauthorizedException() /** * Test for the createGlobalUrlAlias() method. */ - public function testCreateGlobalUrlAliasThrowsUnauthorizedException() + public function testCreateGlobalUrlAliasThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -3547,7 +3595,7 @@ public function testCreateGlobalUrlAliasThrowsUnauthorizedException() /** * Test for the removeAliases() method. */ - public function testRemoveAliasesThrowsUnauthorizedException() + public function testRemoveAliasesThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); diff --git a/tests/lib/Repository/Service/Mock/UrlTest.php b/tests/lib/Repository/Service/Mock/UrlTest.php index 47e7f0430a..ddec18b28f 100644 --- a/tests/lib/Repository/Service/Mock/UrlTest.php +++ b/tests/lib/Repository/Service/Mock/UrlTest.php @@ -46,7 +46,7 @@ protected function setUp(): void $this->permissionResolver = $this->getPermissionResolverMock(); } - public function testFindUrlsUnauthorized() + public function testFindUrlsUnauthorized(): void { $this->configureUrlViewPermissionForHasAccess(false); @@ -54,7 +54,7 @@ public function testFindUrlsUnauthorized() $this->createUrlService()->findUrls(new URLQuery()); } - public function testFindUrlsNonNumericOffset() + public function testFindUrlsNonNumericOffset(): void { $this->expectException(InvalidArgumentValue::class); @@ -64,7 +64,7 @@ public function testFindUrlsNonNumericOffset() $this->createUrlService()->findUrls($query); } - public function testFindUrlsNonNumericLimit() + public function testFindUrlsNonNumericLimit(): void { $this->expectException(InvalidArgumentValue::class); @@ -74,7 +74,7 @@ public function testFindUrlsNonNumericLimit() $this->createUrlService()->findUrls($query); } - public function testFindUrls() + public function testFindUrls(): void { $url = $this->getApiUrl(); @@ -103,7 +103,7 @@ public function testFindUrls() self::assertEquals($expected, $this->createUrlService()->findUrls($query)); } - public function testUpdateUrlUnauthorized() + public function testUpdateUrlUnauthorized(): void { $this->expectException(UnauthorizedException::class); @@ -114,7 +114,7 @@ public function testUpdateUrlUnauthorized() $this->createUrlService()->updateUrl($url, new URLUpdateStruct()); } - public function testUpdateUrlNonUnique() + public function testUpdateUrlNonUnique(): void { $this->expectException(InvalidArgumentException::class); @@ -136,7 +136,7 @@ public function testUpdateUrlNonUnique() $urlService->updateUrl($url, $struct); } - public function testUpdateUrl() + public function testUpdateUrl(): void { $apiUrl = $this->getApiUrl(self::URL_ID, self::URL_IBEXA_CO); $apiStruct = new URLUpdateStruct([ @@ -195,7 +195,7 @@ public function testUpdateUrl() ]), $urlService->updateUrl($apiUrl, $apiStruct)); } - public function testUpdateUrlStatus() + public function testUpdateUrlStatus(): void { $apiUrl = $this->getApiUrl(self::URL_ID, self::URL_IBEXA_CO); $apiStruct = new URLUpdateStruct([ @@ -255,7 +255,7 @@ public function testUpdateUrlStatus() ]), $urlService->updateUrl($apiUrl, $apiStruct)); } - public function testLoadByIdUnauthorized() + public function testLoadByIdUnauthorized(): void { $this->expectException(UnauthorizedException::class); @@ -277,7 +277,7 @@ public function testLoadByIdUnauthorized() $this->createUrlService()->loadById(self::URL_ID); } - public function testLoadById() + public function testLoadById(): void { $url = new URL([ 'id' => self::URL_ID, @@ -296,7 +296,7 @@ public function testLoadById() self::assertEquals($url, $this->createUrlService()->loadById(self::URL_ID)); } - public function testLoadByUrlUnauthorized() + public function testLoadByUrlUnauthorized(): void { $this->expectException(UnauthorizedException::class); @@ -320,7 +320,7 @@ public function testLoadByUrlUnauthorized() $this->createUrlService()->loadByUrl(self::URL_IBEXA_CO); } - public function testLoadByUrl() + public function testLoadByUrl(): void { $url = self::URL_IBEXA_CO; @@ -342,7 +342,7 @@ public function testLoadByUrl() } #[DataProvider('dateProviderForFindUsages')] - public function testFindUsages($offset, $limit, ContentQuery $expectedQuery, array $usages) + public function testFindUsages($offset, $limit, ContentQuery $expectedQuery, array $usages): void { $url = $this->getApiUrl(self::URL_ID, self::URL_IBEXA_CO); @@ -387,7 +387,10 @@ public function testFindUsages($offset, $limit, ContentQuery $expectedQuery, arr } } - public static function dateProviderForFindUsages() + /** + * @return array + */ + public static function dateProviderForFindUsages(): array { return [ [ @@ -418,7 +421,7 @@ public static function dateProviderForFindUsages() ]; } - public function testCreateUpdateStruct() + public function testCreateUpdateStruct(): void { self::assertEquals(new URLUpdateStruct(), $this->createUrlService()->createUpdateStruct()); } diff --git a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php index 0f21bfe19b..6d0b43f647 100644 --- a/tests/lib/Repository/Service/Mock/UrlWildcardTest.php +++ b/tests/lib/Repository/Service/Mock/UrlWildcardTest.php @@ -46,7 +46,7 @@ protected function setUp(): void /** * Test for the create() method. */ - public function testCreateThrowsUnauthorizedException() + public function testCreateThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -71,7 +71,7 @@ public function testCreateThrowsUnauthorizedException() /** * Test for the create() method. */ - public function testCreateThrowsInvalidArgumentException() + public function testCreateThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -99,7 +99,10 @@ public function testCreateThrowsInvalidArgumentException() $mockedService->create('/lorem/ipsum', 'opossum', true); } - public static function providerForTestCreateThrowsContentValidationException() + /** + * @return array + */ + public static function providerForTestCreateThrowsContentValidationException(): array { return [ ['fruit', 'food/{1}', true], @@ -112,7 +115,7 @@ public static function providerForTestCreateThrowsContentValidationException() * Test for the create() method. */ #[DataProvider('providerForTestCreateThrowsContentValidationException')] - public function testCreateThrowsContentValidationException($sourceUrl, $destinationUrl, $forward) + public function testCreateThrowsContentValidationException($sourceUrl, $destinationUrl, $forward): void { $this->expectException(ContentValidationException::class); @@ -140,7 +143,10 @@ public function testCreateThrowsContentValidationException($sourceUrl, $destinat $mockedService->create($sourceUrl, $destinationUrl, $forward); } - public static function providerForTestCreate() + /** + * @return array + */ + public static function providerForTestCreate(): array { return [ ['fruit', 'food', true], @@ -157,7 +163,7 @@ public static function providerForTestCreate() * Test for the create() method. */ #[DataProvider('providerForTestCreate')] - public function testCreate($sourceUrl, $destinationUrl, $forward) + public function testCreate($sourceUrl, $destinationUrl, $forward): void { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -224,7 +230,7 @@ public function testCreate($sourceUrl, $destinationUrl, $forward) /** * Test for the create() method. */ - public function testCreateWithRollback() + public function testCreateWithRollback(): void { $this->expectException(\Exception::class); @@ -275,7 +281,7 @@ public function testCreateWithRollback() /** * Test for the remove() method. */ - public function testRemoveThrowsUnauthorizedException() + public function testRemoveThrowsUnauthorizedException(): void { $this->expectException(UnauthorizedException::class); @@ -306,7 +312,7 @@ public function testRemoveThrowsUnauthorizedException() /** * Test for the remove() method. */ - public function testRemove() + public function testRemove(): void { $wildcard = new URLWildcard(['id' => self::EXAMPLE_URL_WILDCARD_ID]); @@ -342,7 +348,7 @@ public function testRemove() /** * Test for the remove() method. */ - public function testRemoveWithRollback() + public function testRemoveWithRollback(): void { $this->expectException(\Exception::class); @@ -384,7 +390,7 @@ public function testRemoveWithRollback() /** * Test for the load() method. */ - public function testLoadThrowsException() + public function testLoadThrowsException(): void { $this->expectException(\Exception::class); @@ -408,7 +414,7 @@ public function testLoadThrowsException() /** * Test for the load() method. */ - public function testLoad() + public function testLoad(): void { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -449,7 +455,7 @@ public function testLoad() /** * Test for the loadAll() method. */ - public function testLoadAll() + public function testLoadAll(): void { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -470,7 +476,7 @@ public function testLoadAll() /** * Test for the loadAll() method. */ - public function testLoadAllWithLimitAndOffset() + public function testLoadAllWithLimitAndOffset(): void { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -516,7 +522,7 @@ public function testLoadAllWithLimitAndOffset() /** * @return array */ - public static function providerForTestTranslateThrowsNotFoundException() + public static function providerForTestTranslateThrowsNotFoundException(): array { return [ [ @@ -558,7 +564,7 @@ public static function providerForTestTranslateThrowsNotFoundException() * Test for the translate() method. */ #[DataProvider('providerForTestTranslateThrowsNotFoundException')] - public function testTranslateThrowsNotFoundException($createArray, $url) + public function testTranslateThrowsNotFoundException($createArray, $url): void { $this->expectException(NotFoundException::class); @@ -580,7 +586,7 @@ public function testTranslateThrowsNotFoundException($createArray, $url) /** * @return array */ - public static function providerForTestTranslate() + public static function providerForTestTranslate(): array { return [ [ @@ -662,7 +668,7 @@ public static function providerForTestTranslate() * Test for the translate() method. */ #[DataProvider('providerForTestTranslate')] - public function testTranslate($createArray, $url, $uri) + public function testTranslate($createArray, $url, $uri): void { $mockedService = $this->getPartlyMockedURLWildcardService(); @@ -695,7 +701,7 @@ public function testTranslate($createArray, $url, $uri) /** * Test for the translate() method. */ - public function testTranslateUsesLongestMatchingWildcard() + public function testTranslateUsesLongestMatchingWildcard(): void { $mockedService = $this->getPartlyMockedURLWildcardService(); diff --git a/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php b/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php index 5f5b01981e..8b759c8404 100644 --- a/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php +++ b/tests/lib/Repository/Service/Mock/UserPasswordValidatorTest.php @@ -18,7 +18,7 @@ class UserPasswordValidatorTest extends TestCase { #[DataProvider('dateProviderForValidate')] - public function testValidate(array $constraints, string $password, array $expectedErrors) + public function testValidate(array $constraints, string $password, array $expectedErrors): void { $validator = new UserPasswordValidator($constraints); diff --git a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php index 93185ac0f1..635130c451 100644 --- a/tests/lib/Repository/Service/Mock/UserPreferenceTest.php +++ b/tests/lib/Repository/Service/Mock/UserPreferenceTest.php @@ -44,7 +44,7 @@ protected function setUp(): void ->willReturn($permissionResolverMock); } - public function testSetUserPreference() + public function testSetUserPreference(): void { $apiUserPreferenceSetStruct = new APIUserPreferenceSetStruct([ 'name' => 'setting', @@ -67,7 +67,7 @@ public function testSetUserPreference() $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - public function testSetUserPreferenceThrowsInvalidArgumentException() + public function testSetUserPreferenceThrowsInvalidArgumentException(): void { $this->expectException(InvalidArgumentException::class); @@ -82,7 +82,7 @@ public function testSetUserPreferenceThrowsInvalidArgumentException() $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - public function testSetUserPreferenceWithRollback() + public function testSetUserPreferenceWithRollback(): void { $this->expectException(\Exception::class); @@ -101,7 +101,7 @@ public function testSetUserPreferenceWithRollback() $this->createAPIUserPreferenceService()->setUserPreference([$apiUserPreferenceSetStruct]); } - public function testGetUserPreference() + public function testGetUserPreference(): void { $userPreferenceName = 'setting'; $userPreferenceValue = 'value'; @@ -124,7 +124,7 @@ public function testGetUserPreference() self::assertEquals($expected, $APIUserPreference); } - public function testLoadUserPreferences() + public function testLoadUserPreferences(): void { $offset = 0; $limit = 25; @@ -157,7 +157,7 @@ public function testLoadUserPreferences() self::assertEquals($expectedItems, $userPreferences->items); } - public function testGetUserPreferenceCount() + public function testGetUserPreferenceCount(): void { $expectedTotalCount = 10; diff --git a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php index 9cf465f272..f8a56069ca 100644 --- a/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php +++ b/tests/lib/Repository/SiteAccessAware/AbstractServiceTestCase.php @@ -92,7 +92,7 @@ abstract public static function providerForPassTroughMethods(); * @param mixed $return */ #[DataProvider('providerForPassTroughMethods')] - final public function testForPassTrough($method, array $arguments, $return = true) + final public function testForPassTrough($method, array $arguments, $return = true): void { if ($return) { $this->innerApiServiceMock @@ -162,7 +162,7 @@ final public function testForLanguagesLookup( int $languageArgumentIndex, ?callable $callback = null, ?int $alwaysAvailableArgumentIndex = null - ) { + ): void { if ($method === self::NO_DATA_METHOD) { self::markTestSkipped($arguments[0] ?? 'No language-lookup methods for this service.'); } @@ -233,7 +233,7 @@ final public function testForLanguagesPassTrough( int $languageArgumentIndex, ?callable $callback = null, ?int $alwaysAvailableArgumentIndex = null - ) { + ): void { if ($method === self::NO_DATA_METHOD) { self::markTestSkipped($arguments[0] ?? 'No language-lookup methods for this service.'); } diff --git a/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php b/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php index 6fbecdd855..1b375e53ae 100644 --- a/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/ContentTypeServiceTest.php @@ -35,7 +35,7 @@ public function getSiteAccessAwareServiceClassName(): string return ContentTypeService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $contentTypeGroupCreateStruct = new ContentTypeGroupCreateStruct(); $contentTypeGroupUpdateStruct = new ContentTypeGroupUpdateStruct(); @@ -107,7 +107,7 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods(): array { $contentType = new ContentType(); $contentTypeGroup = new ContentTypeGroup(); diff --git a/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php b/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php index 70741533a6..3abb3e154b 100644 --- a/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php +++ b/tests/lib/Repository/SiteAccessAware/Language/LanguageResolverTest.php @@ -32,7 +32,7 @@ public function testGetPrioritizedLanguages( bool $defaultShowAllTranslations, ?array $forcedLanguages, ?string $contextLanguage - ) { + ): void { // note: "use always available" does not affect this test $defaultUseAlwaysAvailable = true; diff --git a/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php b/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php index c5e693fb43..658211a408 100644 --- a/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/LanguageServiceTest.php @@ -24,7 +24,7 @@ public function getSiteAccessAwareServiceClassName(): string return LanguageService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $languageCreateStruct = new LanguageCreateStruct(); $language = new Language(); @@ -55,7 +55,10 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + /** + * @return iterable + */ + public static function providerForLanguagesLookupMethods(): iterable { // string $method, array $arguments, bool $return, int $languageArgumentIndex yield [self::NO_DATA_METHOD, ['LanguageService has no language-lookup methods.'], null, 0]; diff --git a/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php b/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php index e55fec66d9..be446ef321 100644 --- a/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/ObjectStateServiceTest.php @@ -29,7 +29,7 @@ public function getSiteAccessAwareServiceClassName(): string return ObjectStateService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $objectStateGroupCreateStruct = new ObjectStateGroupCreateStruct(); $objectStateGroupUpdateStruct = new ObjectStateGroupUpdateStruct(); @@ -63,7 +63,7 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods(): array { $objectStateGroup = new ObjectStateGroup(); $objectState = new ObjectState(); diff --git a/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php b/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php index 8636f51e55..6fff0c994c 100644 --- a/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/SearchServiceTest.php @@ -26,7 +26,7 @@ public function getSiteAccessAwareServiceClassName(): string return SearchService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { // string $method, array $arguments, bool $return = true return [ @@ -35,7 +35,7 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods(): array { $query = new Query(); $locationQuery = new LocationQuery(); diff --git a/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php b/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php index fe456822e9..1ac5baba8e 100644 --- a/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/TrashServiceTest.php @@ -28,7 +28,7 @@ public function getSiteAccessAwareServiceClassName(): string return TrashService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $location = new Location(); $newLocation = new Location(); @@ -49,7 +49,10 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + /** + * @return iterable + */ + public static function providerForLanguagesLookupMethods(): iterable { // string $method, array $arguments, bool $return, int $languageArgumentIndex yield [self::NO_DATA_METHOD, ['TrashService has no language-lookup methods.'], null, 0]; diff --git a/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php b/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php index d46fd148d5..b89d9a229f 100644 --- a/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/UrlAliasServiceTest.php @@ -24,7 +24,7 @@ public function getSiteAccessAwareServiceClassName(): string return URLAliasService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $location = new Location(); $urlAlias = new URLAlias(); @@ -42,7 +42,7 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods(): array { $location = new Location(); $urlAlias = new URLAlias(); diff --git a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php index c78f012dd0..ce9f0cf4e9 100644 --- a/tests/lib/Repository/SiteAccessAware/UserServiceTest.php +++ b/tests/lib/Repository/SiteAccessAware/UserServiceTest.php @@ -34,7 +34,7 @@ public function getSiteAccessAwareServiceClassName(): string return UserService::class; } - public static function providerForPassTroughMethods() + public static function providerForPassTroughMethods(): array { $userGroupCreateStruct = new UserGroupCreateStruct(); $userGroupUpdateStruct = new UserGroupUpdateStruct(); @@ -84,7 +84,7 @@ public static function providerForPassTroughMethods() ]; } - public static function providerForLanguagesLookupMethods() + public static function providerForLanguagesLookupMethods(): array { $userGroup = new UserGroup(); $user = new User(); diff --git a/tests/lib/Repository/Values/Content/LanguageTest.php b/tests/lib/Repository/Values/Content/LanguageTest.php index 750792aefd..759203ed58 100644 --- a/tests/lib/Repository/Values/Content/LanguageTest.php +++ b/tests/lib/Repository/Values/Content/LanguageTest.php @@ -22,7 +22,7 @@ class LanguageTest extends TestCase /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); $this->expectExceptionMessage('Property \'notDefined\' not found on class'); @@ -36,7 +36,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); $this->expectExceptionMessage('Property \'id\' is readonly on class'); @@ -49,7 +49,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $language = new Language(); /** @phpstan-ignore property.notFound */ @@ -63,7 +63,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); $this->expectExceptionMessage('Property \'id\' is readonly on class'); diff --git a/tests/lib/Repository/Values/Content/SectionTest.php b/tests/lib/Repository/Values/Content/SectionTest.php index a351926ef3..3662264798 100644 --- a/tests/lib/Repository/Values/Content/SectionTest.php +++ b/tests/lib/Repository/Values/Content/SectionTest.php @@ -22,7 +22,7 @@ class SectionTest extends TestCase /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -35,7 +35,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -47,7 +47,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $section = new Section(); /** @phpstan-ignore property.notFound */ @@ -61,7 +61,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Repository/Values/Content/TrashItemTest.php b/tests/lib/Repository/Values/Content/TrashItemTest.php index 0b12c45dee..ea61687c9b 100644 --- a/tests/lib/Repository/Values/Content/TrashItemTest.php +++ b/tests/lib/Repository/Values/Content/TrashItemTest.php @@ -22,7 +22,7 @@ class TrashItemTest extends TestCase /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -35,7 +35,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -47,7 +47,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $trashItem = new TrashItem(); /** @phpstan-ignore property.notFound */ @@ -61,7 +61,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Repository/Values/MultiLanguageTestTrait.php b/tests/lib/Repository/Values/MultiLanguageTestTrait.php index c0c0dc7102..b008679e88 100644 --- a/tests/lib/Repository/Values/MultiLanguageTestTrait.php +++ b/tests/lib/Repository/Values/MultiLanguageTestTrait.php @@ -23,7 +23,7 @@ trait MultiLanguageTestTrait * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageName $object tested ValueObject */ #[Depends('testNewClassWithMultiLanguageProperties')] - public function testGetMultiLanguagePrioritizedName($object) + public function testGetMultiLanguagePrioritizedName($object): void { if (!$object instanceof MultiLanguageName) { self::markTestSkipped( @@ -41,7 +41,7 @@ public function testGetMultiLanguagePrioritizedName($object) * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageName $object tested ValueObject */ #[Depends('testNewClassWithMultiLanguageProperties')] - public function testGetMultiLanguageDefaultName($object) + public function testGetMultiLanguageDefaultName($object): void { if (!$object instanceof MultiLanguageName) { self::markTestSkipped( @@ -70,7 +70,7 @@ public function testGetMultiLanguageDefaultName($object) * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageDescription $object tested ValueObject */ #[Depends('testNewClassWithMultiLanguageProperties')] - public function testGetMultiLanguagePrioritizedDescription($object) + public function testGetMultiLanguagePrioritizedDescription($object): void { if (!$object instanceof MultiLanguageDescription) { self::markTestSkipped( @@ -88,7 +88,7 @@ public function testGetMultiLanguagePrioritizedDescription($object) * @param \Ibexa\Contracts\Core\Repository\Values\MultiLanguageDescription $object tested ValueObject */ #[Depends('testNewClassWithMultiLanguageProperties')] - public function testGetMultiLanguageDefaultDescription($object) + public function testGetMultiLanguageDefaultDescription($object): void { if (!$object instanceof MultiLanguageDescription) { self::markTestSkipped( diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php index c7ce0cb88b..edc72682a9 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateGroupTest.php @@ -24,7 +24,7 @@ class ObjectStateGroupTest extends TestCase /** * Test a new class and default values on properties. */ - public function testNewClass() + public function testNewClass(): void { $objectStateGroup = new ObjectStateGroup(); @@ -74,7 +74,7 @@ public function testNewClassWithMultiLanguageProperties() /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -87,7 +87,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -99,7 +99,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $objectStateGroup = new ObjectStateGroup(); /** @phpstan-ignore property.notFound */ @@ -113,7 +113,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php index a43fad7911..7e64cea6c3 100644 --- a/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php +++ b/tests/lib/Repository/Values/ObjectState/ObjectStateTest.php @@ -28,7 +28,7 @@ class ObjectStateTest extends TestCase /** * Test a new class and default values on properties. */ - public function testNewClass() + public function testNewClass(): void { $objectState = new ObjectState(); @@ -79,7 +79,7 @@ public function testNewClassWithMultiLanguageProperties() /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -92,7 +92,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -104,7 +104,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $objectState = new ObjectState(); /** @phpstan-ignore property.notFound */ @@ -118,7 +118,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Repository/Values/User/PolicyTest.php b/tests/lib/Repository/Values/User/PolicyTest.php index a1f5a61495..867927856b 100644 --- a/tests/lib/Repository/Values/User/PolicyTest.php +++ b/tests/lib/Repository/Values/User/PolicyTest.php @@ -22,7 +22,7 @@ class PolicyTest extends TestCase /** * Test a new class and default values on properties. */ - public function testNewClass() + public function testNewClass(): void { $this->assertPropertiesCorrect( [ @@ -39,7 +39,7 @@ public function testNewClass() /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -52,7 +52,7 @@ public function testMissingProperty() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -64,7 +64,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $policy = new Policy(); /** @phpstan-ignore property.notFound */ @@ -78,7 +78,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Repository/Values/User/UserGroupTest.php b/tests/lib/Repository/Values/User/UserGroupTest.php index 776d2d3411..8ea724a309 100644 --- a/tests/lib/Repository/Values/User/UserGroupTest.php +++ b/tests/lib/Repository/Values/User/UserGroupTest.php @@ -21,7 +21,7 @@ class UserGroupTest extends TestCase { use ValueObjectTestTrait; - public function testNewClass() + public function testNewClass(): void { $group = new UserGroup(); self::assertNull($group->parentId); @@ -37,7 +37,7 @@ public function testNewClass() /** * Test getName method. */ - public function testGetName() + public function testGetName(): void { $name = 'Translated name'; $contentMock = $this->createMock(Content::class); @@ -59,7 +59,7 @@ public function testGetName() /** * Test retrieving missing property. */ - public function testMissingProperty() + public function testMissingProperty(): void { $this->expectException(PropertyNotFoundException::class); @@ -69,7 +69,7 @@ public function testMissingProperty() self::fail('Succeeded getting non existing property'); } - public function testObjectProperties() + public function testObjectProperties(): void { $object = new UserGroup(); $properties = $object->attributes(); @@ -94,7 +94,7 @@ public function testObjectProperties() /** * Test setting read only property. */ - public function testReadOnlyProperty() + public function testReadOnlyProperty(): void { $this->expectException(PropertyReadOnlyException::class); @@ -106,7 +106,7 @@ public function testReadOnlyProperty() /** * Test if property exists. */ - public function testIsPropertySet() + public function testIsPropertySet(): void { $userGroup = new UserGroup(); /** @phpstan-ignore property.notFound */ @@ -120,7 +120,7 @@ public function testIsPropertySet() /** * Test unsetting a property. */ - public function testUnsetProperty() + public function testUnsetProperty(): void { $this->expectException(PropertyReadOnlyException::class); diff --git a/tests/lib/Search/FieldNameResolverTest.php b/tests/lib/Search/FieldNameResolverTest.php index 01437e7c9a..48fd3d135d 100644 --- a/tests/lib/Search/FieldNameResolverTest.php +++ b/tests/lib/Search/FieldNameResolverTest.php @@ -22,7 +22,7 @@ #[CoversClass(FieldNameResolver::class)] class FieldNameResolverTest extends TestCase { - public function testGetFieldNamesReturnsEmptyArray() + public function testGetFieldNamesReturnsEmptyArray(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $criterionMock = $this->getCriterionMock(); @@ -60,7 +60,7 @@ public function testGetFieldNamesReturnsEmptyArray() self::assertEmpty($fieldNames); } - public function testGetFieldNames() + public function testGetFieldNames(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $criterionMock = $this->getCriterionMock(); @@ -128,7 +128,7 @@ public function testGetFieldNames() ); } - public function testGetFieldNamesWithNamedField() + public function testGetFieldNamesWithNamedField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $criterionMock = $this->getCriterionMock(); @@ -198,7 +198,7 @@ public function testGetFieldNamesWithNamedField() ); } - public function testGetFieldNamesWithTypedField() + public function testGetFieldNamesWithTypedField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $criterionMock = $this->getCriterionMock(); @@ -259,7 +259,7 @@ public function testGetFieldNamesWithTypedField() ); } - public function testGetFieldNamesWithTypedAndNamedField() + public function testGetFieldNamesWithTypedAndNamedField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $criterionMock = $this->getCriterionMock(); @@ -320,7 +320,7 @@ public function testGetFieldNamesWithTypedAndNamedField() ); } - public function testGetSortFieldName() + public function testGetSortFieldName(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $sortClauseMock = $this->getSortClauseMock(); @@ -365,7 +365,7 @@ public function testGetSortFieldName() self::assertEquals('index_field_name', $fieldName); } - public function testGetSortFieldNameReturnsNull() + public function testGetSortFieldNameReturnsNull(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap', 'getIndexFieldName']); $sortClauseMock = $this->getSortClauseMock(); @@ -396,7 +396,7 @@ public function testGetSortFieldNameReturnsNull() self::assertNull($fieldName); } - public function testGetIndexFieldNameCustomField() + public function testGetIndexFieldNameCustomField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap']); @@ -424,7 +424,7 @@ public function testGetIndexFieldNameCustomField() self::assertEquals('custom_field_name', key($customFieldName)); } - public function testGetIndexFieldNameNamedField() + public function testGetIndexFieldNameNamedField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap']); $indexFieldType = $this->getIndexFieldTypeMock(); @@ -486,7 +486,7 @@ public function testGetIndexFieldNameNamedField() self::assertEquals('generated_typed_field_name', key($fieldName)); } - public function testGetIndexFieldNameDefaultMatchField() + public function testGetIndexFieldNameDefaultMatchField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap']); $indexFieldType = $this->getIndexFieldTypeMock(); @@ -553,7 +553,7 @@ public function testGetIndexFieldNameDefaultMatchField() self::assertEquals('generated_typed_field_name', key($fieldName)); } - public function testGetIndexFieldNameDefaultSortField() + public function testGetIndexFieldNameDefaultSortField(): void { $mockedFieldNameResolver = $this->getMockedFieldNameResolver(['getSearchableFieldMap']); $indexFieldType = $this->getIndexFieldTypeMock(); @@ -620,7 +620,7 @@ public function testGetIndexFieldNameDefaultSortField() self::assertEquals('generated_typed_field_name', key($fieldName)); } - public function testGetIndexFieldNameDefaultMatchFieldThrowsRuntimeException() + public function testGetIndexFieldNameDefaultMatchFieldThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); @@ -664,7 +664,7 @@ public function testGetIndexFieldNameDefaultMatchFieldThrowsRuntimeException() ); } - public function testGetIndexFieldNameDefaultSortFieldThrowsRuntimeException() + public function testGetIndexFieldNameDefaultSortFieldThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); @@ -708,7 +708,7 @@ public function testGetIndexFieldNameDefaultSortFieldThrowsRuntimeException() ); } - public function testGetIndexFieldNameNamedFieldThrowsRuntimeException() + public function testGetIndexFieldNameNamedFieldThrowsRuntimeException(): void { $this->expectException(\RuntimeException::class); diff --git a/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php b/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php index 3f8955d17f..65898f883e 100644 --- a/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerContentSortTest.php @@ -164,7 +164,7 @@ protected function getContentFieldHandlerMock() ->getMock(); } - public function testNoSorting() + public function testNoSorting(): void { $locator = $this->getContentSearchHandler(); @@ -191,7 +191,7 @@ static function ($hit) { ); } - public function testSortDateModified() + public function testSortDateModified(): void { $locator = $this->getContentSearchHandler(); @@ -219,7 +219,7 @@ static function ($hit) { ); } - public function testSortDatePublished() + public function testSortDatePublished(): void { $locator = $this->getContentSearchHandler(); @@ -247,7 +247,7 @@ static function ($hit) { ); } - public function testSortSectionIdentifier() + public function testSortSectionIdentifier(): void { $locator = $this->getContentSearchHandler(); @@ -292,7 +292,7 @@ static function ($hit) { } } - public function testSortSectionName() + public function testSortSectionName(): void { $locator = $this->getContentSearchHandler(); @@ -345,7 +345,7 @@ static function ($hit) { } } - public function testSortContentName() + public function testSortContentName(): void { $locator = $this->getContentSearchHandler(); @@ -373,7 +373,7 @@ static function ($hit) { ); } - public function testSortFieldText() + public function testSortFieldText(): void { $locator = $this->getContentSearchHandler(); @@ -442,7 +442,7 @@ static function ($hit) { } } - public function testSortFieldNumeric() + public function testSortFieldNumeric(): void { self::markTestSkipped(); $locator = $this->getContentSearchHandler(); diff --git a/tests/lib/Search/Legacy/Content/HandlerContentTest.php b/tests/lib/Search/Legacy/Content/HandlerContentTest.php index 78eea2d39e..d39a2f2491 100644 --- a/tests/lib/Search/Legacy/Content/HandlerContentTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerContentTest.php @@ -273,7 +273,7 @@ protected function getContentFieldHandlerMock() /** * Bug #80. */ - public function testFindWithoutOffsetLimit() + public function testFindWithoutOffsetLimit(): void { $locator = $this->getContentSearchHandler(); @@ -294,7 +294,7 @@ public function testFindWithoutOffsetLimit() /** * Bug #81, bug #82. */ - public function testFindWithZeroLimit() + public function testFindWithZeroLimit(): void { $locator = $this->getContentSearchHandler(); @@ -321,7 +321,7 @@ public function testFindWithZeroLimit() /** * Issue with offsetting to the nonexistent results produces \ezcQueryInvalidParameterException exception. */ - public function testFindWithOffsetToNonexistent() + public function testFindWithOffsetToNonexistent(): void { $locator = $this->getContentSearchHandler(); @@ -345,7 +345,7 @@ public function testFindWithOffsetToNonexistent() ); } - public function testFindSingle() + public function testFindSingle(): void { $locator = $this->getContentSearchHandler(); @@ -354,7 +354,7 @@ public function testFindSingle() self::assertEquals(10, $contentInfo->id); } - public function testFindSingleWithNonSearchableField() + public function testFindSingleWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); @@ -368,7 +368,7 @@ public function testFindSingleWithNonSearchableField() ); } - public function testFindContentWithNonSearchableField() + public function testFindContentWithNonSearchableField(): void { $this->expectException(InvalidArgumentException::class); @@ -387,7 +387,7 @@ public function testFindContentWithNonSearchableField() ); } - public function testFindSingleTooMany() + public function testFindSingleTooMany(): void { $this->expectException(InvalidArgumentException::class); @@ -395,7 +395,7 @@ public function testFindSingleTooMany() $locator->findSingle(new Criterion\ContentId([4, 10, 12, 23])); } - public function testFindSingleZero() + public function testFindSingleZero(): void { $this->expectException(NotFoundException::class); @@ -403,7 +403,7 @@ public function testFindSingleZero() $locator->findSingle(new Criterion\ContentId(0)); } - public function testContentIdFilter() + public function testContentIdFilter(): void { $this->assertSearchResults( [4, 10], @@ -420,7 +420,7 @@ public function testContentIdFilter() ); } - public function testContentIdFilterCount() + public function testContentIdFilterCount(): void { $locator = $this->getContentSearchHandler(); @@ -438,7 +438,7 @@ public function testContentIdFilterCount() self::assertSame(2, $result->totalCount); } - public function testContentAndCombinatorFilter() + public function testContentAndCombinatorFilter(): void { $this->assertSearchResults( [4], @@ -462,7 +462,7 @@ public function testContentAndCombinatorFilter() ); } - public function testContentOrCombinatorFilter() + public function testContentOrCombinatorFilter(): void { $locator = $this->getContentSearchHandler(); @@ -498,7 +498,7 @@ public function testContentOrCombinatorFilter() } } - public function testContentNotCombinatorFilter() + public function testContentNotCombinatorFilter(): void { $this->assertSearchResults( [4], @@ -524,7 +524,7 @@ public function testContentNotCombinatorFilter() ); } - public function testContentSubtreeFilterIn() + public function testContentSubtreeFilterIn(): void { $this->assertSearchResults( [67, 68, 69, 70, 71, 72, 73, 74], @@ -541,7 +541,7 @@ public function testContentSubtreeFilterIn() ); } - public function testContentSubtreeFilterEq() + public function testContentSubtreeFilterEq(): void { $this->assertSearchResults( [67, 68, 69, 70, 71, 72, 73, 74], @@ -556,7 +556,7 @@ public function testContentSubtreeFilterEq() ); } - public function testContentTypeIdFilter() + public function testContentTypeIdFilter(): void { $this->assertSearchResults( [10, 14, 226], @@ -571,7 +571,7 @@ public function testContentTypeIdFilter() ); } - public function testContentTypeIdentifierFilter() + public function testContentTypeIdentifierFilter(): void { $this->assertSearchResults( [41, 45, 49, 50, 51], @@ -587,7 +587,7 @@ public function testContentTypeIdentifierFilter() ); } - public function testContentTypeGroupFilter() + public function testContentTypeGroupFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 42, 225, 226], @@ -602,7 +602,7 @@ public function testContentTypeGroupFilter() ); } - public function testDateMetadataFilterModifiedGreater() + public function testDateMetadataFilterModifiedGreater(): void { $this->assertSearchResults( [11, 225, 226], @@ -621,7 +621,7 @@ public function testDateMetadataFilterModifiedGreater() ); } - public function testDateMetadataFilterModifiedGreaterOrEqual() + public function testDateMetadataFilterModifiedGreaterOrEqual(): void { $this->assertSearchResults( [11, 14, 225, 226], @@ -640,7 +640,7 @@ public function testDateMetadataFilterModifiedGreaterOrEqual() ); } - public function testDateMetadataFilterModifiedIn() + public function testDateMetadataFilterModifiedIn(): void { $this->assertSearchResults( [11, 14, 225, 226], @@ -659,7 +659,7 @@ public function testDateMetadataFilterModifiedIn() ); } - public function testDateMetadataFilterModifiedBetween() + public function testDateMetadataFilterModifiedBetween(): void { $this->assertSearchResults( [11, 14, 225, 226], @@ -678,7 +678,7 @@ public function testDateMetadataFilterModifiedBetween() ); } - public function testDateMetadataFilterCreatedBetween() + public function testDateMetadataFilterCreatedBetween(): void { $this->assertSearchResults( [66, 131, 225], @@ -697,7 +697,7 @@ public function testDateMetadataFilterCreatedBetween() ); } - public function testLocationIdFilter() + public function testLocationIdFilter(): void { $this->assertSearchResults( [4, 65], @@ -712,7 +712,7 @@ public function testLocationIdFilter() ); } - public function testParentLocationIdFilter() + public function testParentLocationIdFilter(): void { $this->assertSearchResults( [4, 41, 45, 56, 65], @@ -727,7 +727,7 @@ public function testParentLocationIdFilter() ); } - public function testRemoteIdFilter() + public function testRemoteIdFilter(): void { $this->assertSearchResults( [4, 10], @@ -744,7 +744,7 @@ public function testRemoteIdFilter() ); } - public function testLocationRemoteIdFilter() + public function testLocationRemoteIdFilter(): void { $this->assertSearchResults( [4, 65], @@ -761,7 +761,7 @@ public function testLocationRemoteIdFilter() ); } - public function testSectionFilter() + public function testSectionFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 42, 226], @@ -776,7 +776,7 @@ public function testSectionFilter() ); } - public function testStatusFilter() + public function testStatusFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -802,7 +802,7 @@ public function testStatusFilter() ); } - public function testFieldFilter() + public function testFieldFilter(): void { $this->assertSearchResults( [11], @@ -821,7 +821,7 @@ public function testFieldFilter() ); } - public function testFieldFilterIn() + public function testFieldFilterIn(): void { $this->assertSearchResults( [11, 42], @@ -840,7 +840,7 @@ public function testFieldFilterIn() ); } - public function testFieldFilterContainsPartial() + public function testFieldFilterContainsPartial(): void { $this->assertSearchResults( [42], @@ -859,7 +859,7 @@ public function testFieldFilterContainsPartial() ); } - public function testFieldFilterContainsSimple() + public function testFieldFilterContainsSimple(): void { $this->assertSearchResults( [77], @@ -878,7 +878,7 @@ public function testFieldFilterContainsSimple() ); } - public function testFieldFilterContainsSimpleNoMatch() + public function testFieldFilterContainsSimpleNoMatch(): void { $this->assertSearchResults( [], @@ -897,7 +897,7 @@ public function testFieldFilterContainsSimpleNoMatch() ); } - public function testFieldFilterBetween() + public function testFieldFilterBetween(): void { $this->assertSearchResults( [186, 187], @@ -916,7 +916,7 @@ public function testFieldFilterBetween() ); } - public function testFieldFilterOr() + public function testFieldFilterOr(): void { $this->assertSearchResults( [11, 186, 187], @@ -944,7 +944,7 @@ public function testFieldFilterOr() ); } - public function testFullTextFilter() + public function testFullTextFilter(): void { $this->assertSearchResults( [191], @@ -959,7 +959,7 @@ public function testFullTextFilter() ); } - public function testFullTextWildcardFilter() + public function testFullTextWildcardFilter(): void { $this->assertSearchResults( [191], @@ -974,7 +974,7 @@ public function testFullTextWildcardFilter() ); } - public function testFullTextDisabledWildcardFilter() + public function testFullTextDisabledWildcardFilter(): void { $this->assertSearchResults( [], @@ -991,7 +991,7 @@ public function testFullTextDisabledWildcardFilter() ); } - public function testFullTextFilterStopwordRemoval() + public function testFullTextFilterStopwordRemoval(): void { $handler = $this->getContentSearchHandler( [ @@ -1012,7 +1012,7 @@ public function testFullTextFilterStopwordRemoval() ); } - public function testFullTextFilterNoStopwordRemoval() + public function testFullTextFilterNoStopwordRemoval(): void { $handler = $this->getContentSearchHandler( [ @@ -1042,7 +1042,7 @@ static function ($hit) { ); } - public function testFullTextFilterInvalidStopwordThreshold() + public function testFullTextFilterInvalidStopwordThreshold(): void { $this->expectException(InvalidArgumentException::class); @@ -1053,7 +1053,7 @@ public function testFullTextFilterInvalidStopwordThreshold() ); } - public function testObjectStateIdFilter() + public function testObjectStateIdFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1069,7 +1069,7 @@ public function testObjectStateIdFilter() ); } - public function testObjectStateIdFilterIn() + public function testObjectStateIdFilterIn(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1085,7 +1085,7 @@ public function testObjectStateIdFilterIn() ); } - public function testLanguageCodeFilter() + public function testLanguageCodeFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1101,7 +1101,7 @@ public function testLanguageCodeFilter() ); } - public function testLanguageCodeFilterIn() + public function testLanguageCodeFilterIn(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1117,7 +1117,7 @@ public function testLanguageCodeFilterIn() ); } - public function testLanguageCodeFilterWithAlwaysAvailable() + public function testLanguageCodeFilterWithAlwaysAvailable(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49, 50, 51, 56, 57, 65, 68, 70, 74, 76, 80], @@ -1133,7 +1133,7 @@ public function testLanguageCodeFilterWithAlwaysAvailable() ); } - public function testVisibilityFilter() + public function testVisibilityFilter(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1151,7 +1151,7 @@ public function testVisibilityFilter() ); } - public function testUserMetadataFilterOwnerWrongUserId() + public function testUserMetadataFilterOwnerWrongUserId(): void { $this->assertSearchResults( [], @@ -1169,7 +1169,7 @@ public function testUserMetadataFilterOwnerWrongUserId() ); } - public function testUserMetadataFilterOwnerAdministrator() + public function testUserMetadataFilterOwnerAdministrator(): void { $this->assertSearchResults( [4, 10, 11, 12, 13, 14, 41, 42, 45, 49], @@ -1189,7 +1189,7 @@ public function testUserMetadataFilterOwnerAdministrator() ); } - public function testUserMetadataFilterOwnerEqAMember() + public function testUserMetadataFilterOwnerEqAMember(): void { $this->assertSearchResults( [223], @@ -1207,7 +1207,7 @@ public function testUserMetadataFilterOwnerEqAMember() ); } - public function testUserMetadataFilterOwnerInAMember() + public function testUserMetadataFilterOwnerInAMember(): void { $this->assertSearchResults( [223], @@ -1225,7 +1225,7 @@ public function testUserMetadataFilterOwnerInAMember() ); } - public function testUserMetadataFilterCreatorEqAMember() + public function testUserMetadataFilterCreatorEqAMember(): void { $this->assertSearchResults( [223], @@ -1243,7 +1243,7 @@ public function testUserMetadataFilterCreatorEqAMember() ); } - public function testUserMetadataFilterCreatorInAMember() + public function testUserMetadataFilterCreatorInAMember(): void { $this->assertSearchResults( [223], @@ -1261,7 +1261,7 @@ public function testUserMetadataFilterCreatorInAMember() ); } - public function testUserMetadataFilterEqGroupMember() + public function testUserMetadataFilterEqGroupMember(): void { $this->assertSearchResults( [223], @@ -1279,7 +1279,7 @@ public function testUserMetadataFilterEqGroupMember() ); } - public function testUserMetadataFilterInGroupMember() + public function testUserMetadataFilterInGroupMember(): void { $this->assertSearchResults( [223], @@ -1297,7 +1297,7 @@ public function testUserMetadataFilterInGroupMember() ); } - public function testUserMetadataFilterEqGroupMemberNoMatch() + public function testUserMetadataFilterEqGroupMemberNoMatch(): void { $this->assertSearchResults( [], @@ -1315,7 +1315,7 @@ public function testUserMetadataFilterEqGroupMemberNoMatch() ); } - public function testUserMetadataFilterInGroupMemberNoMatch() + public function testUserMetadataFilterInGroupMemberNoMatch(): void { $this->assertSearchResults( [], @@ -1333,7 +1333,7 @@ public function testUserMetadataFilterInGroupMemberNoMatch() ); } - public function testFieldRelationFilterContainsSingle() + public function testFieldRelationFilterContainsSingle(): void { $this->assertSearchResults( [67], @@ -1351,7 +1351,7 @@ public function testFieldRelationFilterContainsSingle() ); } - public function testFieldRelationFilterContainsSingleNoMatch() + public function testFieldRelationFilterContainsSingleNoMatch(): void { $this->assertSearchResults( [], @@ -1369,7 +1369,7 @@ public function testFieldRelationFilterContainsSingleNoMatch() ); } - public function testFieldRelationFilterContainsArray() + public function testFieldRelationFilterContainsArray(): void { $this->assertSearchResults( [67], @@ -1387,7 +1387,7 @@ public function testFieldRelationFilterContainsArray() ); } - public function testFieldRelationFilterContainsArrayNotMatch() + public function testFieldRelationFilterContainsArrayNotMatch(): void { $this->assertSearchResults( [], @@ -1405,7 +1405,7 @@ public function testFieldRelationFilterContainsArrayNotMatch() ); } - public function testFieldRelationFilterInArray() + public function testFieldRelationFilterInArray(): void { $this->assertSearchResults( [67, 75], @@ -1423,7 +1423,7 @@ public function testFieldRelationFilterInArray() ); } - public function testFieldRelationFilterInArrayNotMatch() + public function testFieldRelationFilterInArrayNotMatch(): void { $this->assertSearchResults( [], diff --git a/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php b/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php index 0c33f4cb1f..bae10da0b7 100644 --- a/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerLocationSortTest.php @@ -142,7 +142,7 @@ static function ($rows): array { return $mapperMock; } - public function testNoSorting() + public function testNoSorting(): void { $handler = $this->getContentSearchHandler(); @@ -164,7 +164,7 @@ public function testNoSorting() ); } - public function testSortLocationPath() + public function testSortLocationPath(): void { $handler = $this->getContentSearchHandler(); @@ -185,7 +185,7 @@ public function testSortLocationPath() ); } - public function testSortLocationDepth() + public function testSortLocationDepth(): void { $handler = $this->getContentSearchHandler(); @@ -206,7 +206,7 @@ public function testSortLocationDepth() ); } - public function testSortLocationDepthAndPath() + public function testSortLocationDepthAndPath(): void { $handler = $this->getContentSearchHandler(); @@ -230,7 +230,7 @@ public function testSortLocationDepthAndPath() ); } - public function testSortLocationPriority() + public function testSortLocationPriority(): void { $handler = $this->getContentSearchHandler(); @@ -253,7 +253,7 @@ public function testSortLocationPriority() ); } - public function testSortDateModified() + public function testSortDateModified(): void { $handler = $this->getContentSearchHandler(); @@ -276,7 +276,7 @@ public function testSortDateModified() ); } - public function testSortDatePublished() + public function testSortDatePublished(): void { $handler = $this->getContentSearchHandler(); @@ -299,7 +299,7 @@ public function testSortDatePublished() ); } - public function testSortSectionIdentifier() + public function testSortSectionIdentifier(): void { $handler = $this->getContentSearchHandler(); @@ -341,7 +341,7 @@ public function testSortSectionIdentifier() } } - public function testSortContentName() + public function testSortContentName(): void { $handler = $this->getContentSearchHandler(); @@ -364,7 +364,7 @@ public function testSortContentName() ); } - public function testSortContentId() + public function testSortContentId(): void { $handler = $this->getContentSearchHandler(); @@ -387,7 +387,7 @@ public function testSortContentId() ); } - public function testSortLocationId() + public function testSortLocationId(): void { $handler = $this->getContentSearchHandler(); @@ -410,7 +410,7 @@ public function testSortLocationId() ); } - public function testSortLocationVisibilityAscending() + public function testSortLocationVisibilityAscending(): void { $handler = $this->getContentSearchHandler(); @@ -433,7 +433,7 @@ public function testSortLocationVisibilityAscending() ); } - public function testSortLocationVisibilityDescending() + public function testSortLocationVisibilityDescending(): void { $handler = $this->getContentSearchHandler(); @@ -456,7 +456,7 @@ public function testSortLocationVisibilityDescending() ); } - public function testSortSectionName() + public function testSortSectionName(): void { $handler = $this->getContentSearchHandler(); @@ -509,7 +509,7 @@ static function ($hit) { } } - public function testSortFieldText() + public function testSortFieldText(): void { $handler = $this->getContentSearchHandler(); @@ -578,7 +578,7 @@ static function ($hit) { } } - public function testSortFieldNumeric() + public function testSortFieldNumeric(): void { self::markTestSkipped(); $handler = $this->getContentSearchHandler(); @@ -612,7 +612,7 @@ static function ($hit) { ); } - public function testSortIsMainLocationAscending() + public function testSortIsMainLocationAscending(): void { $handler = $this->getContentSearchHandler(); @@ -635,7 +635,7 @@ public function testSortIsMainLocationAscending() ); } - public function testSortIsMainLocationDescending() + public function testSortIsMainLocationDescending(): void { $handler = $this->getContentSearchHandler(); diff --git a/tests/lib/Search/Legacy/Content/HandlerLocationTest.php b/tests/lib/Search/Legacy/Content/HandlerLocationTest.php index 6cf19d2b48..38e3dd9188 100644 --- a/tests/lib/Search/Legacy/Content/HandlerLocationTest.php +++ b/tests/lib/Search/Legacy/Content/HandlerLocationTest.php @@ -210,7 +210,7 @@ static function ($rows): array { return $mapperMock; } - public function testFindWithoutOffsetLimit() + public function testFindWithoutOffsetLimit(): void { $handler = $this->getContentSearchHandler(); @@ -226,7 +226,7 @@ public function testFindWithoutOffsetLimit() self::assertCount(1, $searchResult->searchHits); } - public function testFindWithZeroLimit() + public function testFindWithZeroLimit(): void { $handler = $this->getContentSearchHandler(); @@ -247,7 +247,7 @@ public function testFindWithZeroLimit() /** * Issue with offsetting to the nonexistent results produces \ezcQueryInvalidParameterException exception. */ - public function testFindWithOffsetToNonexistent() + public function testFindWithOffsetToNonexistent(): void { $handler = $this->getContentSearchHandler(); @@ -265,7 +265,7 @@ public function testFindWithOffsetToNonexistent() self::assertEquals([], $searchResult->searchHits); } - public function testLocationIdFilter() + public function testLocationIdFilter(): void { $this->assertSearchResults( [12, 13], @@ -282,7 +282,7 @@ public function testLocationIdFilter() ); } - public function testParentLocationIdFilter() + public function testParentLocationIdFilter(): void { $this->assertSearchResults( [12, 13, 14, 44, 227], @@ -297,7 +297,7 @@ public function testParentLocationIdFilter() ); } - public function testLocationIdAndCombinatorFilter() + public function testLocationIdAndCombinatorFilter(): void { $this->assertSearchResults( [13], @@ -321,7 +321,7 @@ public function testLocationIdAndCombinatorFilter() ); } - public function testLocationIdParentLocationIdAndCombinatorFilter() + public function testLocationIdParentLocationIdAndCombinatorFilter(): void { $this->assertSearchResults( [44, 160], @@ -345,7 +345,7 @@ public function testLocationIdParentLocationIdAndCombinatorFilter() ); } - public function testContentDepthFilterEq() + public function testContentDepthFilterEq(): void { $this->assertSearchResults( [2, 5, 43, 48, 58], @@ -360,7 +360,7 @@ public function testContentDepthFilterEq() ); } - public function testContentDepthFilterIn() + public function testContentDepthFilterIn(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 43, 44, 48, 51, 52, 53, 54, 56, 58, 59, 69, 77, 86, 96, 107, 153, 156, 167, 190, 227], @@ -375,7 +375,7 @@ public function testContentDepthFilterIn() ); } - public function testContentDepthFilterBetween() + public function testContentDepthFilterBetween(): void { $this->assertSearchResults( [2, 5, 43, 48, 58], @@ -389,7 +389,7 @@ public function testContentDepthFilterBetween() ); } - public function testContentDepthFilterGreaterThan() + public function testContentDepthFilterGreaterThan(): void { $this->assertSearchResults( [99, 102, 135, 136, 137, 139, 140, 142, 143, 144, 145, 148, 151, 174, 175, 177, 194, 196, 197, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 214, 215], @@ -404,7 +404,7 @@ public function testContentDepthFilterGreaterThan() ); } - public function testContentDepthFilterGreaterThanOrEqual() + public function testContentDepthFilterGreaterThanOrEqual(): void { $this->assertSearchResults( [99, 102, 135, 136, 137, 139, 140, 142, 143, 144, 145, 148, 151, 174, 175, 177, 194, 196, 197, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 214, 215], @@ -419,7 +419,7 @@ public function testContentDepthFilterGreaterThanOrEqual() ); } - public function testContentDepthFilterLessThan() + public function testContentDepthFilterLessThan(): void { $this->assertSearchResults( [2, 5, 43, 48, 58], @@ -434,7 +434,7 @@ public function testContentDepthFilterLessThan() ); } - public function testContentDepthFilterLessThanOrEqual() + public function testContentDepthFilterLessThanOrEqual(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 43, 44, 48, 51, 52, 53, 54, 56, 58, 59, 69, 77, 86, 96, 107, 153, 156, 167, 190, 227], @@ -449,7 +449,7 @@ public function testContentDepthFilterLessThanOrEqual() ); } - public function testLocationPriorityFilter() + public function testLocationPriorityFilter(): void { $this->assertSearchResults( [156, 167, 190], @@ -467,7 +467,7 @@ public function testLocationPriorityFilter() ); } - public function testLocationRemoteIdFilter() + public function testLocationRemoteIdFilter(): void { $this->assertSearchResults( [2, 5], @@ -484,7 +484,7 @@ public function testLocationRemoteIdFilter() ); } - public function testVisibilityFilterVisible() + public function testVisibilityFilterVisible(): void { $this->assertSearchResults( [2, 5, 12, 13, 14], @@ -502,7 +502,7 @@ public function testVisibilityFilterVisible() ); } - public function testVisibilityFilterHidden() + public function testVisibilityFilterHidden(): void { $this->assertSearchResults( [228], @@ -518,7 +518,7 @@ public function testVisibilityFilterHidden() ); } - public function testLocationNotCombinatorFilter() + public function testLocationNotCombinatorFilter(): void { $this->assertSearchResults( [2, 5], @@ -544,7 +544,7 @@ public function testLocationNotCombinatorFilter() ); } - public function testLocationOrCombinatorFilter() + public function testLocationOrCombinatorFilter(): void { $this->assertSearchResults( [2, 5, 12, 13, 14], @@ -568,7 +568,7 @@ public function testLocationOrCombinatorFilter() ); } - public function testContentIdFilterEquals() + public function testContentIdFilterEquals(): void { $this->assertSearchResults( [225], @@ -582,7 +582,7 @@ public function testContentIdFilterEquals() ); } - public function testContentIdFilterIn() + public function testContentIdFilterIn(): void { $this->assertSearchResults( [225, 226, 227], @@ -598,7 +598,7 @@ public function testContentIdFilterIn() ); } - public function testContentTypeGroupFilter() + public function testContentTypeGroupFilter(): void { $this->assertSearchResults( [5, 12, 13, 14, 15, 44, 45, 227, 228], @@ -613,7 +613,7 @@ public function testContentTypeGroupFilter() ); } - public function testContentTypeIdFilter() + public function testContentTypeIdFilter(): void { $this->assertSearchResults( [15, 45, 228], @@ -628,7 +628,7 @@ public function testContentTypeIdFilter() ); } - public function testContentTypeIdentifierFilter() + public function testContentTypeIdentifierFilter(): void { $this->assertSearchResults( [43, 48, 51, 52, 53], @@ -644,7 +644,7 @@ public function testContentTypeIdentifierFilter() ); } - public function testObjectStateIdFilter() + public function testObjectStateIdFilter(): void { $this->assertSearchResults( [5, 12, 13, 14, 15, 43, 44, 45, 48, 51], @@ -660,7 +660,7 @@ public function testObjectStateIdFilter() ); } - public function testObjectStateIdFilterIn() + public function testObjectStateIdFilterIn(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 15, 43, 44, 45, 48], @@ -676,7 +676,7 @@ public function testObjectStateIdFilterIn() ); } - public function testRemoteIdFilter() + public function testRemoteIdFilter(): void { $this->assertSearchResults( [5, 45], @@ -693,7 +693,7 @@ public function testRemoteIdFilter() ); } - public function testSectionFilter() + public function testSectionFilter(): void { $this->assertSearchResults( [5, 12, 13, 14, 15, 44, 45, 228], @@ -708,7 +708,7 @@ public function testSectionFilter() ); } - public function testDateMetadataFilterModifiedGreater() + public function testDateMetadataFilterModifiedGreater(): void { $this->assertSearchResults( [12, 227, 228], @@ -727,7 +727,7 @@ public function testDateMetadataFilterModifiedGreater() ); } - public function testDateMetadataFilterModifiedGreaterOrEqual() + public function testDateMetadataFilterModifiedGreaterOrEqual(): void { $this->assertSearchResults( [12, 15, 227, 228], @@ -746,7 +746,7 @@ public function testDateMetadataFilterModifiedGreaterOrEqual() ); } - public function testDateMetadataFilterModifiedIn() + public function testDateMetadataFilterModifiedIn(): void { $this->assertSearchResults( [12, 15, 227, 228], @@ -765,7 +765,7 @@ public function testDateMetadataFilterModifiedIn() ); } - public function testDateMetadataFilterModifiedBetween() + public function testDateMetadataFilterModifiedBetween(): void { $this->assertSearchResults( [12, 15, 227, 228], @@ -784,7 +784,7 @@ public function testDateMetadataFilterModifiedBetween() ); } - public function testDateMetadataFilterCreatedBetween() + public function testDateMetadataFilterCreatedBetween(): void { $this->assertSearchResults( [68, 133, 227], @@ -803,7 +803,7 @@ public function testDateMetadataFilterCreatedBetween() ); } - public function testUserMetadataFilterOwnerWrongUserId() + public function testUserMetadataFilterOwnerWrongUserId(): void { $this->assertSearchResults( [], @@ -821,7 +821,7 @@ public function testUserMetadataFilterOwnerWrongUserId() ); } - public function testUserMetadataFilterOwnerAdministrator() + public function testUserMetadataFilterOwnerAdministrator(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 15, 43, 44, 45, 48], @@ -841,7 +841,7 @@ public function testUserMetadataFilterOwnerAdministrator() ); } - public function testUserMetadataFilterOwnerEqAMember() + public function testUserMetadataFilterOwnerEqAMember(): void { $this->assertSearchResults( [225], @@ -859,7 +859,7 @@ public function testUserMetadataFilterOwnerEqAMember() ); } - public function testUserMetadataFilterOwnerInAMember() + public function testUserMetadataFilterOwnerInAMember(): void { $this->assertSearchResults( [225], @@ -877,7 +877,7 @@ public function testUserMetadataFilterOwnerInAMember() ); } - public function testUserMetadataFilterCreatorEqAMember() + public function testUserMetadataFilterCreatorEqAMember(): void { $this->assertSearchResults( [225], @@ -895,7 +895,7 @@ public function testUserMetadataFilterCreatorEqAMember() ); } - public function testUserMetadataFilterCreatorInAMember() + public function testUserMetadataFilterCreatorInAMember(): void { $this->assertSearchResults( [225], @@ -913,7 +913,7 @@ public function testUserMetadataFilterCreatorInAMember() ); } - public function testUserMetadataFilterEqGroupMember() + public function testUserMetadataFilterEqGroupMember(): void { $this->assertSearchResults( [225], @@ -931,7 +931,7 @@ public function testUserMetadataFilterEqGroupMember() ); } - public function testUserMetadataFilterInGroupMember() + public function testUserMetadataFilterInGroupMember(): void { $this->assertSearchResults( [225], @@ -949,7 +949,7 @@ public function testUserMetadataFilterInGroupMember() ); } - public function testUserMetadataFilterEqGroupMemberNoMatch() + public function testUserMetadataFilterEqGroupMemberNoMatch(): void { $this->assertSearchResults( [], @@ -967,7 +967,7 @@ public function testUserMetadataFilterEqGroupMemberNoMatch() ); } - public function testUserMetadataFilterInGroupMemberNoMatch() + public function testUserMetadataFilterInGroupMemberNoMatch(): void { $this->assertSearchResults( [], @@ -985,7 +985,7 @@ public function testUserMetadataFilterInGroupMemberNoMatch() ); } - public function testLanguageCodeFilter() + public function testLanguageCodeFilter(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 15, 43, 44, 45, 48], @@ -1001,7 +1001,7 @@ public function testLanguageCodeFilter() ); } - public function testLanguageCodeFilterIn() + public function testLanguageCodeFilterIn(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 15, 43, 44, 45, 48], @@ -1017,7 +1017,7 @@ public function testLanguageCodeFilterIn() ); } - public function testLanguageCodeFilterWithAlwaysAvailable() + public function testLanguageCodeFilterWithAlwaysAvailable(): void { $this->assertSearchResults( [2, 5, 12, 13, 14, 15, 43, 44, 45, 48, 51, 52, 53, 58, 59, 70, 72, 76, 78, 82], @@ -1033,7 +1033,7 @@ public function testLanguageCodeFilterWithAlwaysAvailable() ); } - public function testMatchAllFilter() + public function testMatchAllFilter(): void { $result = $this->getContentSearchHandler()->findLocations( new LocationQuery( @@ -1053,7 +1053,7 @@ public function testMatchAllFilter() ); } - public function testFullTextFilter() + public function testFullTextFilter(): void { $this->assertSearchResults( [193], @@ -1068,7 +1068,7 @@ public function testFullTextFilter() ); } - public function testFullTextWildcardFilter() + public function testFullTextWildcardFilter(): void { $this->assertSearchResults( [193], @@ -1083,7 +1083,7 @@ public function testFullTextWildcardFilter() ); } - public function testFullTextDisabledWildcardFilter() + public function testFullTextDisabledWildcardFilter(): void { $this->assertSearchResults( [], @@ -1098,7 +1098,7 @@ public function testFullTextDisabledWildcardFilter() ); } - public function testFullTextFilterStopwordRemoval() + public function testFullTextFilterStopwordRemoval(): void { $handler = $this->getContentSearchHandler( [ @@ -1118,7 +1118,7 @@ public function testFullTextFilterStopwordRemoval() ); } - public function testFullTextFilterNoStopwordRemoval() + public function testFullTextFilterNoStopwordRemoval(): void { $handler = $this->getContentSearchHandler( [ @@ -1150,7 +1150,7 @@ static function ($hit) { ); } - public function testFullTextFilterInvalidStopwordThreshold() + public function testFullTextFilterInvalidStopwordThreshold(): void { $this->expectException(InvalidArgumentException::class); @@ -1161,7 +1161,7 @@ public function testFullTextFilterInvalidStopwordThreshold() ); } - public function testFieldRelationFilterContainsSingle() + public function testFieldRelationFilterContainsSingle(): void { $this->assertSearchResults( [69], @@ -1179,7 +1179,7 @@ public function testFieldRelationFilterContainsSingle() ); } - public function testFieldRelationFilterContainsSingleNoMatch() + public function testFieldRelationFilterContainsSingleNoMatch(): void { $this->assertSearchResults( [], @@ -1197,7 +1197,7 @@ public function testFieldRelationFilterContainsSingleNoMatch() ); } - public function testFieldRelationFilterContainsArray() + public function testFieldRelationFilterContainsArray(): void { $this->assertSearchResults( [69], @@ -1215,7 +1215,7 @@ public function testFieldRelationFilterContainsArray() ); } - public function testFieldRelationFilterContainsArrayNotMatch() + public function testFieldRelationFilterContainsArrayNotMatch(): void { $this->assertSearchResults( [], @@ -1233,7 +1233,7 @@ public function testFieldRelationFilterContainsArrayNotMatch() ); } - public function testFieldRelationFilterInArray() + public function testFieldRelationFilterInArray(): void { $this->assertSearchResults( [69, 77], @@ -1251,7 +1251,7 @@ public function testFieldRelationFilterInArray() ); } - public function testFieldRelationFilterInArrayNotMatch() + public function testFieldRelationFilterInArrayNotMatch(): void { $this->assertSearchResults( [], @@ -1269,7 +1269,7 @@ public function testFieldRelationFilterInArrayNotMatch() ); } - public function testFieldFilter() + public function testFieldFilter(): void { $this->assertSearchResults( [12], @@ -1288,7 +1288,7 @@ public function testFieldFilter() ); } - public function testFieldFilterIn() + public function testFieldFilterIn(): void { $this->assertSearchResults( [12, 44], @@ -1307,7 +1307,7 @@ public function testFieldFilterIn() ); } - public function testFieldFilterContainsPartial() + public function testFieldFilterContainsPartial(): void { $this->assertSearchResults( [44], @@ -1326,7 +1326,7 @@ public function testFieldFilterContainsPartial() ); } - public function testFieldFilterContainsSimple() + public function testFieldFilterContainsSimple(): void { $this->assertSearchResults( [79], @@ -1345,7 +1345,7 @@ public function testFieldFilterContainsSimple() ); } - public function testFieldFilterContainsSimpleNoMatch() + public function testFieldFilterContainsSimpleNoMatch(): void { $this->assertSearchResults( [], @@ -1364,7 +1364,7 @@ public function testFieldFilterContainsSimpleNoMatch() ); } - public function testFieldFilterBetween() + public function testFieldFilterBetween(): void { $this->assertSearchResults( [188, 189], @@ -1383,7 +1383,7 @@ public function testFieldFilterBetween() ); } - public function testFieldFilterOr() + public function testFieldFilterOr(): void { $this->assertSearchResults( [12, 188, 189], @@ -1411,7 +1411,7 @@ public function testFieldFilterOr() ); } - public function testIsMainLocationFilter() + public function testIsMainLocationFilter(): void { $this->assertSearchResults( [225], @@ -1433,7 +1433,7 @@ public function testIsMainLocationFilter() ); } - public function testIsNotMainLocationFilter() + public function testIsNotMainLocationFilter(): void { $this->assertSearchResults( [510], From 48b0f903edcf37e365fd03b11f12f96ee3d87ca5 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 18 Sep 2026 10:08:15 +0200 Subject: [PATCH 20/20] IBX-12606: Used exactly()-based expectations for multi-target evaluation in ParentDepthLimitationTypeTest --- .../ParentDepthLimitationTypeTest.php | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php index 81e42df05c..b35a346d3a 100644 --- a/tests/lib/Limitation/ParentDepthLimitationTypeTest.php +++ b/tests/lib/Limitation/ParentDepthLimitationTypeTest.php @@ -275,6 +275,20 @@ public static function providerForTestEvaluate(): array ], 'expected' => true, ], + // ContentCreateStruct, with multiple targets, with access + [ + 'limitation' => new ParentDepthLimitation(['limitationValues' => [2, 42]]), + 'object' => new ContentCreateStruct(), + 'targets' => [ + new LocationCreateStruct(['parentLocationId' => 43]), + new LocationCreateStruct(['parentLocationId' => 55]), + ], + 'persistenceLocations' => [ + 43 => new Location(['depth' => 42]), + 55 => new Location(['depth' => 2]), + ], + 'expected' => true, + ], ]; } @@ -300,18 +314,25 @@ public function testEvaluate( ->expects(self::never()) ->method(self::anything()); } elseif ($object instanceof ContentCreateStruct) { + $parentLocationIds = array_map( + static fn (LocationCreateStruct $target): int => $target->parentLocationId, + array_values($targets) + ); + $this->getPersistenceMock() - ->expects(self::once()) + ->expects(self::exactly(count($parentLocationIds))) ->method('locationHandler') - ->will(self::returnValue($this->locationHandlerMock)); + ->willReturn($this->locationHandlerMock); + + $matcher = self::exactly(count($parentLocationIds)); + $this->locationHandlerMock + ->expects($matcher) + ->method('load') + ->willReturnCallback(static function ($parentLocationId) use ($matcher, $parentLocationIds, $persistenceLocations) { + self::assertSame($parentLocationIds[$matcher->numberOfInvocations() - 1], $parentLocationId); - foreach ($targets as $target) { - $this->locationHandlerMock - ->expects(self::once()) - ->method('load') - ->with($target->parentLocationId) - ->will(self::returnValue($persistenceLocations[$target->parentLocationId])); - } + return $persistenceLocations[$parentLocationId]; + }); } else { $this->getPersistenceMock() ->expects(self::once())