/** * @param EmailBodyAdded $event */ public function updateActivityDescription(EmailBodyAdded $event) { $email = $event->getEmail(); $activityList = $this->chainProvider->getUpdatedActivityList($email, $this->entityManager); if ($activityList) { $this->entityManager->persist($activityList); } }
/** * @param array $updatedEntities * @param EntityManager $entityManager * @return bool */ public function processUpdatedEntities($updatedEntities, EntityManager $entityManager) { if (!empty($updatedEntities)) { $metaData = $entityManager->getClassMetadata(ActivityList::ENTITY_CLASS); foreach ($updatedEntities as $entity) { $activityList = $this->chainProvider->getUpdatedActivityList($entity, $entityManager); if ($activityList) { $entityManager->persist($activityList); $entityManager->getUnitOfWork()->computeChangeSet($metaData, $activityList); } } return true; } return false; }
/** * @param EmailBodyAdded $event * * @throws \Exception */ public function updateActivityDescription(EmailBodyAdded $event) { $this->entityManager->beginTransaction(); try { $email = $event->getEmail(); $activityList = $this->chainProvider->getUpdatedActivityList($email, $this->entityManager); if ($activityList) { $this->entityManager->persist($activityList); $this->entityManager->flush(); } $this->entityManager->commit(); } catch (\Exception $e) { $this->entityManager->rollback(); throw $e; } }
public function testGetUpdatedActivityList() { $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $repo = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Entity\\Repository\\ActivityListRepository')->disableOriginalConstructor()->getMock(); $activityEntity = new ActivityList(); $repo->expects($this->once())->method('findOneBy')->willReturn($activityEntity); $em->expects($this->once())->method('getRepository')->willReturn($repo); $testEntity = new \stdClass(); $testEntity->subject = 'testSubject'; $testEntity->description = 'testDescription'; $this->testActivityProvider->setTargets([new \stdClass()]); $this->doctrineHelper->expects($this->any())->method('getEntityClass')->willReturnCallback(function ($entity) use($testEntity) { if ($entity === $testEntity) { return 'Test\\Entity'; } return get_class($entity); }); $result = $this->provider->getUpdatedActivityList($testEntity, $em); $this->assertEquals('update', $result->getVerb()); $this->assertEquals('testSubject', $result->getSubject()); }