/** * {@inheritdoc} */ public function build(ArchetypeSubjectInterface $subject) { if (null === ($archetype = $subject->getArchetype())) { return; } $this->createAndAssignAttributes($archetype, $subject); $this->createAndAssignOptions($archetype, $subject); }
function it_creates_new_values_only_for_non_existing_attributes($attributeValueFactory, ArchetypeInterface $archetype, ArchetypeSubjectInterface $subject, AttributeInterface $attribute, AttributeValueInterface $attributeValue, OptionInterface $option) { $archetype->getAttributes()->willReturn(array($attribute))->shouldBeCalled(); $archetype->getOptions()->willReturn(array($option))->shouldBeCalled(); $attribute->getCode()->willReturn('test'); $subject->getAttributeByCode('test')->shouldBeCalled()->willReturn($attributeValue); $attributeValueFactory->createNew()->shouldNotBeCalled(); $attributeValue->setAttribute($attribute)->shouldNotBeCalled(); $subject->getArchetype()->willReturn($archetype); $subject->addAttribute(Argument::any())->shouldNotBeCalled(); $subject->addOption($option)->shouldBeCalled(); $this->build($subject); }