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); }