Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReportProductDeletedTest.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class ReportProductDeletedTest extends \PHPUnit\Framework\TestCase
14 {
18  protected $model;
19 
23  protected $config;
24 
28  protected $systemFactory;
29 
33  protected $systemModel;
34 
38  protected $jsonEncoder;
39 
45  protected function setUp()
46  {
47  $this->config = $this->getMockBuilder(\Magento\NewRelicReporting\Model\Config::class)
48  ->disableOriginalConstructor()
49  ->setMethods(['isNewRelicEnabled'])
50  ->getMock();
51  $this->systemFactory = $this->getMockBuilder(\Magento\NewRelicReporting\Model\SystemFactory::class)
52  ->disableOriginalConstructor()
53  ->setMethods(['create'])
54  ->getMock();
55  $this->systemModel = $this->getMockBuilder(\Magento\NewRelicReporting\Model\System::class)
56  ->disableOriginalConstructor()
57  ->getMock();
58  $this->jsonEncoder = $this->getMockBuilder(\Magento\Framework\Json\EncoderInterface::class)
59  ->getMock();
60  $this->systemFactory->expects($this->any())
61  ->method('create')
62  ->willReturn($this->systemModel);
63 
64  $this->model = new ReportProductDeleted(
65  $this->config,
66  $this->systemFactory,
67  $this->jsonEncoder
68  );
69  }
70 
76  public function testReportProductDeletedModuleDisabledFromConfig()
77  {
79  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
80  ->disableOriginalConstructor()
81  ->getMock();
82  $this->config->expects($this->once())
83  ->method('isNewRelicEnabled')
84  ->willReturn(false);
85 
86  $this->model->execute($eventObserver);
87  }
88 
94  public function testReportProductDeleted()
95  {
96  $testType = 'adminProductChange';
97  $testAction = 'JSON string';
98 
100  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
101  ->disableOriginalConstructor()
102  ->getMock();
103  $this->config->expects($this->once())
104  ->method('isNewRelicEnabled')
105  ->willReturn(true);
106  $event = $this->getMockBuilder(\Magento\Framework\Event::class)
107  ->setMethods(['getProduct'])
108  ->disableOriginalConstructor()
109  ->getMock();
110  $eventObserver->expects($this->once())
111  ->method('getEvent')
112  ->willReturn($event);
113  $product = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
114  ->setMethods(['getId'])
115  ->disableOriginalConstructor()
116  ->getMock();
117  $event->expects($this->once())
118  ->method('getProduct')
119  ->willReturn($product);
120  $this->jsonEncoder->expects($this->once())
121  ->method('encode')
122  ->willReturn($testAction);
123  $this->systemModel->expects($this->once())
124  ->method('setData')
125  ->with(['type' => $testType, 'action' => $testAction])
126  ->willReturnSelf();
127  $this->systemModel->expects($this->once())
128  ->method('save');
129 
130  $this->model->execute($eventObserver);
131  }
132 }