function it_normalizes_completenesses_and_indexes_them($normalizer, AttributeInterface $attribute, AttributeTranslation $attributeTranslationFr, AttributeTranslation $attributeTranslationEn, CompletenessInterface $completeness, ChannelInterface $channel) { $normalizer->normalize(Argument::any(), 'internal_api', ['a_context_key' => 'context_value'])->willReturn(['missing' => [], 'completeness' => 'normalized_completeness']); $completeness->getChannel()->willReturn($channel); $channel->getCode()->willReturn('mobile', 'print', 'tablet', 'mobile', 'print', 'tablet'); $attribute->getCode()->willReturn('name'); $attribute->getTranslation('en_US')->willReturn($attributeTranslationEn); $attribute->getTranslation('fr_FR')->willReturn($attributeTranslationFr); $attributeTranslationEn->getLabel()->willReturn('labelEn'); $attributeTranslationFr->getLabel()->willReturn('labelFr'); $this->normalize(['en_US' => ['locale' => 'en_US', 'stats' => [], 'channels' => ['mobile' => ['missing' => [$attribute], 'completeness' => $completeness], 'print' => ['missing' => [$attribute], 'completeness' => $completeness], 'tablet' => ['missing' => [$attribute], 'completeness' => $completeness]]], 'fr_FR' => ['locale' => 'fr_FR', 'stats' => [], 'channels' => ['mobile' => ['missing' => [$attribute], 'completeness' => $completeness], 'print' => ['missing' => [$attribute], 'completeness' => $completeness], 'tablet' => ['missing' => [$attribute], 'completeness' => $completeness]]]], 'internal_api', ['a_context_key' => 'context_value'])->shouldReturn([['locale' => 'en_US', 'stats' => [], 'channels' => ['mobile' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness'], 'print' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness'], 'tablet' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness']]], ['locale' => 'fr_FR', 'stats' => [], 'channels' => ['mobile' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness'], 'print' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness'], 'tablet' => ['missing' => [['code' => 'name', 'labels' => ['en_US' => 'labelEn', 'fr_FR' => 'labelFr']]], 'completeness' => 'normalized_completeness']]]]); }
/** * @param AttributeInterface $attribute * @param array $locales * * @return array */ protected function normalizeAttributeLabels(AttributeInterface $attribute, array $locales) { $labels = []; foreach ($locales as $locale) { $labels[$locale] = $attribute->getTranslation($locale)->getLabel(); } return $labels; }
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]); }
/** * @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); } }