Exemplo n.º 1
0
 /**
  * Test resolve image.
  *
  * @dataProvider dataResolveImage
  */
 public function testResolveImage($implementsVariant, $imageVariantResolverResult, $imageProductResolverResult, $result)
 {
     $purchasable = $implementsVariant ? $this->prophesize('Elcodi\\Component\\Product\\Entity\\Interfaces\\VariantInterface') : $this->prophesize('Elcodi\\Component\\Product\\Entity\\Interfaces\\PurchasableInterface');
     $productImageResolver = $this->getProductImageMock($imageProductResolverResult);
     if ($implementsVariant) {
         $purchasable->getProduct()->willReturn($this->prophesize('Elcodi\\Component\\Product\\Entity\\Interfaces\\ProductInterface')->reveal());
     }
     $purchasable = $purchasable->reveal();
     $imageResolver = $this->prophesize('Elcodi\\Component\\Media\\Services\\ImageResolver');
     $imageResolver->resolveImage($purchasable)->willReturn($imageVariantResolverResult);
     $variantImageResolver = new VariantImageResolver($imageResolver->reveal());
     $variantImageResolver->addPurchasableImageResolver($productImageResolver);
     $this->assertSame($result, $variantImageResolver->getValidImage($purchasable));
     $purchasableImageResolver = new PurchasableImageResolver($imageResolver);
     $purchasableImageResolver->addPurchasableImageResolver($variantImageResolver);
     $purchasableImageResolver->addPurchasableImageResolver($productImageResolver);
     $this->assertSame($result, $purchasableImageResolver->getValidImage($purchasable));
 }