Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReportConcurrentUsersToNewRelicTest.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class ReportConcurrentUsersToNewRelicTest extends \PHPUnit\Framework\TestCase
14 {
18  protected $model;
19 
23  protected $config;
24 
28  protected $customerSession;
29 
34 
38  protected $storeManager;
39 
43  protected $newRelicWrapper;
44 
50  protected function setUp()
51  {
52  $this->config = $this->getMockBuilder(\Magento\NewRelicReporting\Model\Config::class)
53  ->disableOriginalConstructor()
54  ->setMethods(['isNewRelicEnabled'])
55  ->getMock();
56  $this->customerSession = $this->getMockBuilder(\Magento\Customer\Model\Session::class)
57  ->disableOriginalConstructor()
58  ->setMethods(['isLoggedIn', 'getCustomerId'])
59  ->getMock();
60  $this->customerRepository = $this->getMockBuilder(\Magento\Customer\Api\CustomerRepositoryInterface::class)
61  ->getMock();
62  $this->storeManager = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)
63  ->getMock();
64  $this->newRelicWrapper = $this->getMockBuilder(\Magento\NewRelicReporting\Model\NewRelicWrapper::class)
65  ->disableOriginalConstructor()
66  ->setMethods(['addCustomParameter'])
67  ->getMock();
68 
69  $this->model = new ReportConcurrentUsersToNewRelic(
70  $this->config,
71  $this->customerSession,
72  $this->customerRepository,
73  $this->storeManager,
74  $this->newRelicWrapper
75  );
76  }
77 
83  public function testReportConcurrentUsersToNewRelicModuleDisabledFromConfig()
84  {
86  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
87  ->disableOriginalConstructor()
88  ->getMock();
89 
90  $this->config->expects($this->once())
91  ->method('isNewRelicEnabled')
92  ->willReturn(false);
93 
94  $this->model->execute($eventObserver);
95  }
96 
102  public function testReportConcurrentUsersToNewRelicUserIsNotLoggedIn()
103  {
105  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
106  ->disableOriginalConstructor()
107  ->getMock();
108 
109  $this->config->expects($this->once())
110  ->method('isNewRelicEnabled')
111  ->willReturn(true);
112  $this->customerSession->expects($this->once())
113  ->method('isLoggedIn')
114  ->willReturn(false);
115  $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)->disableOriginalConstructor()->getMock();
116  $this->storeManager->expects($this->once())
117  ->method('getStore')
118  ->willReturn($storeMock);
119  $websiteMock = $this->getMockBuilder(
120  \Magento\Store\Model\Website::class
121  )->disableOriginalConstructor()->getMock();
122  $this->storeManager->expects($this->once())
123  ->method('getWebsite')
124  ->willReturn($websiteMock);
125  $this->newRelicWrapper->expects($this->exactly(2))
126  ->method('addCustomParameter')
127  ->willReturn(true);
128 
129  $this->model->execute($eventObserver);
130  }
131 
137  public function testReportConcurrentUsersToNewRelic()
138  {
139  $testCustomerId = 1;
140 
142  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
143  ->disableOriginalConstructor()
144  ->getMock();
145 
146  $this->config->expects($this->once())
147  ->method('isNewRelicEnabled')
148  ->willReturn(true);
149  $this->customerSession->expects($this->once())
150  ->method('isLoggedIn')
151  ->willReturn(true);
152  $this->customerSession->expects($this->once())
153  ->method('getCustomerId')
154  ->willReturn($testCustomerId);
155  $customerMock = $this->getMockBuilder(\Magento\Customer\Api\Data\CustomerInterface::class)->getMock();
156  $this->customerRepository->expects($this->once())
157  ->method('getById')
158  ->willReturn($customerMock);
159  $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)->disableOriginalConstructor()->getMock();
160  $this->storeManager->expects($this->once())
161  ->method('getStore')
162  ->willReturn($storeMock);
163  $websiteMock = $this->getMockBuilder(
164  \Magento\Store\Model\Website::class
165  )->disableOriginalConstructor()->getMock();
166  $this->storeManager->expects($this->once())
167  ->method('getWebsite')
168  ->willReturn($websiteMock);
169  $this->newRelicWrapper->expects($this->exactly(4))
170  ->method('addCustomParameter')
171  ->willReturn(true);
172 
173  $this->model->execute($eventObserver);
174  }
175 }