public function testGetMultiOwnerManyToManyAssociationTargets() { $associationOwnerClass = 'TestAssociationOwnerClass'; $associationKind = 'TestAssociationKind'; $scope = 'TestScope'; $attribute = 'TestAttribute'; $association1 = ExtendHelper::buildAssociationName('TargetClass1', $associationKind); $association2 = ExtendHelper::buildAssociationName('TargetClass2', $associationKind); $relations = ['manyToMany|TestAssociationOwnerClass|TargetClass1|' . $association1 => ['field_id' => new FieldConfigId('extend', $associationOwnerClass, $association1, RelationType::MANY_TO_MANY), 'owner' => true, 'target_entity' => 'TargetClass1'], 'manyToMany|TestAssociationOwnerClass|TargetClass2|' . $association2 => ['field_id' => new FieldConfigId('extend', $associationOwnerClass, $association2, RelationType::MANY_TO_MANY), 'owner' => true, 'target_entity' => 'TargetClass2'], 'manyToMany|TestAssociationOwnerClass|TargetClass1|relation1' => ['field_id' => new FieldConfigId('extend', $associationOwnerClass, 'relation1', RelationType::MANY_TO_MANY), 'owner' => true, 'target_entity' => 'TargetClass1']]; $ownerExtendConfig = new Config(new EntityConfigId('extend', $associationOwnerClass)); $ownerExtendConfig->set('relation', $relations); $target1Config = new Config(new EntityConfigId($scope, 'TargetClass1')); $target1Config->set($attribute, [$associationOwnerClass, 'AnotherOwnerClass']); $target2Config = new Config(new EntityConfigId($scope, 'TargetClass2')); $extendProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $scopeProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $this->configManager->expects($this->any())->method('getProvider')->willReturnMap([['extend', $extendProvider], [$scope, $scopeProvider]]); $extendProvider->expects($this->once())->method('getConfig')->with($associationOwnerClass)->willReturn($ownerExtendConfig); $scopeProvider->expects($this->any())->method('getConfig')->willReturnMap([['TargetClass1', null, $target1Config], ['TargetClass2', null, $target2Config]]); $result = $this->associationManager->getAssociationTargets($associationOwnerClass, $this->associationManager->getMultiOwnerFilter($scope, $attribute), RelationType::MANY_TO_MANY, $associationKind); $this->assertEquals(['TargetClass1' => $association1], $result); }
/** * Returns the list of fields responsible to store activity associations for the given activity entity type * * @param string $activityClassName The FQCN of the activity entity * * @return array [target_entity_class => field_name] */ public function getActivityTargets($activityClassName) { return $this->associationManager->getAssociationTargets($activityClassName, $this->associationManager->getMultiOwnerFilter('activity', 'activities'), RelationType::MANY_TO_MANY, ActivityScope::ASSOCIATION_KIND); }