/** * Merge fields * * @param EntityData $data */ public function run(EntityData $data) { $masterEntity = $data->getMasterEntity(); foreach ($data->getEntities() as $entity) { if (!$this->doctrineHelper->isEntityEqual($masterEntity, $entity)) { $this->entityManager->remove($entity); } } }
/** * Get entities that are not master. * * @param EntityData $entityData * @return array */ protected function getEntitiesToClear(EntityData $entityData) { $result = array(); $masterEntity = $entityData->getMasterEntity(); foreach ($entityData->getEntities() as $entity) { if (!$this->doctrineHelper->isEntityEqual($masterEntity, $entity)) { $result[] = $entity; } } return $result; }
/** * @expectedException \Oro\Bundle\EntityMergeBundle\Exception\InvalidArgumentException * @expectedExceptionMessage $other argument must be an object, "string" given. */ public function testIsEntityEqualFailsForSecondNotObject() { $this->doctrineHelper->isEntityEqual(new \stdClass(), 'scalar'); }