Skip to content

Commit 88a5e35

Browse files
committed
Unit Tests for observers from Magento_Reports
1 parent 03c84ec commit 88a5e35

File tree

3 files changed

+279
-0
lines changed

3 files changed

+279
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
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\Reports\Test\Unit\Observer;
10+
11+
use Magento\Catalog\Api\Data\ProductInterface;
12+
use Magento\Framework\Event\Observer;
13+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
14+
use Magento\Reports\Model\Event;
15+
use Magento\Reports\Model\ReportStatus;
16+
use Magento\Reports\Observer\EventSaver;
17+
use Magento\Reports\Observer\SendfriendProductObserver;
18+
use PHPUnit\Framework\MockObject\MockObject;
19+
use PHPUnit\Framework\TestCase;
20+
21+
/**
22+
* Unit test for \Magento\Reports\Observer\SendfriendProductObserver
23+
*/
24+
class SendfriendProductObserverTest extends TestCase
25+
{
26+
/**
27+
* @var Observer|MockObject
28+
*/
29+
private $eventObserverMock;
30+
31+
/**
32+
* @var EventSaver|MockObject
33+
*/
34+
private $eventSaverMock;
35+
36+
/**
37+
* @var ReportStatus|MockObject
38+
*/
39+
private $reportStatusMock;
40+
41+
/**
42+
* @var SendfriendProductObserver
43+
*/
44+
private $observer;
45+
46+
/**
47+
* @inheritDoc
48+
*/
49+
protected function setUp()
50+
{
51+
$this->eventObserverMock = $this->createMock(Observer::class);
52+
$this->eventSaverMock = $this->createMock(EventSaver::class);
53+
$this->reportStatusMock = $this->createMock(ReportStatus::class);
54+
55+
$this->observer = (new ObjectManagerHelper($this))->getObject(
56+
SendfriendProductObserver::class,
57+
['eventSaver' => $this->eventSaverMock, 'reportStatus' => $this->reportStatusMock]
58+
);
59+
}
60+
61+
/**
62+
* Test case when report is disabled in config.
63+
*/
64+
public function testExecuteWhenReportIsDisabled()
65+
{
66+
$this->reportStatusMock->expects($this->once())
67+
->method('isReportEnabled')
68+
->with(Event::EVENT_PRODUCT_SEND)
69+
->willReturn(false);
70+
71+
$this->eventSaverMock->expects($this->never())->method('save');
72+
$this->observer->execute($this->eventObserverMock);
73+
}
74+
75+
/**
76+
* Test case when report is enabled in config.
77+
*/
78+
public function testExecuteWhenReportIsEnabled()
79+
{
80+
$eventMock = $this->createPartialMock(Event::class, ['getProduct']);
81+
$eventMock->expects($this->once())
82+
->method('getProduct')
83+
->willReturn($this->createMock(ProductInterface::class));
84+
$this->reportStatusMock->expects($this->once())
85+
->method('isReportEnabled')
86+
->with(Event::EVENT_PRODUCT_SEND)
87+
->willReturn(true);
88+
$this->eventObserverMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
89+
90+
$this->eventSaverMock->expects($this->once())->method('save');
91+
$this->observer->execute($this->eventObserverMock);
92+
}
93+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
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\Reports\Test\Unit\Observer;
10+
11+
use Magento\Catalog\Api\Data\ProductInterface;
12+
use Magento\Framework\Event\Observer;
13+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
14+
use Magento\Reports\Model\Event;
15+
use Magento\Reports\Model\ReportStatus;
16+
use Magento\Reports\Observer\EventSaver;
17+
use Magento\Reports\Observer\WishlistAddProductObserver;
18+
use PHPUnit\Framework\MockObject\MockObject;
19+
use PHPUnit\Framework\TestCase;
20+
21+
/**
22+
* Unit test for \Magento\Reports\Observer\WishlistAddProductObserver
23+
*/
24+
class WishlistAddProductObserverTest extends TestCase
25+
{
26+
/**
27+
* @var Observer|MockObject
28+
*/
29+
private $eventObserverMock;
30+
31+
/**
32+
* @var EventSaver|MockObject
33+
*/
34+
private $eventSaverMock;
35+
36+
/**
37+
* @var ReportStatus|MockObject
38+
*/
39+
private $reportStatusMock;
40+
41+
/**
42+
* @var WishlistAddProductObserver
43+
*/
44+
private $observer;
45+
46+
/**
47+
* @inheritDoc
48+
*/
49+
protected function setUp()
50+
{
51+
$this->eventObserverMock = $this->createMock(Observer::class);
52+
$this->eventSaverMock = $this->createMock(EventSaver::class);
53+
$this->reportStatusMock = $this->createMock(ReportStatus::class);
54+
55+
$this->observer = (new ObjectManagerHelper($this))->getObject(
56+
WishlistAddProductObserver::class,
57+
['eventSaver' => $this->eventSaverMock, 'reportStatus' => $this->reportStatusMock]
58+
);
59+
}
60+
61+
/**
62+
* Test case when report is disabled in config.
63+
*/
64+
public function testExecuteWhenReportIsDisabled()
65+
{
66+
$this->reportStatusMock->expects($this->once())
67+
->method('isReportEnabled')
68+
->with(Event::EVENT_PRODUCT_TO_WISHLIST)
69+
->willReturn(false);
70+
$this->eventSaverMock->expects($this->never())->method('save');
71+
$this->observer->execute($this->eventObserverMock);
72+
}
73+
74+
/**
75+
* Test case when report is enabled in config.
76+
*/
77+
public function testExecuteWhenReportIsEnabled()
78+
{
79+
$this->reportStatusMock->expects($this->once())
80+
->method('isReportEnabled')
81+
->with(Event::EVENT_PRODUCT_TO_WISHLIST)
82+
->willReturn(true);
83+
84+
$eventMock = $this->createPartialMock(Event::class, ['getProduct']);
85+
$eventMock->expects($this->once())
86+
->method('getProduct')
87+
->willReturn($this->createMock(ProductInterface::class));
88+
$this->eventObserverMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
89+
90+
$this->eventSaverMock->expects($this->once())->method('save');
91+
$this->observer->execute($this->eventObserverMock);
92+
}
93+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
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\Reports\Test\Unit\Observer;
10+
11+
use Magento\Framework\Event\Observer;
12+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
13+
use Magento\Reports\Model\Event;
14+
use Magento\Reports\Model\ReportStatus;
15+
use Magento\Reports\Observer\EventSaver;
16+
use Magento\Reports\Observer\WishlistShareObserver;
17+
use Magento\Wishlist\Model\Wishlist;
18+
use PHPUnit\Framework\MockObject\MockObject;
19+
use PHPUnit\Framework\TestCase;
20+
21+
/**
22+
* Unit test for \Magento\Reports\Observer\WishlistShareObserver
23+
*/
24+
class WishlistShareObserverTest extends TestCase
25+
{
26+
/**
27+
* @var Observer|MockObject
28+
*/
29+
private $eventObserverMock;
30+
31+
/**
32+
* @var EventSaver|MockObject
33+
*/
34+
private $eventSaverMock;
35+
36+
/**
37+
* @var ReportStatus|MockObject
38+
*/
39+
private $reportStatusMock;
40+
41+
/**
42+
* @var WishlistShareObserver
43+
*/
44+
private $observer;
45+
46+
/**
47+
* @inheritDoc
48+
*/
49+
protected function setUp()
50+
{
51+
$this->eventObserverMock = $this->createMock(Observer::class);
52+
$this->eventSaverMock = $this->createMock(EventSaver::class);
53+
$this->reportStatusMock = $this->createMock(ReportStatus::class);
54+
55+
$this->observer = (new ObjectManagerHelper($this))->getObject(
56+
WishlistShareObserver::class,
57+
['eventSaver' => $this->eventSaverMock, 'reportStatus' => $this->reportStatusMock]
58+
);
59+
}
60+
61+
/**
62+
* Test case when report is disabled in config.
63+
*/
64+
public function testExecuteWhenReportIsDisabled()
65+
{
66+
$this->reportStatusMock->expects($this->once())
67+
->method('isReportEnabled')
68+
->with(Event::EVENT_WISHLIST_SHARE)
69+
->willReturn(false);
70+
$this->eventSaverMock->expects($this->never())->method('save');
71+
$this->observer->execute($this->eventObserverMock);
72+
}
73+
74+
/**
75+
* Test case when report is enabled in config.
76+
*/
77+
public function testExecuteWhenReportIsEnabled()
78+
{
79+
$this->reportStatusMock->expects($this->once())
80+
->method('isReportEnabled')
81+
->with(Event::EVENT_WISHLIST_SHARE)
82+
->willReturn(true);
83+
84+
$eventMock = $this->createPartialMock(Event::class, ['getWishlist']);
85+
$eventMock->expects($this->once())
86+
->method('getWishlist')
87+
->willReturn($this->createMock(Wishlist::class));
88+
$this->eventObserverMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
89+
90+
$this->eventSaverMock->expects($this->once())->method('save');
91+
$this->observer->execute($this->eventObserverMock);
92+
}
93+
}

0 commit comments

Comments
 (0)