/**
  * Update data for configurable product configurations
  *
  * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject
  * @param \Magento\Catalog\Model\Product $configurableProduct
  *
  * @return \Magento\Catalog\Model\Product
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function afterInitialize(\Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject, \Magento\Catalog\Model\Product $configurableProduct)
 {
     $configurations = $this->request->getParam('configurations', []);
     $configurations = $this->variationHandler->duplicateImagesForVariations($configurations);
     foreach ($configurations as $productId => $productData) {
         /** @var \Magento\Catalog\Model\Product $product */
         $product = $this->productRepository->getById($productId, false, $this->request->getParam('store', 0));
         $productData = $this->variationHandler->processMediaGallery($product, $productData);
         $product->addData($productData);
         if ($product->hasDataChanges()) {
             $product->save();
         }
     }
     return $configurableProduct;
 }
 /**
  * @dataProvider productDataProviderForProcessMediaGalleryForFillingGallery
  * @param array $productData
  * @param array $expected
  */
 public function testProcessMediaGalleryForFillingGallery($productData, $expected)
 {
     $this->assertEquals($expected, $this->model->processMediaGallery($this->product, $productData));
 }