function it_adds_attributes_to_product($entityManager, $builder, AttributeRepository $attRepository, ProductInterface $product, AvailableAttributes $attributes, AbstractAttribute $sku, AbstractAttribute $name, AbstractAttribute $size)
 {
     $attributes->getAttributes()->willReturn([$sku, $name, $size]);
     $builder->addAttributeToProduct($product, $sku)->shouldBeCalled();
     $builder->addAttributeToProduct($product, $name)->shouldBeCalled();
     $builder->addAttributeToProduct($product, $size)->shouldBeCalled();
     $this->addAttributesToProduct($product, $attributes);
 }
 /**
  * Creates required value(s) to add the attribute to the product
  *
  * @param ProductInterface    $product
  * @param AvailableAttributes $availableAttributes
  * @param array               $savingOptions
  */
 public function addAttributesToProduct(ProductInterface $product, AvailableAttributes $availableAttributes, array $savingOptions = [])
 {
     foreach ($availableAttributes->getAttributes() as $attribute) {
         $this->builder->addAttributeToProduct($product, $attribute);
     }
     $options = array_merge(['recalculate' => false, 'schedule' => false], $savingOptions);
     $this->productSaver->save($product, $options);
 }
 /**
  * Creates required value(s) to add the attribute to the product
  *
  * @param ProductInterface    $product
  * @param AvailableAttributes $availableAttributes
  *
  * @return null
  */
 public function addAttributesToProduct(ProductInterface $product, AvailableAttributes $availableAttributes)
 {
     foreach ($availableAttributes->getAttributes() as $attribute) {
         $this->builder->addAttributeToProduct($product, $attribute);
     }
 }