/**
  * @param Attribute $attribute
  * @return array
  */
 public function getLabels(Attribute $attribute)
 {
     $result = [];
     foreach ($attribute->getLabels() as $label) {
         $localeId = $label->getLocale() ? $label->getLocale()->getId() : null;
         $fallback = $label->getFallback();
         if ($fallback) {
             $result[$localeId] = new FallbackType($fallback);
         } else {
             $result[$localeId] = $label->getValue();
         }
     }
     return $result;
 }
 /**
  * @param array|null $view
  * @param Attribute|null $model
  * @param Attribute|null $attribute
  * @dataProvider reverseTransformDataProvider
  */
 public function testReverseTransform($view, $model, Attribute $attribute = null)
 {
     if (!$attribute) {
         $attribute = new Attribute();
     }
     $transformer = new AttributeTransformer($this->managerRegistry, $this->typeRegistry, $attribute);
     $actualModel = $transformer->reverseTransform($view);
     if ($model && $actualModel) {
         // collections should be compared without keys influence
         $model->resetLabels($model->getLabels()->toArray());
         $model->resetProperties($model->getProperties()->toArray());
         $model->resetDefaultValues($model->getDefaultValues()->toArray());
         $model->resetOptions($model->getOptions()->toArray());
         $actualModel->resetLabels($actualModel->getLabels()->toArray());
         $actualModel->resetProperties($actualModel->getProperties()->toArray());
         $actualModel->resetDefaultValues($actualModel->getDefaultValues()->toArray());
         $actualModel->resetOptions($actualModel->getOptions()->toArray());
     }
     $this->assertEquals($model, $actualModel);
 }