示例#1
0
 /**
  * {@inheritdoc}
  */
 public function normalize($object, $format = null, array $context = array())
 {
     $result = parent::normalize($object, $format, $context);
     foreach (static::$socialFields as $socialType => $fieldName) {
         if (!empty($result[$fieldName])) {
             $result[$fieldName] = $this->socialUrlFormatter->getSocialUrl($socialType, $result[$fieldName]);
         }
     }
     return $result;
 }
 /**
  * @dataProvider normalizeDataProvider
  * @param object $object
  * @param array $context
  * @param array $fields
  * @param array $fieldsImportConfig
  * @param array $result
  */
 public function testNormalize($object, $context, $fields, $fieldsImportConfig, $result)
 {
     $format = null;
     $entityName = get_class($object);
     $fieldsValueMap = [$entityName => $fields, 'DateTime' => []];
     $this->fieldHelper->expects($this->atLeastOnce())->method('getFields')->will($this->returnCallback(function ($className) use($fieldsValueMap) {
         if (empty($fieldsValueMap[$className])) {
             return [];
         }
         return $fieldsValueMap[$className];
     }));
     $this->fieldHelper->expects($this->any())->method('getObjectValue')->will($this->returnCallback(function ($object, $field) {
         $propertyAccessor = PropertyAccess::createPropertyAccessor();
         return $propertyAccessor->getValue($object, $field);
     }));
     $configValueMap = [];
     $normalizedMap = [];
     $hasConfigMap = [];
     foreach ($fields as $field) {
         $fieldName = $field['name'];
         if (isset($field['normalizedValue'])) {
             $fieldValue = $object->{$fieldName};
             $fieldContext = $context;
             if (isset($field['fieldContext'])) {
                 $fieldContext = $field['fieldContext'];
             }
             $normalizedMap[] = [$fieldValue, null, $fieldContext, $field['normalizedValue']];
         }
         if (isset($field['related_entity_type'])) {
             $hasConfigMap[] = [$field['related_entity_type'], true];
         }
         foreach ($fieldsImportConfig[$fieldName] as $configKey => $configValue) {
             $configValueMap[] = [$entityName, $fieldName, $configKey, null, $configValue];
         }
     }
     $this->fieldHelper->expects($this->any())->method('getConfigValue')->will($this->returnValueMap($configValueMap));
     if ($hasConfigMap) {
         $this->fieldHelper->expects($this->any())->method('hasConfig')->will($this->returnValue($hasConfigMap));
     }
     $serializer = $this->getMockBuilder('Oro\\Bundle\\ImportExportBundle\\Serializer\\Serializer')->disableOriginalConstructor()->getMock();
     if ($normalizedMap) {
         $serializer->expects($this->atLeastOnce())->method('normalize')->will($this->returnValueMap($normalizedMap));
     }
     $this->normalizer->setSerializer($serializer);
     $this->assertEquals($result, $this->normalizer->normalize($object, $format, $context));
 }