Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ConsumerRunnerTest.php
Go to the documentation of this file.
1 <?php
8 
13 
17 class ConsumerRunnerTest extends \PHPUnit\Framework\TestCase
18 {
20  private $objectManager;
21 
25  private $consumerRunner;
26 
30  private $consumerFactoryMock;
31 
35  private $maintenanceModeMock;
36 
40  protected function setUp()
41  {
42  $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
43  $this->consumerFactoryMock = $this->getMockBuilder(\Magento\Framework\MessageQueue\ConsumerFactory::class)
44  ->disableOriginalConstructor()
45  ->getMock();
46  $this->maintenanceModeMock = $this->getMockBuilder(\Magento\Framework\App\MaintenanceMode::class)
47  ->disableOriginalConstructor()
48  ->getMock();
49  $this->consumerRunner = $this->objectManager->getObject(
50  \Magento\MessageQueue\Model\ConsumerRunner::class,
51  [
52  'consumerFactory' => $this->consumerFactoryMock,
53  'maintenanceMode' => $this->maintenanceModeMock
54  ]
55  );
56  parent::setUp();
57  }
58 
64  public function testMagicMethod()
65  {
66  $isMaintenanceModeOn = false;
68  $consumerMock = $this->getMockBuilder(\Magento\Framework\MessageQueue\ConsumerInterface::class)->getMock();
69  $consumerMock->expects($this->once())->method('process');
70  $consumerName = 'someConsumerName';
71  $this->consumerFactoryMock
72  ->expects($this->once())
73  ->method('get')
74  ->with($consumerName)
75  ->willReturn($consumerMock);
76  $this->maintenanceModeMock->expects($this->once())->method('isOn')->willReturn($isMaintenanceModeOn);
77 
78  $this->consumerRunner->$consumerName();
79  }
80 
89  {
90  $consumerName = 'nonDeclaredConsumer';
91  $this->consumerFactoryMock
92  ->expects($this->once())
93  ->method('get')
94  ->with($consumerName)
95  ->willThrowException(new LocalizedException(new Phrase("Some exception")));
96 
97  $this->consumerRunner->$consumerName();
98  }
99 
105  public function testMagicMethodMaintenanceModeIsOn()
106  {
107  $isMaintenanceModeOn = true;
109  $consumerMock = $this->getMockBuilder(\Magento\Framework\MessageQueue\ConsumerInterface::class)->getMock();
110  $consumerMock->expects($this->never())->method('process');
111  $consumerName = 'someConsumerName';
112  $this->consumerFactoryMock
113  ->expects($this->once())
114  ->method('get')
115  ->with($consumerName)
116  ->willReturn($consumerMock);
117  $this->maintenanceModeMock->expects($this->once())->method('isOn')->willReturn($isMaintenanceModeOn);
118 
119  $this->consumerRunner->$consumerName();
120  }
121 }