Skip to content

Commit 738d5b3

Browse files
committed
Added unit test for order success observer in GA
1 parent 7be2b8c commit 738d5b3

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
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\Block;
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+
67+
$objectManager = new ObjectManager($this);
68+
69+
$this->orderSuccessObserver = $objectManager->getObject(
70+
SetGoogleAnalyticsOnOrderSuccessPageViewObserver::class,
71+
[
72+
'storeManager' => $this->storeManagerMock,
73+
'layout' => $this->layoutMock,
74+
'googleAnalyticsData' => $this->googleAnalyticsDataMock
75+
]
76+
);
77+
}
78+
79+
public function testExecuteWithNoOrderIds()
80+
{
81+
$this->observerMock->expects($this->once())
82+
->method('getEvent')
83+
->willReturn($this->eventMock);
84+
$this->eventMock->expects($this->once())
85+
->method('__call')
86+
->with(
87+
$this->equalTo('getOrderIds')
88+
)
89+
->willReturn([]);
90+
$this->layoutMock->expects($this->never())
91+
->method('getBlock');
92+
93+
$this->orderSuccessObserver->execute($this->observerMock);
94+
}
95+
96+
public function testExecuteWithOrderIds()
97+
{
98+
$blockMock = $this->getMockBuilder(AbstractBlock::class)
99+
->disableOriginalConstructor()
100+
->getMock();
101+
$orderIds = [8];
102+
103+
$this->observerMock->expects($this->once())
104+
->method('getEvent')
105+
->willReturn($this->eventMock);
106+
$this->eventMock->expects($this->once())
107+
->method('__call')
108+
->with(
109+
$this->equalTo('getOrderIds')
110+
)
111+
->willReturn($orderIds);
112+
$this->layoutMock->expects($this->once())
113+
->method('getBlock')
114+
->willReturn($blockMock);
115+
$blockMock->expects($this->once())
116+
->method('__call')
117+
->with(
118+
$this->equalTo('setOrderIds'),
119+
$this->equalTo([$orderIds])
120+
);
121+
122+
$this->orderSuccessObserver->execute($this->observerMock);
123+
}
124+
}

0 commit comments

Comments
 (0)