Skip to content

Commit 7256c67

Browse files
author
m.mezhensky
committed
Unit test for Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver
1 parent a35a19a commit 7256c67

File tree

1 file changed

+41
-13
lines changed

1 file changed

+41
-13
lines changed

app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/ProductProcessUrlRewriteRemovingObserverTest.php

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,24 @@
1111
use Magento\Catalog\Model\Product;
1212
use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator;
1313
use Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver;
14-
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1514
use Magento\Framework\Event;
1615
use Magento\Framework\Event\Observer;
17-
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
16+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1817
use Magento\UrlRewrite\Model\UrlPersistInterface;
19-
use PHPUnit\Framework\TestCase;
18+
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
2019
use PHPUnit\Framework\MockObject\MockObject;
20+
use PHPUnit\Framework\TestCase;
2121

2222
/**
2323
* Unit test for Magento\CatalogUrlRewrite\Observer\ProductProcessUrlRewriteRemovingObserver
2424
*/
2525
class ProductProcessUrlRewriteRemovingObserverTest extends TestCase
2626
{
27+
/*
28+
* Stub product ID
29+
*/
30+
private const STUB_PRODUCT_ID = 333;
31+
2732
/**
2833
* Testable Object
2934
*
@@ -54,7 +59,7 @@ class ProductProcessUrlRewriteRemovingObserverTest extends TestCase
5459
/**
5560
* @var UrlPersistInterface|MockObject
5661
*/
57-
private $urlPersist;
62+
private $urlPersistMock;
5863

5964
/**
6065
* @inheritdoc
@@ -74,25 +79,23 @@ protected function setUp(): void
7479
->setMethods(['getId'])
7580
->getMock();
7681

77-
$this->urlPersist = $this->getMockBuilder(UrlPersistInterface::class)
82+
$this->urlPersistMock = $this->getMockBuilder(UrlPersistInterface::class)
7883
->disableOriginalConstructor()
7984
->getMock();
8085

8186
$this->observer = $this->objectManager->getObject(
8287
ProductProcessUrlRewriteRemovingObserver::class,
8388
[
84-
'urlPersist' => $this->urlPersist
89+
'urlPersist' => $this->urlPersistMock
8590
]
8691
);
8792
}
8893

8994
/**
90-
* Test for execute()
95+
* Test for execute(), covers test case for removing product URLs from storage
9196
*/
92-
public function testRemoveProductUrlsFromStorage()
97+
public function testRemoveProductUrlsFromStorage(): void
9398
{
94-
$productId = 333;
95-
9699
$this->observerMock
97100
->expects($this->once())
98101
->method('getEvent')
@@ -106,15 +109,40 @@ public function testRemoveProductUrlsFromStorage()
106109
$this->productMock
107110
->expects($this->exactly(2))
108111
->method('getId')
109-
->willReturn($productId);
112+
->willReturn(self::STUB_PRODUCT_ID);
110113

111-
$this->urlPersist->expects($this->once())
114+
$this->urlPersistMock->expects($this->once())
112115
->method('deleteByData')
113116
->with([
114-
UrlRewrite::ENTITY_ID => $productId,
117+
UrlRewrite::ENTITY_ID => self::STUB_PRODUCT_ID,
115118
UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE,
116119
]);
117120

118121
$this->observer->execute($this->observerMock);
119122
}
123+
124+
/**
125+
* Test for execute(), covers test case for removing product URLs when the product doesn't have an ID
126+
*/
127+
public function testRemoveProductUrlsWithEmptyProductId()
128+
{
129+
$this->observerMock
130+
->expects($this->once())
131+
->method('getEvent')
132+
->willReturn($this->eventMock);
133+
134+
$this->eventMock
135+
->expects($this->once())
136+
->method('getProduct')
137+
->willReturn($this->productMock);
138+
139+
$this->productMock
140+
->expects($this->once())
141+
->method('getId')
142+
->willReturn(null);
143+
144+
$this->urlPersistMock->expects($this->never())->method('deleteByData');
145+
146+
$this->observer->execute($this->observerMock);
147+
}
120148
}

0 commit comments

Comments
 (0)