public function testGetEntityIdentifierFieldNamesForClassNotManageableEntity() { $class = 'FooEntity'; $this->setExpectedException('Oro\\Bundle\\EntityBundle\\Exception\\NotManageableEntityException', sprintf('Entity class "%s" is not manageable', $class)); $this->registry->expects($this->once())->method('getManagerForClass')->with($class)->will($this->returnValue(null)); $this->doctrineHelper->getEntityIdentifierFieldNamesForClass($class); }
/** * @param string $entityClass * @param array $fieldsDefinition * @param array $filterFieldsConfig */ protected function filterAssociations($entityClass, &$fieldsDefinition, &$filterFieldsConfig) { $metadata = $this->doctrineHelper->getEntityMetadataForClass($entityClass); $associationsMapping = $metadata->getAssociationMappings(); foreach ($associationsMapping as $fieldName => $mapping) { $identifierFieldNames = $this->doctrineHelper->getEntityIdentifierFieldNamesForClass($mapping['targetEntity']); if (!isset($filterFieldsConfig[$fieldName]) || (!isset($fieldsDefinition[$fieldName][ConfigUtil::DEFINITION][ConfigUtil::FIELDS]) || !is_array($fieldsDefinition[$fieldName][ConfigUtil::DEFINITION][ConfigUtil::FIELDS]))) { continue; } $associationAllowedFields = $filterFieldsConfig[$fieldName]; foreach ($fieldsDefinition[$fieldName][ConfigUtil::DEFINITION][ConfigUtil::FIELDS] as $name => &$def) { if (in_array($name, $identifierFieldNames, true)) { continue; } if (!in_array($name, $associationAllowedFields, true) && !ConfigUtil::isMetadataProperty($name)) { if (is_array($def)) { $def = array_merge($def, [ConfigUtil::EXCLUDE => true]); } else { $def = [ConfigUtil::EXCLUDE => true]; } } } } }