From 3a0877f7c52dbbe6413da33896815ff97e53fa9f Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Thu, 10 Apr 2025 11:53:38 +0200 Subject: [PATCH] IBX-9103: Replaced Relation const calls with RelationType enum --- src/lib/FieldType/ImageAsset/Type.php | 4 +- src/lib/FieldType/Relation/Type.php | 3 +- src/lib/FieldType/RelationList/Type.php | 3 +- src/lib/Persistence/Cache/ContentHandler.php | 4 +- .../Content/Gateway/DoctrineDatabase.php | 3 +- src/lib/Repository/ContentService.php | 8 +- .../Core/Repository/ContentServiceTest.php | 2 +- tests/lib/FieldType/ImageAssetTest.php | 4 +- tests/lib/FieldType/RelationListTest.php | 4 +- tests/lib/FieldType/RelationTest.php | 18 +- .../Persistence/Cache/ContentHandlerTest.php | 6 +- .../Legacy/Content/ContentHandlerTest.php | 10 +- .../Content/Gateway/DoctrineDatabaseTest.php | 20 +- .../Persistence/Legacy/Content/MapperTest.php | 4 +- .../Service/Mock/RelationProcessorTest.php | 204 +++++++++--------- 15 files changed, 150 insertions(+), 147 deletions(-) diff --git a/src/lib/FieldType/ImageAsset/Type.php b/src/lib/FieldType/ImageAsset/Type.php index 4a362e6859..81365e7661 100644 --- a/src/lib/FieldType/ImageAsset/Type.php +++ b/src/lib/FieldType/ImageAsset/Type.php @@ -14,7 +14,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\Content; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\FieldType; @@ -270,7 +270,7 @@ public function getRelations(SPIValue $fieldValue): array { $relations = []; if ($fieldValue->destinationContentId !== null) { - $relations[Relation::ASSET] = [$fieldValue->destinationContentId]; + $relations[RelationType::ASSET->value] = [$fieldValue->destinationContentId]; } return $relations; diff --git a/src/lib/FieldType/Relation/Type.php b/src/lib/FieldType/Relation/Type.php index b322db581c..1e45240ba7 100644 --- a/src/lib/FieldType/Relation/Type.php +++ b/src/lib/FieldType/Relation/Type.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\FieldType; @@ -347,7 +348,7 @@ public function getRelations(SPIValue $fieldValue) { $relations = []; if ($fieldValue->destinationContentId !== null) { - $relations[Relation::FIELD] = [$fieldValue->destinationContentId]; + $relations[RelationType::FIELD->value] = [$fieldValue->destinationContentId]; } return $relations; diff --git a/src/lib/FieldType/RelationList/Type.php b/src/lib/FieldType/RelationList/Type.php index 436f72b39a..4a268d2dbe 100644 --- a/src/lib/FieldType/RelationList/Type.php +++ b/src/lib/FieldType/RelationList/Type.php @@ -12,6 +12,7 @@ use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Base\Exceptions\InvalidArgumentType; use Ibexa\Core\FieldType\FieldType; @@ -468,7 +469,7 @@ public function getRelations(SPIValue $value) { /* @var \Ibexa\Core\FieldType\RelationList\Value $value */ return [ - Relation::FIELD => $value->destinationContentIds, + RelationType::FIELD->value => $value->destinationContentIds, ]; } diff --git a/src/lib/Persistence/Cache/ContentHandler.php b/src/lib/Persistence/Cache/ContentHandler.php index 0bdd2a7e23..08efc5fea2 100644 --- a/src/lib/Persistence/Cache/ContentHandler.php +++ b/src/lib/Persistence/Cache/ContentHandler.php @@ -16,7 +16,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Relation\CreateStruct as RelationCreateStruct; use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation as APIRelation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; /** * @covers \Ibexa\Core\Persistence\Cache\ContentHandler @@ -364,7 +364,7 @@ public function deleteContent($contentId) // Load reverse field relations first $reverseRelations = $this->persistenceHandler->contentHandler()->loadReverseRelations( $contentId, - APIRelation::FIELD | APIRelation::ASSET + RelationType::FIELD->value | RelationType::ASSET->value ); $return = $this->persistenceHandler->contentHandler()->deleteContent($contentId); diff --git a/src/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabase.php b/src/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabase.php index 3c9cd96421..b404620656 100644 --- a/src/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabase.php +++ b/src/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabase.php @@ -24,6 +24,7 @@ use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo as APIVersionInfo; use Ibexa\Core\Base\Exceptions\BadStateException; use Ibexa\Core\Base\Exceptions\NotFoundException; @@ -1187,7 +1188,7 @@ public function removeReverseFieldRelations(int $contentId): void ) ) ->setParameter('content_id', $contentId, ParameterType::INTEGER) - ->setParameter('relation_type', Relation::FIELD, ParameterType::INTEGER); + ->setParameter('relation_type', RelationType::FIELD->value, ParameterType::INTEGER); $statement = $query->execute(); diff --git a/src/lib/Repository/ContentService.php b/src/lib/Repository/ContentService.php index 11c8d699b0..7a8cc903eb 100644 --- a/src/lib/Repository/ContentService.php +++ b/src/lib/Repository/ContentService.php @@ -2251,7 +2251,7 @@ public function addRelation(APIVersionInfo $sourceVersion, ContentInfo $destinat 'sourceContentVersionNo' => $sourceVersion->versionNo, 'sourceFieldDefinitionId' => null, 'destinationContentId' => $destinationContent->id, - 'type' => APIRelation::COMMON, + 'type' => RelationType::COMMON->value, ] ) ); @@ -2295,7 +2295,7 @@ public function deleteRelation(APIVersionInfo $sourceVersion, ContentInfo $desti $spiRelationsCount = $this->persistenceHandler->contentHandler()->countRelations( (int)$sourceVersion->getContentInfo()->getId(), $sourceVersion->versionNo, - APIRelation::COMMON + RelationType::COMMON->value ); if ($spiRelationsCount === 0) { @@ -2310,7 +2310,7 @@ public function deleteRelation(APIVersionInfo $sourceVersion, ContentInfo $desti $spiRelationsCount, 0, $sourceVersion->versionNo, - APIRelation::COMMON + RelationType::COMMON->value ); // there should be only one relation of type COMMON for each destination, @@ -2322,7 +2322,7 @@ public function deleteRelation(APIVersionInfo $sourceVersion, ContentInfo $desti if ($spiRelation->destinationContentId == $destinationContent->id) { $this->persistenceHandler->contentHandler()->removeRelation( $spiRelation->id, - APIRelation::COMMON, + RelationType::COMMON->value, $spiRelation->destinationContentId ); } diff --git a/tests/integration/Core/Repository/ContentServiceTest.php b/tests/integration/Core/Repository/ContentServiceTest.php index 2fd9ac4728..a0d8454f09 100644 --- a/tests/integration/Core/Repository/ContentServiceTest.php +++ b/tests/integration/Core/Repository/ContentServiceTest.php @@ -3557,7 +3557,7 @@ protected function assertExpectedRelations($relations) { self::assertEquals( [ - 'type' => Relation::COMMON, + 'type' => RelationType::COMMON->value, 'sourceFieldDefinitionIdentifier' => null, 'sourceContentInfo' => 'abcdef0123456789abcdef0123456789', 'destinationContentInfo' => self::MEDIA_REMOTE_ID, diff --git a/tests/lib/FieldType/ImageAssetTest.php b/tests/lib/FieldType/ImageAssetTest.php index a85e2cbb94..83f99825b4 100644 --- a/tests/lib/FieldType/ImageAssetTest.php +++ b/tests/lib/FieldType/ImageAssetTest.php @@ -14,7 +14,7 @@ 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\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Base\Exceptions\InvalidArgumentException; @@ -427,7 +427,7 @@ public function testGetRelations() self::assertEquals( [ - Relation::ASSET => [$destinationContentId], + RelationType::ASSET->value => [$destinationContentId], ], $fieldType->getRelations($fieldType->acceptValue($destinationContentId)) ); diff --git a/tests/lib/FieldType/RelationListTest.php b/tests/lib/FieldType/RelationListTest.php index d452daec28..fed909fbb7 100644 --- a/tests/lib/FieldType/RelationListTest.php +++ b/tests/lib/FieldType/RelationListTest.php @@ -11,7 +11,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Handler as SPIContentHandler; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Base\Exceptions\InvalidArgumentException; use Ibexa\Core\FieldType\RelationList\Type as RelationList; use Ibexa\Core\FieldType\RelationList\Value; @@ -844,7 +844,7 @@ public function testGetRelations() $ft = $this->createFieldTypeUnderTest(); self::assertEquals( [ - Relation::FIELD => [70, 72], + RelationType::FIELD->value => [70, 72], ], $ft->getRelations($ft->acceptValue([70, 72])) ); diff --git a/tests/lib/FieldType/RelationTest.php b/tests/lib/FieldType/RelationTest.php index 54a149a8a1..b48957dbe8 100644 --- a/tests/lib/FieldType/RelationTest.php +++ b/tests/lib/FieldType/RelationTest.php @@ -11,10 +11,10 @@ use Ibexa\Contracts\Core\Persistence\Content\Handler as SPIContentHandler; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition; use Ibexa\Core\Base\Exceptions\InvalidArgumentException; -use Ibexa\Core\FieldType\Relation\Type as RelationType; +use Ibexa\Core\FieldType\Relation\Type as Type; use Ibexa\Core\FieldType\Relation\Value; use Ibexa\Core\FieldType\ValidationError; use Ibexa\Core\Repository\Validator\TargetContentValidatorInterface; @@ -75,7 +75,7 @@ protected function setUp(): void */ protected function createFieldTypeUnderTest() { - $fieldType = new RelationType( + $fieldType = new Type( $this->contentHandler, $this->targetContentValidator ); @@ -104,7 +104,7 @@ protected function getSettingsSchemaExpectation() return [ 'selectionMethod' => [ 'type' => 'int', - 'default' => RelationType::SELECTION_BROWSE, + 'default' => Type::SELECTION_BROWSE, ], 'selectionRoot' => [ 'type' => 'string', @@ -313,13 +313,13 @@ public function provideValidFieldSettings() return [ [ [ - 'selectionMethod' => RelationType::SELECTION_BROWSE, + 'selectionMethod' => Type::SELECTION_BROWSE, 'selectionRoot' => 42, ], ], [ [ - 'selectionMethod' => RelationType::SELECTION_DROPDOWN, + 'selectionMethod' => Type::SELECTION_DROPDOWN, 'selectionRoot' => 'some-key', ], ], @@ -356,7 +356,7 @@ public function provideInValidFieldSettings() // Unknown key [ 'unknownKey' => 23, - 'selectionMethod' => RelationType::SELECTION_BROWSE, + 'selectionMethod' => Type::SELECTION_BROWSE, 'selectionRoot' => 42, ], ], @@ -370,7 +370,7 @@ public function provideInValidFieldSettings() [ // Invalid selectionRoot [ - 'selectionMethod' => RelationType::SELECTION_DROPDOWN, + 'selectionMethod' => Type::SELECTION_DROPDOWN, 'selectionRoot' => [], ], ], @@ -385,7 +385,7 @@ public function testGetRelations() $ft = $this->createFieldTypeUnderTest(); self::assertEquals( [ - Relation::FIELD => [70], + RelationType::FIELD->value => [70], ], $ft->getRelations($ft->acceptValue(70)) ); diff --git a/tests/lib/Persistence/Cache/ContentHandlerTest.php b/tests/lib/Persistence/Cache/ContentHandlerTest.php index 2ab1b775cd..1f41c7d0a2 100644 --- a/tests/lib/Persistence/Cache/ContentHandlerTest.php +++ b/tests/lib/Persistence/Cache/ContentHandlerTest.php @@ -17,7 +17,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Relation\CreateStruct as RelationCreateStruct; use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation as APIRelation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Persistence\Cache\ContentHandler; /** @@ -53,7 +53,7 @@ public function providerForUnCachedMethods(): array //['deleteContent', [2]], own tests for relations complexity ['deleteVersion', [2, 1], [['content_version', [2, 1], false]], null, ['c-2-v-1']], ['addRelation', [new RelationCreateStruct(['destinationContentId' => 2, 'sourceContentId' => 4])], [['content', [2], false], ['content', [4], false]], null, ['c-2', 'c-4']], - ['removeRelation', [66, APIRelation::COMMON, 2], [['content', [2], false], ['relation', [66], false]], null, ['c-2', 're-66']], + ['removeRelation', [66, RelationType::COMMON->value, 2], [['content', [2], false], ['relation', [66], false]], null, ['c-2', 're-66']], ['loadReverseRelations', [2, 3]], ['publish', [2, 3, new MetadataUpdateStruct()], [['content', [2], false]], null, ['c-2']], [ @@ -450,7 +450,7 @@ public function testDeleteContent() $innerHandlerMock ->expects(self::once()) ->method('loadReverseRelations') - ->with(2, APIRelation::FIELD | APIRelation::ASSET) + ->with(2, RelationType::FIELD->value | RelationType::ASSET->value) ->willReturn( [ new SPIRelation(['sourceContentId' => 42]), diff --git a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php index b3737f54c7..4734103fe8 100644 --- a/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php +++ b/tests/lib/Persistence/Legacy/Content/ContentHandlerTest.php @@ -19,7 +19,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Type; use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation as RelationValue; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Base\Exceptions\NotFoundException; use Ibexa\Core\Persistence\Legacy\Content\FieldHandler; use Ibexa\Core\Persistence\Legacy\Content\Gateway as ContentGateway; @@ -925,14 +925,14 @@ public function testAddRelation() $expectedRelationObject->sourceContentId = 23; $expectedRelationObject->sourceContentVersionNo = 1; $expectedRelationObject->destinationContentId = 66; - $expectedRelationObject->type = RelationValue::COMMON; + $expectedRelationObject->type = RelationType::COMMON->value; // relation create struct $relationCreateStruct = new Relation\CreateStruct(); $relationCreateStruct->destinationContentId = 66; $relationCreateStruct->sourceContentId = 23; $relationCreateStruct->sourceContentVersionNo = 1; - $relationCreateStruct->type = RelationValue::COMMON; + $relationCreateStruct->type = RelationType::COMMON->value; $handler = $this->getContentHandler(); @@ -969,10 +969,10 @@ public function testRemoveRelation() ->method('deleteRelation') ->with( self::equalTo(1), - self::equalTo(RelationValue::COMMON), + self::equalTo(RelationType::COMMON->value), ); - $this->getContentHandler()->removeRelation(1, RelationValue::COMMON); + $this->getContentHandler()->removeRelation(1, RelationType::COMMON->value); } protected function getRelationFixture() diff --git a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php index 4ded4b9096..3fa17de8fb 100644 --- a/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php +++ b/tests/lib/Persistence/Legacy/Content/Gateway/DoctrineDatabaseTest.php @@ -17,7 +17,7 @@ use Ibexa\Contracts\Core\Persistence\Content\UpdateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation as RelationValue; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase; use Ibexa\Core\Persistence\Legacy\Content\StorageFieldValue; use Ibexa\Tests\Core\Persistence\Legacy\Content\LanguageAwareTestCase; @@ -1250,13 +1250,13 @@ public function testLoadRelationsByType() $gateway = $this->getDatabaseGateway(); - $relations = $gateway->loadRelations(57, null, RelationValue::COMMON); + $relations = $gateway->loadRelations(57, null, RelationType::COMMON->value); self::assertCount(1, $relations, 'Expecting one relation to be loaded'); $this->assertValuesInRows( 'ezcontentobject_link_relation_type', - [RelationValue::COMMON], + [RelationType::COMMON->value], $relations ); @@ -1290,7 +1290,7 @@ public function testLoadRelationsNoResult() $gateway = $this->getDatabaseGateway(); - $relations = $gateway->loadRelations(57, 1, RelationValue::EMBED); + $relations = $gateway->loadRelations(57, 1, RelationType::EMBED->value); self::assertCount(0, $relations, 'Expecting no relation to be loaded'); } @@ -1318,7 +1318,7 @@ public function testLoadReverseRelationsWithType() $gateway = $this->getDatabaseGateway(); - $relations = $gateway->loadReverseRelations(58, RelationValue::COMMON); + $relations = $gateway->loadReverseRelations(58, RelationType::COMMON->value); self::assertCount(1, $relations); @@ -1330,7 +1330,7 @@ public function testLoadReverseRelationsWithType() $this->assertValuesInRows( 'ezcontentobject_link_relation_type', - [RelationValue::COMMON], + [RelationType::COMMON->value], $relations ); } @@ -1399,7 +1399,7 @@ public function testDeleteRelation() self::assertEquals(4, $this->countContentRelations(57)); $gateway = $this->getDatabaseGateway(); - $gateway->deleteRelation(2, RelationValue::COMMON); + $gateway->deleteRelation(2, RelationType::COMMON->value); self::assertEquals(3, $this->countContentRelations(57)); } @@ -1412,11 +1412,11 @@ public function testDeleteRelationWithCompositeBitmask(): void $this->insertRelationFixture(); $gateway = $this->getDatabaseGateway(); - $gateway->deleteRelation(11, RelationValue::COMMON); + $gateway->deleteRelation(11, RelationType::COMMON->value); $query = $this->getDatabaseConnection()->createQueryBuilder(); $this->assertQueryResult( - [['relation_type' => RelationValue::LINK]], + [['relation_type' => RelationType::LINK->value]], $query ->select(['relation_type']) ->from('ezcontentobject_link') @@ -1951,7 +1951,7 @@ protected function getRelationCreateStructFixture() $struct->sourceContentId = 1; $struct->sourceContentVersionNo = 1; $struct->sourceFieldDefinitionId = 0; - $struct->type = RelationValue::COMMON; + $struct->type = RelationType::COMMON->value; return $struct; } diff --git a/tests/lib/Persistence/Legacy/Content/MapperTest.php b/tests/lib/Persistence/Legacy/Content/MapperTest.php index b1227ed65a..80ddc51ad6 100644 --- a/tests/lib/Persistence/Legacy/Content/MapperTest.php +++ b/tests/lib/Persistence/Legacy/Content/MapperTest.php @@ -18,7 +18,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Relation as SPIRelation; use Ibexa\Contracts\Core\Persistence\Content\Relation\CreateStruct as RelationCreateStruct; use Ibexa\Contracts\Core\Persistence\Content\VersionInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation as RelationValue; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\Converter; use Ibexa\Core\Persistence\Legacy\Content\FieldValue\ConverterRegistry as Registry; use Ibexa\Core\Persistence\Legacy\Content\Gateway; @@ -682,7 +682,7 @@ protected function getRelationCreateStructFixture(): RelationCreateStruct $struct->sourceContentId = 0; $struct->sourceContentVersionNo = 1; $struct->sourceFieldDefinitionId = 1; - $struct->type = RelationValue::COMMON; + $struct->type = RelationType::COMMON->value; return $struct; } diff --git a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php index c5cfa2529b..c8b9722415 100644 --- a/tests/lib/Repository/Service/Mock/RelationProcessorTest.php +++ b/tests/lib/Repository/Service/Mock/RelationProcessorTest.php @@ -12,7 +12,7 @@ use Ibexa\Contracts\Core\Persistence\Content\Relation\CreateStruct; use Ibexa\Contracts\Core\Repository\Exceptions\NotFoundException; use Ibexa\Contracts\Core\Repository\Values\Content\ContentInfo; -use Ibexa\Contracts\Core\Repository\Values\Content\Relation; +use Ibexa\Contracts\Core\Repository\Values\Content\RelationType; use Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType; use Ibexa\Core\FieldType\Value; use Ibexa\Core\Repository\FieldTypeService; @@ -31,129 +31,129 @@ public function providerForTestAppendRelations() { return [ [ - [Relation::FIELD => [100]], - [Relation::FIELD => [42 => [100 => 0]]], + [RelationType::FIELD->value => [100]], + [RelationType::FIELD->value => [42 => [100 => 0]]], ], [ - [Relation::LINK => ['contentIds' => [100]]], - [Relation::LINK => [100 => 0]], + [RelationType::LINK->value => ['contentIds' => [100]]], + [RelationType::LINK->value => [100 => 0]], ], [ - [Relation::EMBED => ['contentIds' => [100]]], - [Relation::EMBED => [100 => 0]], + [RelationType::EMBED->value => ['contentIds' => [100]]], + [RelationType::EMBED->value => [100 => 0]], ], [ - [Relation::ASSET => [100]], - [Relation::ASSET => [42 => [100 => 0]]], + [RelationType::ASSET->value => [100]], + [RelationType::ASSET->value => [42 => [100 => 0]]], ], [ [ - Relation::FIELD => [100], - Relation::LINK => ['contentIds' => [100]], - Relation::EMBED => ['contentIds' => [100]], + RelationType::FIELD->value => [100], + RelationType::LINK->value => ['contentIds' => [100]], + RelationType::EMBED->value => ['contentIds' => [100]], ], [ - Relation::FIELD => [42 => [100 => 0]], - Relation::LINK => [100 => 0], - Relation::EMBED => [100 => 0], + RelationType::FIELD->value => [42 => [100 => 0]], + RelationType::LINK->value => [100 => 0], + RelationType::EMBED->value => [100 => 0], ], ], [ - [Relation::LINK => ['locationIds' => [100]]], - [Relation::LINK => [200 => true]], + [RelationType::LINK->value => ['locationIds' => [100]]], + [RelationType::LINK->value => [200 => true]], ], [ [ - Relation::LINK => [ + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], ], - [Relation::LINK => [100 => 0, 200 => true]], + [RelationType::LINK->value => [100 => 0, 200 => true]], ], [ - [Relation::EMBED => ['locationIds' => [100]]], - [Relation::EMBED => [200 => true]], + [RelationType::EMBED->value => ['locationIds' => [100]]], + [RelationType::EMBED->value => [200 => true]], ], [ [ - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [100], 'contentIds' => [100], ], ], - [Relation::EMBED => [100 => 0, 200 => true]], + [RelationType::EMBED->value => [100 => 0, 200 => true]], ], [ [ - Relation::LINK => [ + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [101], 'contentIds' => [100], ], ], [ - Relation::LINK => [100 => 0, 200 => true], - Relation::EMBED => [100 => 0, 201 => true], + RelationType::LINK->value => [100 => 0, 200 => true], + RelationType::EMBED->value => [100 => 0, 201 => true], ], ], [ [ - Relation::FIELD => [100], - Relation::LINK => [ + RelationType::FIELD->value => [100], + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [101], 'contentIds' => [100], ], ], [ - Relation::FIELD => [42 => [100 => 0]], - Relation::LINK => [100 => 0, 200 => true], - Relation::EMBED => [100 => 0, 201 => true], + RelationType::FIELD->value => [42 => [100 => 0]], + RelationType::LINK->value => [100 => 0, 200 => true], + RelationType::EMBED->value => [100 => 0, 201 => true], ], ], [ [ - Relation::ASSET => [100], - Relation::LINK => [ + RelationType::ASSET->value => [100], + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [101], 'contentIds' => [100], ], ], [ - Relation::ASSET => [42 => [100 => 0]], - Relation::LINK => [100 => 0, 200 => true], - Relation::EMBED => [100 => 0, 201 => true], + RelationType::ASSET->value => [42 => [100 => 0]], + RelationType::LINK->value => [100 => 0, 200 => true], + RelationType::EMBED->value => [100 => 0, 201 => true], ], ], [ [ - Relation::FIELD => [100], - Relation::ASSET => [100], - Relation::LINK => [ + RelationType::FIELD->value => [100], + RelationType::ASSET->value => [100], + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [101], 'contentIds' => [100], ], ], [ - Relation::FIELD => [42 => [100 => 0]], - Relation::ASSET => [42 => [100 => 0]], - Relation::LINK => [100 => 0, 200 => true], - Relation::EMBED => [100 => 0, 201 => true], + RelationType::FIELD->value => [42 => [100 => 0]], + RelationType::ASSET->value => [42 => [100 => 0]], + RelationType::LINK->value => [100 => 0, 200 => true], + RelationType::EMBED->value => [100 => 0, 201 => true], ], ], ]; @@ -180,13 +180,13 @@ public function testAppendFieldRelations(array $fieldRelations, array $expected) $this->assertLocationHandlerExpectation( $locationHandler, $fieldRelations, - Relation::LINK, + RelationType::LINK->value, $locationCallCount ); $this->assertLocationHandlerExpectation( $locationHandler, $fieldRelations, - Relation::EMBED, + RelationType::EMBED->value, $locationCallCount ); @@ -243,13 +243,13 @@ public function testAppendFieldRelationsLocationMappingWorks() ->will( self::returnValue( [ - Relation::FIELD => [100], - Relation::ASSET => [100], - Relation::LINK => [ + RelationType::FIELD->value => [100], + RelationType::ASSET->value => [100], + RelationType::LINK->value => [ 'locationIds' => [100], 'contentIds' => [100], ], - Relation::EMBED => [ + RelationType::EMBED->value => [ 'locationIds' => [100], 'contentIds' => [100], ], @@ -281,10 +281,10 @@ public function testAppendFieldRelationsLocationMappingWorks() self::assertEquals( [ - Relation::ASSET => [42 => [100 => 0]], - Relation::FIELD => [42 => [100 => 0]], - Relation::LINK => [100 => 0, 200 => true], - Relation::EMBED => [100 => 0, 200 => true], + RelationType::ASSET->value => [42 => [100 => 0]], + RelationType::FIELD->value => [42 => [100 => 0]], + RelationType::LINK->value => [100 => 0, 200 => true], + RelationType::EMBED->value => [100 => 0, 200 => true], ], $relations ); @@ -305,7 +305,7 @@ public function testAppendFieldRelationsLogsMissingLocations() ->will( self::returnValue( [ - Relation::LINK => [ + RelationType::LINK->value => [ 'locationIds' => [$locationId], ], ] @@ -365,42 +365,42 @@ public function testProcessFieldRelationsNoChanges() $contentHandlerMock->expects(self::never())->method('removeRelation'); $existingRelations = [ - $this->getStubbedRelation(1, Relation::COMMON, null, 10), - $this->getStubbedRelation(2, Relation::EMBED, null, 11), - $this->getStubbedRelation(3, Relation::LINK, null, 12), - $this->getStubbedRelation(4, Relation::FIELD, 42, 13), + $this->getStubbedRelation(1, RelationType::COMMON->value, null, 10), + $this->getStubbedRelation(2, RelationType::EMBED->value, null, 11), + $this->getStubbedRelation(3, RelationType::LINK->value, null, 12), + $this->getStubbedRelation(4, RelationType::FIELD->value, 42, 13), // Legacy Storage cases - composite entries $this->getStubbedRelation( 5, - Relation::EMBED | Relation::COMMON, + RelationType::EMBED->value | RelationType::COMMON->value, null, 14 ), $this->getStubbedRelation( 6, - Relation::LINK | Relation::COMMON, + RelationType::LINK->value | RelationType::COMMON->value, null, 15 ), $this->getStubbedRelation( 7, - Relation::EMBED | Relation::LINK, + RelationType::EMBED->value | RelationType::LINK->value, null, 16 ), $this->getStubbedRelation( 8, - Relation::EMBED | Relation::LINK | Relation::COMMON, + RelationType::EMBED->value | RelationType::LINK->value | RelationType::COMMON->value, null, 17 ), - $this->getStubbedRelation(9, Relation::ASSET, 43, 18), + $this->getStubbedRelation(9, RelationType::ASSET->value, 43, 18), ]; $inputRelations = [ - Relation::EMBED => array_flip([11, 14, 16, 17]), - Relation::LINK => array_flip([12, 15, 16, 17]), - Relation::FIELD => [42 => array_flip([13])], - Relation::ASSET => [43 => array_flip([18])], + RelationType::EMBED->value => array_flip([11, 14, 16, 17]), + RelationType::LINK->value => array_flip([12, 15, 16, 17]), + RelationType::FIELD->value => [42 => array_flip([13])], + RelationType::ASSET->value => [43 => array_flip([18])], ]; $relationProcessor->processFieldRelations( @@ -422,34 +422,34 @@ public function testProcessFieldRelationsAddsRelations() $contentTypeMock = $this->createMock(ContentType::class); $existingRelations = [ - $this->getStubbedRelation(1, Relation::COMMON, null, 10), - $this->getStubbedRelation(2, Relation::EMBED, null, 11), - $this->getStubbedRelation(3, Relation::LINK, null, 12), + $this->getStubbedRelation(1, RelationType::COMMON->value, null, 10), + $this->getStubbedRelation(2, RelationType::EMBED->value, null, 11), + $this->getStubbedRelation(3, RelationType::LINK->value, null, 12), // Legacy Storage cases - composite entries $this->getStubbedRelation( 5, - Relation::EMBED | Relation::COMMON, + RelationType::EMBED->value | RelationType::COMMON->value, null, 14 ), $this->getStubbedRelation( 6, - Relation::LINK | Relation::COMMON, + RelationType::LINK->value | RelationType::COMMON->value, null, 15 ), $this->getStubbedRelation( 7, - Relation::EMBED | Relation::LINK, + RelationType::EMBED->value | RelationType::LINK->value, null, 16 ), ]; $inputRelations = [ - Relation::EMBED => array_flip([11, 14, 16, 17]), - Relation::LINK => array_flip([12, 15, 16, 17]), - Relation::FIELD => [42 => array_flip([13])], - Relation::ASSET => [44 => array_flip([18])], + RelationType::EMBED->value => array_flip([11, 14, 16, 17]), + RelationType::LINK->value => array_flip([12, 15, 16, 17]), + RelationType::FIELD->value => [42 => array_flip([13])], + RelationType::ASSET->value => [44 => array_flip([18])], ]; $contentTypeMock->expects(self::never())->method('getFieldDefinition'); @@ -464,7 +464,7 @@ public function testProcessFieldRelationsAddsRelations() 'sourceContentVersionNo' => 2, 'sourceFieldDefinitionId' => null, 'destinationContentId' => 17, - 'type' => Relation::EMBED, + 'type' => RelationType::EMBED->value, ] ) ); @@ -478,7 +478,7 @@ public function testProcessFieldRelationsAddsRelations() 'sourceContentVersionNo' => 2, 'sourceFieldDefinitionId' => null, 'destinationContentId' => 17, - 'type' => Relation::LINK, + 'type' => RelationType::LINK->value, ] ) ); @@ -492,7 +492,7 @@ public function testProcessFieldRelationsAddsRelations() 'sourceContentVersionNo' => 2, 'sourceFieldDefinitionId' => 42, 'destinationContentId' => 13, - 'type' => Relation::FIELD, + 'type' => RelationType::FIELD->value, ] ) ); @@ -506,7 +506,7 @@ public function testProcessFieldRelationsAddsRelations() 'sourceContentVersionNo' => 2, 'sourceFieldDefinitionId' => 44, 'destinationContentId' => 18, - 'type' => Relation::ASSET, + 'type' => RelationType::ASSET->value, ] ) ); @@ -530,40 +530,40 @@ public function testProcessFieldRelationsRemovesRelations() $contentTypeMock = $this->createMock(ContentType::class); $existingRelations = [ - $this->getStubbedRelation(1, Relation::COMMON, null, 10), - $this->getStubbedRelation(2, Relation::EMBED, null, 11), - $this->getStubbedRelation(3, Relation::LINK, null, 12), - $this->getStubbedRelation(4, Relation::FIELD, 42, 13), + $this->getStubbedRelation(1, RelationType::COMMON->value, null, 10), + $this->getStubbedRelation(2, RelationType::EMBED->value, null, 11), + $this->getStubbedRelation(3, RelationType::LINK->value, null, 12), + $this->getStubbedRelation(4, RelationType::FIELD->value, 42, 13), // Legacy Storage cases - composite entries $this->getStubbedRelation( 5, - Relation::EMBED | Relation::COMMON, + RelationType::EMBED->value | RelationType::COMMON->value, null, 14 ), $this->getStubbedRelation( 6, - Relation::LINK | Relation::COMMON, + RelationType::LINK->value | RelationType::COMMON->value, null, 15 ), $this->getStubbedRelation( 7, - Relation::EMBED | Relation::LINK, + RelationType::EMBED->value | RelationType::LINK->value, null, 16 ), $this->getStubbedRelation( 8, - Relation::EMBED | Relation::LINK | Relation::COMMON, + RelationType::EMBED->value | RelationType::LINK->value | RelationType::COMMON->value, null, 17 ), - $this->getStubbedRelation(9, Relation::FIELD, 44, 18), + $this->getStubbedRelation(9, RelationType::FIELD->value, 44, 18), ]; $inputRelations = [ - Relation::EMBED => array_flip([11, 14, 17]), - Relation::LINK => array_flip([12, 15, 17]), + RelationType::EMBED->value => array_flip([11, 14, 17]), + RelationType::LINK->value => array_flip([12, 15, 17]), ]; $contentHandlerMock->expects(self::never())->method('addRelation'); @@ -582,7 +582,7 @@ public function testProcessFieldRelationsRemovesRelations() ->method('removeRelation') ->with( self::equalTo(7), - self::equalTo(Relation::EMBED), + self::equalTo(RelationType::EMBED->value), self::equalTo(16) ); @@ -590,7 +590,7 @@ public function testProcessFieldRelationsRemovesRelations() ->method('removeRelation') ->with( self::equalTo(7), - self::equalTo(Relation::LINK), + self::equalTo(RelationType::LINK->value), self::equalTo(16) ); @@ -598,7 +598,7 @@ public function testProcessFieldRelationsRemovesRelations() ->method('removeRelation') ->with( self::equalTo(4), - self::equalTo(Relation::FIELD), + self::equalTo(RelationType::FIELD->value), self::equalTo(13) ); @@ -606,7 +606,7 @@ public function testProcessFieldRelationsRemovesRelations() ->method('removeRelation') ->with( self::equalTo(9), - self::equalTo(Relation::FIELD) + self::equalTo(RelationType::FIELD->value) ); $relationProcessor->processFieldRelations( @@ -624,8 +624,8 @@ public function testProcessFieldRelationsRemovesRelations() public function testProcessFieldRelationsWhenRelationFieldNoLongerExists() { $existingRelations = [ - $this->getStubbedRelation(2, Relation::FIELD, 43, 17), - $this->getStubbedRelation(2, Relation::ASSET, 44, 18), + $this->getStubbedRelation(2, RelationType::FIELD->value, 43, 17), + $this->getStubbedRelation(2, RelationType::ASSET->value, 44, 18), ]; $contentTypeMock = $this->createMock(ContentType::class);