function it_normalizes_given_option(AttributeOption $option, AttributeOption $optionUS, AttributeOption $optionFR, AttributeOption $optionDE, AttributeOptionValue $optionValueUS, AttributeOptionValue $optionValueFR, AttributeOptionValue $optionValueDE, Attribute $attribute, MappingCollection $storeViewMapping) { $magentoStoreViews = [['code' => 'default', 'store_id' => 1], ['code' => 'fr_fr', 'store_id' => 2], ['code' => 'test', 'store_id' => 3]]; $storeViewMapping->getTarget('en_US')->willReturn('en_us'); $storeViewMapping->getTarget('fr_FR')->willReturn('fr_fr'); $storeViewMapping->getTarget('de_DE')->willReturn('test'); $option->getCode()->willReturn('red'); $option->getOptionValues()->willReturn([$optionValueUS, $optionValueFR, $optionValueDE]); $option->getSortOrder()->willReturn(1); $option->setLocale('en_US')->willReturn($optionUS); $optionUS->getOptionValue()->willReturn($optionValueUS); $optionValueUS->getLocale()->willReturn('en_US'); $optionValueUS->getLabel()->willReturn('Red'); $option->setLocale('fr_FR')->willReturn($optionFR); $optionFR->getOptionValue()->willReturn($optionValueFR); $optionValueFR->getLocale()->willReturn('fr_FR'); $optionValueFR->getLabel()->willReturn('Rouge'); $option->setLocale('de_DE')->willReturn($optionDE); $optionDE->getOptionValue()->willReturn($optionValueDE); $optionValueDE->getLocale()->willReturn('de_DE'); $optionValueDE->getLabel()->willReturn('Rot'); $option->getAttribute()->willReturn($attribute); $attribute->getCode()->willReturn('color'); $this->normalize($option, Argument::any(), ['magentoStoreViews' => $magentoStoreViews, 'storeViewMapping' => $storeViewMapping, 'channel' => 'magento', 'defaultLocale' => 'en_US', 'attributeCode' => 'attribute_code'])->shouldReturn(['attribute_code', ['label' => [['store_id' => '0', 'value' => 'red'], ['store_id' => '1', 'value' => 'Red'], ['store_id' => '2', 'value' => 'Rouge'], ['store_id' => '3', 'value' => 'Rot']], 'order' => 1]]); }
/** * get options locale. * * @param AttributeOption $option * * @return array */ protected function getOptionLocales(AttributeOption $option) { $locales = []; foreach ($option->getOptionValues() as $optionValue) { $locales[] = $optionValue->getLocale(); } return $locales; }
/** * Returns an array containing the label values * * @param AttributeOption $entity * @param array $context * * @return array */ protected function normalizeLabel(AttributeOption $entity, $context) { $labels = array_fill_keys($context['locales'], ''); foreach ($entity->getOptionValues() as $translation) { $labels[$translation->getLocale()] = $translation->getValue(); } return array('label' => $labels); }
function it_normalizes_attribute_option(AttributeOption $option, AttributeOptionValue $valueUs, AttributeOptionValue $valueFr) { $option->getId()->willReturn(42); $option->getCode()->willReturn('red'); $valueUs->getLocale()->willReturn('en_US'); $valueUs->getValue()->willReturn('Red'); $valueFr->getLocale()->willReturn('fr_FR'); $valueFr->getValue()->willReturn('Rouge'); $option->getOptionValues()->willReturn([$valueUs, $valueFr]); $this->normalize($option, 'mongodb_json', [])->shouldReturn(['id' => 42, 'code' => 'red', 'optionValues' => ['en_US' => ['value' => 'Red', 'locale' => 'en_US'], 'fr_FR' => ['value' => 'Rouge', 'locale' => 'fr_FR']]]); }
/** * {@inheritdoc} */ protected function normalizeLabel(AttributeOption $entity, $context) { $labels = array(); foreach ($context['locales'] as $locale) { $labels[sprintf('label-%s', $locale)] = ''; } foreach ($entity->getOptionValues() as $translation) { $labels[sprintf('label-%s', $translation->getLocale())] = $translation->getValue(); } return $labels; }
function it_normalizes_the_whole_option(AttributeOption $option, AbstractAttribute $attribute, AttributeOptionValue $valueEn, AttributeOptionValue $valueFr) { $option->getCode()->willReturn('red'); $option->getAttribute()->willReturn($attribute); $option->isDefault()->willReturn(true); $attribute->getCode()->willReturn('color'); $option->getOptionValues()->willReturn(['en_US' => $valueEn, 'fr_FR' => $valueFr]); $valueEn->getLocale()->willReturn('en_US'); $valueEn->getValue()->willReturn('Red'); $valueFr->getLocale()->willReturn('fr_FR'); $valueFr->getValue()->willReturn('Rouge'); $this->normalize($option, null, ['locales' => ['en_US', 'fr_FR', 'de_DE']])->shouldReturn(['attribute' => 'color', 'code' => 'red', 'default' => '1', 'label-en_US' => 'Red', 'label-fr_FR' => 'Rouge', 'label-de_DE' => '']); }
/** * {@inheritDoc} */ public function getOptionValues() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getOptionValues', array()); return parent::getOptionValues(); }