/** * @param LifecycleEventArgs $args */ public function preRemove(LifecycleEventArgs $args) { if (!$this->enabled) { return; } $entity = $args->getEntity(); $entityClass = ClassUtils::getClass($entity); $event = ProcessTrigger::EVENT_DELETE; if (!$this->triggerCache->hasTrigger($entityClass, $event)) { return; } $triggers = $this->getTriggers($entityClass, $event); foreach ($triggers as $trigger) { // cloned to save all data after flush $this->scheduleProcess($trigger, clone $entity); } $entityId = $this->doctrineHelper->getSingleEntityIdentifier($entity, false); if ($entityId) { $this->removedEntityHashes[] = ProcessJob::generateEntityHash($entityClass, $entityId); } }
/** * @expectedException \LogicException * @expectedExceptionMessage Process trigger cache provider is not defined */ public function testHasTriggerNoProvider() { $this->cache->hasTrigger('UnknownEntity', ProcessTrigger::EVENT_DELETE); }