function it_sets_a_attribute_data_price_collection_value_to_a_product_value($builder, AttributeInterface $attribute, ProductInterface $product1, ProductInterface $product2, ProductInterface $product3, ProductInterface $product4, ProductValue $productValue, ProductPriceInterface $price)
 {
     $locale = 'fr_FR';
     $scope = 'mobile';
     $data = [['data' => 123.2, 'currency' => 'EUR']];
     $attribute->getCode()->willReturn('attributeCode');
     $builder->addProductValue($product2, $attribute, $locale, $scope)->willReturn($productValue);
     $product1->getValue('attributeCode', $locale, $scope)->shouldBeCalled()->willReturn($productValue);
     $product2->getValue('attributeCode', $locale, $scope)->willReturn(null);
     $product3->getValue('attributeCode', $locale, $scope)->willReturn($productValue);
     $product4->getValue('attributeCode', $locale, $scope)->willReturn($productValue);
     $productValue->getPrices()->willReturn([$price]);
     $price->setData(null)->shouldBeCalled();
     $builder->addPriceForCurrencyWithData($productValue, 'EUR', 123.2)->shouldBeCalled();
     $this->setattributeData($product1, $attribute, $data, ['locale' => $locale, 'scope' => $scope]);
     $this->setattributeData($product2, $attribute, $data, ['locale' => $locale, 'scope' => $scope]);
     $this->setattributeData($product3, $attribute, $data, ['locale' => $locale, 'scope' => $scope]);
     $data = [['data' => 'foo', 'currency' => 'EUR']];
     $builder->addPriceForCurrencyWithData($productValue, 'EUR', 'foo')->shouldBeCalled();
     $this->setattributeData($product4, $attribute, $data, ['locale' => $locale, 'scope' => $scope]);
 }