function it_throws_an_exception_if_no_groups_found($attrGroupRepo, AttributeInterface $attribute, AttributeTranslation $translation) { $attribute->getId()->willReturn(null); $attribute->getAttributeType()->willReturn('pim_reference_data_simpleselect'); $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(null); $this->shouldThrow(new \InvalidArgumentException('AttributeGroup "marketing" does not exist'))->during('update', [$attribute, $data]); }
function it_gets_all_product_attributes_and_sets_correct_locale($attributeRepository, $massActionManager, AttributeInterface $attr1, AttributeInterface $attr2, AttributeGroupInterface $attrGroup, LocaleInterface $enLocale) { $enLocale->getCode()->willReturn('en_US'); $this->setLocale($enLocale); $attributeRepository->findWithGroups([], ['conditions' => ['unique' => 0]])->shouldBeCalled()->willReturn([$attr1, $attr2]); $attr1->setLocale('en_US')->shouldBeCalled(); $attr2->setLocale('en_US')->shouldBeCalled(); $attr1->getGroup()->willReturn($attrGroup); $attr2->getGroup()->willReturn($attrGroup); $massActionManager->filterLocaleSpecificAttributes([$attr1, $attr2], 'en_US')->willReturn([$attr1, $attr2]); $attrGroup->setLocale('en_US')->shouldBeCalledTimes(2); $this->getAllAttributes()->shouldReturn([$attr1, $attr2]); }
/** * @param AttributeInterface $attribute * @param array $data */ protected function setLabels(AttributeInterface $attribute, array $data) { foreach ($data as $localeCode => $label) { $attribute->setLocale($localeCode); $translation = $attribute->getTranslation(); $translation->setLabel($label); } }