function it_normalizes_completeness(Completeness $completeness, ChannelInterface $channel, LocaleInterface $locale)
 {
     $channel->getCode()->willReturn('ecommerce');
     $locale->getCode()->willReturn('en_US');
     $completeness->getChannel()->willReturn($channel);
     $completeness->getLocale()->willReturn($locale);
     $completeness->getRatio()->willReturn(42);
     $this->normalize($completeness, 'mongodb_json', [])->shouldReturn(["ecommerce-en_US" => 42]);
 }
 function it_does_not_generate_association_calls_for_given_products_if_associated_product_is_not_complete_nor_enable($webservice, ProductInterface $product, ProductInterface $associatedProduct, Association $association, AssociationType $associationType, Completeness $completeness)
 {
     $webservice->getAssociationsStatus($product)->willReturn(['up_sell' => [], 'cross_sell' => [['sku' => 'sku-011']], 'related' => []]);
     $product->getIdentifier()->willReturn('sku-012');
     $product->getAssociations()->willReturn([$association]);
     $association->getAssociationType()->willReturn($associationType);
     $association->getProducts()->willReturn([$associatedProduct]);
     $associatedProduct->getIdentifier()->willReturn('sku-011');
     $associatedProduct->isEnabled()->willReturn(false);
     $associatedProduct->getCompletenesses()->willReturn([$completeness]);
     $completeness->getRatio()->willReturn(50);
     $associationType->getCode()->willReturn('UPSELL');
     $this->process([$product])->shouldReturn(['remove' => [['type' => 'cross_sell', 'product' => 'sku-012', 'linkedProduct' => 'sku-011', 'identifierType' => 'sku']], 'create' => []]);
 }
 /**
  * Test getter/setter for product property
  */
 public function testGetSetProduct()
 {
     $this->assertNull($this->completeness->getProduct());
     $expectedProduct = new Product();
     $this->assertEntity($this->completeness->setProduct($expectedProduct));
     $this->assertEquals($expectedProduct, $this->completeness->getProduct());
 }
 /**
  * {@inheritDoc}
  */
 public function setProduct(\Pim\Bundle\CatalogBundle\Model\ProductInterface $product)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setProduct', array($product));
     return parent::setProduct($product);
 }