public function testGetRelations() { $entityName = 'TestEntity'; $expectedRelations = [['name' => 'field']]; $this->fieldProvider->expects($this->once())->method('getRelations')->with($entityName)->will($this->returnValue($expectedRelations)); $this->assertEquals($expectedRelations, $this->helper->getRelations($entityName)); // do not call twice $this->assertEquals($expectedRelations, $this->helper->getRelations($entityName)); }
/** * Finds detached properties in entity and reloads them from UnitOfWork * * @param object $entity doctrine entity * @param int $level maximum nesting level */ public function fixEntityAssociationFields($entity, $level = 0) { if ($level < 0) { return; } // we should use entityFieldProvider through fieldHelper // to get relations data and avoid deleted relations in result list $relations = $this->fieldHelper->getRelations(ClassUtils::getClass($entity)); if (!$relations) { return; } foreach ($relations as $associationMapping) { $fieldName = $associationMapping['name']; $value = $this->propertyAccessor->getValue($entity, $fieldName); if ($value && is_object($value)) { if ($value instanceof Collection) { $this->fixCollectionField($value, $level); } else { $this->fixEntityField($entity, $fieldName, $value, $level); } } } }