function it_updates_a_new_attribute($attrGroupRepo, AttributeInterface $attribute, AttributeTranslation $translation, AttributeGroupInterface $attributeGroup, PropertyAccessor $accessor)
 {
     $attribute->getId()->willReturn(null);
     $attribute->getAttributeType()->willReturn('pim_reference_data_multiselect');
     $data = ['labels' => ['en_US' => 'Test1', 'fr_FR' => 'Test2'], 'group' => 'marketing', 'attributeType' => 'pim_catalog_text'];
     $attribute->setLocale('en_US')->shouldBeCalled();
     $attribute->setLocale('fr_FR')->shouldBeCalled();
     $attribute->getTranslation()->willReturn($translation);
     $translation->setLabel('Test1')->shouldBeCalled();
     $translation->setLabel('Test2')->shouldBeCalled();
     $attrGroupRepo->findOneByIdentifier('marketing')->willReturn($attributeGroup);
     $attribute->setGroup($attributeGroup)->shouldBeCalled();
     $attribute->setAttributeType('pim_catalog_text')->shouldBeCalled();
     $accessor->setValue($attribute, 'attributeType', 'pim_catalog_text');
     $this->update($attribute, $data);
 }
 /**
  * @param AttributeInterface $attribute
  * @param string|null        $data
  */
 protected function setType($attribute, $data)
 {
     if ('' === $data || null === $data) {
         throw new \InvalidArgumentException('attributeType must be filled.');
     }
     try {
         $attributeType = $this->registry->get($data);
         $attribute->setAttributeType($attributeType->getName());
         $attribute->setBackendType($attributeType->getBackendType());
         $attribute->setUnique($attributeType->isUnique());
     } catch (\LogicException $exception) {
         throw new \InvalidArgumentException(sprintf('AttributeType "%s" does not exist.', $data));
     }
 }