/** * @param object $entity * @param array $searchContext * * @return object|null */ protected function findExistingEntityByIdentityFields($entity, array $searchContext = []) { $entityName = ClassUtils::getClass($entity); $identityValues = $searchContext; $identityValues += $this->fieldHelper->getIdentityValues($entity); foreach ($identityValues as $fieldName => $value) { if ($value !== null || $this->fieldHelper->isRequiredIdentityField($entityName, $fieldName)) { continue; } unset($identityValues[$fieldName]); } return $this->findEntityByIdentityValues($entityName, $identityValues); }
/** * @dataProvider isRequiredIdentityFieldProvider */ public function testIsRequiredIdentityField($identityValue, $expectedResult) { $this->config['stdClass'] = ['testField' => ['identity' => $identityValue]]; $this->assertEquals($expectedResult, $this->helper->isRequiredIdentityField('stdClass', 'testField')); }