diff --git a/app/code/Magento/GoogleAnalytics/Test/Unit/Observer/SetGoogleAnalyticsOnOrderSuccessPageViewObserverTest.php b/app/code/Magento/GoogleAnalytics/Test/Unit/Observer/SetGoogleAnalyticsOnOrderSuccessPageViewObserverTest.php new file mode 100644 index 0000000000000..b3ed16e0c94a2 --- /dev/null +++ b/app/code/Magento/GoogleAnalytics/Test/Unit/Observer/SetGoogleAnalyticsOnOrderSuccessPageViewObserverTest.php @@ -0,0 +1,123 @@ +googleAnalyticsDataMock = $this->getMockBuilder(GaDataHelper::class) + ->disableOriginalConstructor() + ->getMock(); + $this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $this->layoutMock = $this->getMockBuilder(LayoutInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $this->observerMock = $this->getMockBuilder(Observer::class)->getMock(); + $this->eventMock = $this->getMockBuilder(Event::class)->getMock(); + + $objectManager = new ObjectManager($this); + + $this->orderSuccessObserver = $objectManager->getObject( + SetGoogleAnalyticsOnOrderSuccessPageViewObserver::class, + [ + 'storeManager' => $this->storeManagerMock, + 'layout' => $this->layoutMock, + 'googleAnalyticsData' => $this->googleAnalyticsDataMock + ] + ); + } + + public function testExecuteWithNoOrderIds() + { + $this->observerMock->expects($this->once()) + ->method('getEvent') + ->willReturn($this->eventMock); + $this->eventMock->expects($this->once()) + ->method('__call') + ->with( + $this->equalTo('getOrderIds') + ) + ->willReturn([]); + $this->layoutMock->expects($this->never()) + ->method('getBlock'); + + $this->orderSuccessObserver->execute($this->observerMock); + } + + public function testExecuteWithOrderIds() + { + $blockMock = $this->getMockBuilder(AbstractBlock::class) + ->disableOriginalConstructor() + ->getMock(); + $orderIds = [8]; + + $this->observerMock->expects($this->once()) + ->method('getEvent') + ->willReturn($this->eventMock); + $this->eventMock->expects($this->once()) + ->method('__call') + ->with( + $this->equalTo('getOrderIds') + ) + ->willReturn($orderIds); + $this->layoutMock->expects($this->once()) + ->method('getBlock') + ->willReturn($blockMock); + $blockMock->expects($this->once()) + ->method('__call') + ->with( + $this->equalTo('setOrderIds'), + $this->equalTo([$orderIds]) + ); + + $this->orderSuccessObserver->execute($this->observerMock); + } +}