Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReportConcurrentAdminsTest.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class ReportConcurrentAdminsTest extends \PHPUnit\Framework\TestCase
14 {
18  protected $model;
19 
23  protected $config;
24 
29 
33  protected $usersFactory;
34 
38  protected $usersModel;
39 
43  protected $jsonEncoder;
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->backendAuthSession = $this->getMockBuilder(\Magento\Backend\Model\Auth\Session::class)
57  ->disableOriginalConstructor()
58  ->setMethods(['isLoggedIn', 'getUser'])
59  ->getMock();
60  $this->usersFactory = $this->getMockBuilder(\Magento\NewRelicReporting\Model\UsersFactory::class)
61  ->disableOriginalConstructor()
62  ->setMethods(['create'])
63  ->getMock();
64  $this->usersModel = $this->getMockBuilder(\Magento\NewRelicReporting\Model\Users::class)
65  ->disableOriginalConstructor()
66  ->getMock();
67  $this->jsonEncoder = $this->getMockBuilder(\Magento\Framework\Json\EncoderInterface::class)
68  ->getMock();
69 
70  $this->usersFactory->expects($this->any())
71  ->method('create')
72  ->willReturn($this->usersModel);
73 
74  $this->model = new ReportConcurrentAdmins(
75  $this->config,
76  $this->backendAuthSession,
77  $this->usersFactory,
78  $this->jsonEncoder
79  );
80  }
81 
87  public function testReportConcurrentAdminsModuleDisabledFromConfig()
88  {
90  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
91  ->disableOriginalConstructor()
92  ->getMock();
93 
94  $this->config->expects($this->once())
95  ->method('isNewRelicEnabled')
96  ->willReturn(false);
97 
98  $this->model->execute($eventObserver);
99  }
100 
106  public function testReportConcurrentAdminsUserIsNotLoggedIn()
107  {
109  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
110  ->disableOriginalConstructor()
111  ->getMock();
112 
113  $this->config->expects($this->once())
114  ->method('isNewRelicEnabled')
115  ->willReturn(true);
116  $this->backendAuthSession->expects($this->once())
117  ->method('isLoggedIn')
118  ->willReturn(false);
119 
120  $this->model->execute($eventObserver);
121  }
122 
128  public function testReportConcurrentAdmins()
129  {
130  $testAction = 'JSON string';
131 
133  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
134  ->disableOriginalConstructor()
135  ->getMock();
136 
137  $this->config->expects($this->once())
138  ->method('isNewRelicEnabled')
139  ->willReturn(true);
140  $this->backendAuthSession->expects($this->once())
141  ->method('isLoggedIn')
142  ->willReturn(true);
143  $userMock = $this->getMockBuilder(\Magento\User\Model\User::class)->disableOriginalConstructor()->getMock();
144  $this->backendAuthSession->expects($this->once())
145  ->method('getUser')
146  ->willReturn($userMock);
147  $this->jsonEncoder->expects($this->once())
148  ->method('encode')
149  ->willReturn($testAction);
150  $this->usersModel->expects($this->once())
151  ->method('setData')
152  ->with(['type' => 'admin_activity', 'action' => $testAction])
153  ->willReturnSelf();
154  $this->usersModel->expects($this->once())
155  ->method('save');
156 
157  $this->model->execute($eventObserver);
158  }
159 }