/**
  * {@inheritdoc}
  */
 public function denormalize($data, $class, $format = null, array $context = [])
 {
     /** @var MemberExtendedMergeVar $entity */
     $entity = parent::denormalize($data, $class, $format, $context);
     /** @var StaticSegment $staticSegment */
     $staticSegment = $this->databaseHelper->getEntityReference($entity->getStaticSegment());
     if (!$staticSegment) {
         return $entity;
     }
     $extendedMergeVars = $staticSegment->getSyncedExtendedMergeVars();
     if ($extendedMergeVars->isEmpty()) {
         return $entity;
     }
     $columns = $this->getColumns($staticSegment->getMarketingList());
     $columnAliases = $this->getColumnAliases($staticSegment->getMarketingList());
     $mergeVarValues = [];
     foreach ($extendedMergeVars as $extendedMergeVar) {
         $value = $this->getValue($extendedMergeVar, $data, $columns, $columnAliases);
         if ($value) {
             $mergeVarValues[$extendedMergeVar->getTag()] = $value;
         }
     }
     $this->fieldHelper->setObjectValue($entity, 'merge_var_values', $mergeVarValues);
     return $entity;
 }
Esempio n. 2
0
 public function testGetEntityReference()
 {
     $entity = new \stdClass();
     $reference = new \stdClass();
     $entityName = get_class($entity);
     $identifier = 1;
     $this->doctrineHelper->expects($this->once())->method('getSingleEntityIdentifier')->with($entity)->will($this->returnValue($identifier));
     $this->doctrineHelper->expects($this->once())->method('getEntityReference')->with($entityName, $identifier)->will($this->returnValue($reference));
     $this->assertEquals($reference, $this->helper->getEntityReference($entity));
 }