/**
  * @return array
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function reverseTransformDataProvider()
 {
     // full attribute data
     $fullAttribute = $this->getFullAttribute();
     $fullInputAttribute = new Attribute();
     $fullInputAttribute->setType(Integer::NAME);
     // localized attribute data
     $localizedAttribute = new Attribute();
     $localizedAttribute->setCode('localized')->setType(Text::NAME)->setLocalized(true)->addLabel($this->createLabel(null, 'localized_label'))->addDefaultValue($this->createDefaultValue(null, null)->setText('localized_value'));
     $localizedInputAttribute = new Attribute();
     $localizedInputAttribute->setType(Text::NAME);
     // not localized attribute data
     $notLocalizedAttribute = new Attribute();
     $notLocalizedAttribute->setCode('not_localized')->setType(Text::NAME)->setLocalized(false)->addLabel($this->createLabel(null, 'not_localized_label'))->addDefaultValue($this->createDefaultValue(null, null)->setText('not_localized_value'));
     $notLocalizedInputAttribute = new Attribute();
     $notLocalizedInputAttribute->setType(Text::NAME);
     $fullView = $this->getFullView();
     // option attribute data
     $optionAttribute = $this->getOptionAttribute();
     $optionInputAttribute = new Attribute();
     $optionInputAttribute->setType(Select::NAME);
     $optionInputAttribute->resetOptions($optionAttribute->getOptions());
     $optionView = $this->getOptionView();
     return ['null' => ['view' => null, 'model' => null], 'full localized attribute' => ['view' => $fullView, 'model' => $fullAttribute, 'attribute' => $fullInputAttribute], 'normalize from not localized to localized' => ['view' => ['code' => 'localized', 'type' => Text::NAME, 'localized' => true, 'containHtml' => false, 'sharingType' => null, 'required' => false, 'unique' => false, 'validation' => null, 'label' => [null => 'localized_label'], 'defaultValue' => 'localized_value'], 'model' => $localizedAttribute, 'attribute' => $localizedInputAttribute], 'normalize from localized to not localized' => ['view' => ['code' => 'not_localized', 'type' => Text::NAME, 'localized' => false, 'containHtml' => false, 'sharingType' => null, 'required' => false, 'unique' => false, 'validation' => null, 'label' => [null => 'not_localized_label'], 'defaultValue' => [null => 'not_localized_value']], 'model' => $notLocalizedAttribute, 'attribute' => $notLocalizedInputAttribute], 'option attribute' => ['view' => $optionView, 'model' => $optionAttribute, 'attribute' => $optionInputAttribute]];
 }
 /**
  * @expectedException \LogicException
  * @expectedExceptionMessage Several attribute options found by the same option ID.
  */
 public function testGetOptionByIdException()
 {
     $firstOption = $this->createAttributeOption(1);
     $secondOption = $this->createAttributeOption(1);
     $attribute = new Attribute();
     $attribute->resetOptions([$firstOption, $secondOption]);
     $attribute->getOptionById(1);
 }