Skip to content

Commit 7bb0eb6

Browse files
author
Stanislav Idolov
authored
ENGCOM-2663: [Forwardport] GoogleAnalytics: Added unit test for order success observer #17204
2 parents ae28cd4 + 3af32a7 commit 7bb0eb6

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\GoogleAnalytics\Test\Unit\Observer;
9+
10+
use Magento\Framework\Event;
11+
use Magento\Framework\Event\Observer;
12+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
13+
use Magento\Framework\View\Element\AbstractBlock;
14+
use Magento\Framework\View\LayoutInterface;
15+
use Magento\GoogleAnalytics\Helper\Data as GaDataHelper;
16+
use Magento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver;
17+
use Magento\Store\Model\StoreManagerInterface;
18+
use PHPUnit\Framework\TestCase;
19+
20+
class SetGoogleAnalyticsOnOrderSuccessPageViewObserverTest extends TestCase
21+
{
22+
/**
23+
* @var Event|\PHPUnit_Framework_MockObject_MockObject
24+
*/
25+
private $eventMock;
26+
27+
/**
28+
* @var Observer|\PHPUnit_Framework_MockObject_MockObject
29+
*/
30+
private $observerMock;
31+
32+
/**
33+
* @var GaDataHelper|\PHPUnit_Framework_MockObject_MockObject
34+
*/
35+
private $googleAnalyticsDataMock;
36+
37+
/**
38+
* @var LayoutInterface|\PHPUnit_Framework_MockObject_MockObject
39+
*/
40+
private $layoutMock;
41+
42+
/**
43+
* @var StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
44+
*/
45+
private $storeManagerMock;
46+
47+
/**
48+
* @var SetGoogleAnalyticsOnOrderSuccessPageViewObserver
49+
*/
50+
private $orderSuccessObserver;
51+
52+
protected function setUp()
53+
{
54+
$this->googleAnalyticsDataMock = $this->getMockBuilder(GaDataHelper::class)
55+
->disableOriginalConstructor()
56+
->getMock();
57+
$this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class)
58+
->disableOriginalConstructor()
59+
->getMock();
60+
$this->layoutMock = $this->getMockBuilder(LayoutInterface::class)
61+
->disableOriginalConstructor()
62+
->getMock();
63+
$this->observerMock = $this->getMockBuilder(Observer::class)->getMock();
64+
$this->eventMock = $this->getMockBuilder(Event::class)->getMock();
65+
66+
$objectManager = new ObjectManager($this);
67+
68+
$this->orderSuccessObserver = $objectManager->getObject(
69+
SetGoogleAnalyticsOnOrderSuccessPageViewObserver::class,
70+
[
71+
'storeManager' => $this->storeManagerMock,
72+
'layout' => $this->layoutMock,
73+
'googleAnalyticsData' => $this->googleAnalyticsDataMock
74+
]
75+
);
76+
}
77+
78+
public function testExecuteWithNoOrderIds()
79+
{
80+
$this->observerMock->expects($this->once())
81+
->method('getEvent')
82+
->willReturn($this->eventMock);
83+
$this->eventMock->expects($this->once())
84+
->method('__call')
85+
->with(
86+
$this->equalTo('getOrderIds')
87+
)
88+
->willReturn([]);
89+
$this->layoutMock->expects($this->never())
90+
->method('getBlock');
91+
92+
$this->orderSuccessObserver->execute($this->observerMock);
93+
}
94+
95+
public function testExecuteWithOrderIds()
96+
{
97+
$blockMock = $this->getMockBuilder(AbstractBlock::class)
98+
->disableOriginalConstructor()
99+
->getMock();
100+
$orderIds = [8];
101+
102+
$this->observerMock->expects($this->once())
103+
->method('getEvent')
104+
->willReturn($this->eventMock);
105+
$this->eventMock->expects($this->once())
106+
->method('__call')
107+
->with(
108+
$this->equalTo('getOrderIds')
109+
)
110+
->willReturn($orderIds);
111+
$this->layoutMock->expects($this->once())
112+
->method('getBlock')
113+
->willReturn($blockMock);
114+
$blockMock->expects($this->once())
115+
->method('__call')
116+
->with(
117+
$this->equalTo('setOrderIds'),
118+
$this->equalTo([$orderIds])
119+
);
120+
121+
$this->orderSuccessObserver->execute($this->observerMock);
122+
}
123+
}

0 commit comments

Comments
 (0)