6 declare(strict_types=1);
11 use \Magento\CatalogUrlRewrite\Model\ProductUrlPathGenerator;
21 private $productUrlPathGenerator;
24 private $productUrlKeyAutogeneratorObserver;
29 protected function setUp(): void
31 $this->productUrlPathGenerator = $this->getMockBuilder(ProductUrlPathGenerator::class)
32 ->disableOriginalConstructor()
33 ->setMethods([
'getUrlKey'])
36 $this->productUrlKeyAutogeneratorObserver = (
new ObjectManagerHelper($this))->getObject(
37 \
Magento\CatalogUrlRewrite\
Observer\ProductUrlKeyAutogeneratorObserver::class,
39 'productUrlPathGenerator' => $this->productUrlPathGenerator
47 public function testExecuteWithUrlKey(): void
49 $urlKey =
'product_url_key';
52 ->disableOriginalConstructor()
53 ->setMethods([
'setUrlKey'])
55 $product->expects($this->atLeastOnce())->method(
'setUrlKey')->with($urlKey);
56 $event = $this->getMockBuilder(\
Magento\Framework\Event::class)
57 ->disableOriginalConstructor()
58 ->setMethods([
'getProduct'])
60 $event->expects($this->atLeastOnce())->method(
'getProduct')->willReturn(
$product);
63 ->disableOriginalConstructor()
64 ->setMethods([
'getEvent'])
66 $observer->expects($this->atLeastOnce())->method(
'getEvent')->willReturn($event);
67 $this->productUrlPathGenerator->expects($this->atLeastOnce())->method(
'getUrlKey')->with(
$product)
68 ->willReturn($urlKey);
70 $this->productUrlKeyAutogeneratorObserver->execute(
$observer);
76 public function testExecuteWithEmptyUrlKey(): void
79 ->disableOriginalConstructor()
80 ->setMethods([
'setUrlKey'])
82 $product->expects($this->never())->method(
'setUrlKey');
83 $event = $this->getMockBuilder(\
Magento\Framework\Event::class)
84 ->disableOriginalConstructor()
85 ->setMethods([
'getProduct'])
87 $event->expects($this->atLeastOnce())->method(
'getProduct')->willReturn(
$product);
90 ->disableOriginalConstructor()
91 ->setMethods([
'getEvent'])
93 $observer->expects($this->atLeastOnce())->method(
'getEvent')->willReturn($event);
94 $this->productUrlPathGenerator->expects($this->atLeastOnce())->method(
'getUrlKey')->with(
$product)
97 $this->productUrlKeyAutogeneratorObserver->execute(
$observer);