Skip to content

Commit a35a19a

Browse files
author
m.mezhensky
committed
magento magento2# Unit test for Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver
1 parent 03c84ec commit a35a19a

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
namespace Magento\CatalogUrlRewrite\Test\Unit\Observer;
10+
11+
use Magento\Catalog\Model\Product;
12+
use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator;
13+
use Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver;
14+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
15+
use Magento\Framework\Event;
16+
use Magento\Framework\Event\Observer;
17+
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
18+
use Magento\UrlRewrite\Model\UrlPersistInterface;
19+
use PHPUnit\Framework\TestCase;
20+
use PHPUnit\Framework\MockObject\MockObject;
21+
22+
/**
23+
* Unit test for Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver
24+
*/
25+
class ProductProcessUrlRewriteRemovingObserverTest extends TestCase
26+
{
27+
/**
28+
* Testable Object
29+
*
30+
* @var ProductProcessUrlRewriteRemovingObserver
31+
*/
32+
private $observer;
33+
34+
/**
35+
* @var ObjectManager
36+
*/
37+
private $objectManager;
38+
39+
/**
40+
* @var Observer|MockObject
41+
*/
42+
private $observerMock;
43+
44+
/**
45+
* @var Event|MockObject
46+
*/
47+
private $eventMock;
48+
49+
/**
50+
* @var Product|MockObject
51+
*/
52+
private $productMock;
53+
54+
/**
55+
* @var UrlPersistInterface|MockObject
56+
*/
57+
private $urlPersist;
58+
59+
/**
60+
* @inheritdoc
61+
*/
62+
protected function setUp(): void
63+
{
64+
$this->objectManager = new ObjectManager($this);
65+
$this->observerMock = $this->createMock(Observer::class);
66+
67+
$this->eventMock = $this->getMockBuilder(Event::class)
68+
->disableOriginalConstructor()
69+
->setMethods(['getProduct'])
70+
->getMock();
71+
72+
$this->productMock = $this->getMockBuilder(Product::class)
73+
->disableOriginalConstructor()
74+
->setMethods(['getId'])
75+
->getMock();
76+
77+
$this->urlPersist = $this->getMockBuilder(UrlPersistInterface::class)
78+
->disableOriginalConstructor()
79+
->getMock();
80+
81+
$this->observer = $this->objectManager->getObject(
82+
ProductProcessUrlRewriteRemovingObserver::class,
83+
[
84+
'urlPersist' => $this->urlPersist
85+
]
86+
);
87+
}
88+
89+
/**
90+
* Test for execute()
91+
*/
92+
public function testRemoveProductUrlsFromStorage()
93+
{
94+
$productId = 333;
95+
96+
$this->observerMock
97+
->expects($this->once())
98+
->method('getEvent')
99+
->willReturn($this->eventMock);
100+
101+
$this->eventMock
102+
->expects($this->once())
103+
->method('getProduct')
104+
->willReturn($this->productMock);
105+
106+
$this->productMock
107+
->expects($this->exactly(2))
108+
->method('getId')
109+
->willReturn($productId);
110+
111+
$this->urlPersist->expects($this->once())
112+
->method('deleteByData')
113+
->with([
114+
UrlRewrite::ENTITY_ID => $productId,
115+
UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE,
116+
]);
117+
118+
$this->observer->execute($this->observerMock);
119+
}
120+
}

0 commit comments

Comments
 (0)