Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReportProductSavedToNewRelicTest.php
Go to the documentation of this file.
1 <?php
7 
10 
14 class ReportProductSavedToNewRelicTest extends \PHPUnit\Framework\TestCase
15 {
19  protected $model;
20 
24  protected $config;
25 
29  protected $newRelicWrapper;
30 
36  protected function setUp()
37  {
38  $this->config = $this->getMockBuilder(\Magento\NewRelicReporting\Model\Config::class)
39  ->disableOriginalConstructor()
40  ->setMethods(['isNewRelicEnabled'])
41  ->getMock();
42  $this->newRelicWrapper = $this->getMockBuilder(\Magento\NewRelicReporting\Model\NewRelicWrapper::class)
43  ->disableOriginalConstructor()
44  ->setMethods(['addCustomParameter'])
45  ->getMock();
46 
47  $this->model = new ReportProductSavedToNewRelic(
48  $this->config,
49  $this->newRelicWrapper
50  );
51  }
52 
58  public function testReportProductSavedToNewRelicModuleDisabledFromConfig()
59  {
61  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
62  ->disableOriginalConstructor()
63  ->getMock();
64  $this->config->expects($this->once())
65  ->method('isNewRelicEnabled')
66  ->willReturn(false);
67 
68  $this->model->execute($eventObserver);
69  }
70 
76  public function testReportProductSavedToNewRelic()
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(true);
85  $event = $this->getMockBuilder(\Magento\Framework\Event::class)
86  ->setMethods(['getProduct'])
87  ->disableOriginalConstructor()
88  ->getMock();
89  $eventObserver->expects($this->once())
90  ->method('getEvent')
91  ->willReturn($event);
92  $product = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
93  ->disableOriginalConstructor()
94  ->getMock();
95  $event->expects($this->once())
96  ->method('getProduct')
97  ->willReturn($product);
98  $this->newRelicWrapper->expects($this->once())
99  ->method('addCustomParameter')
100  ->willReturn(true);
101 
102  $this->model->execute($eventObserver);
103  }
104 
111  public function testReportProductUpdatedToNewRelic($isNewObject)
112  {
114  $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
115  ->disableOriginalConstructor()
116  ->getMock();
117  $this->config->expects($this->once())
118  ->method('isNewRelicEnabled')
119  ->willReturn(true);
120  $event = $this->getMockBuilder(\Magento\Framework\Event::class)
121  ->setMethods(['getProduct'])
122  ->disableOriginalConstructor()
123  ->getMock();
124  $eventObserver->expects($this->once())
125  ->method('getEvent')
126  ->willReturn($event);
127  $product = $this->getMockBuilder(\Magento\Catalog\Model\Product::class)
128  ->disableOriginalConstructor()
129  ->getMock();
130  $product->expects($this->any())
131  ->method('isObjectNew')
132  ->willReturn($isNewObject);
133  $event->expects($this->once())
134  ->method('getProduct')
135  ->willReturn($product);
136  $this->newRelicWrapper->expects($this->once())
137  ->method('addCustomParameter')
138  ->willReturn(true);
139 
140  $this->model->execute($eventObserver);
141  }
142 
146  public function actionDataProvider()
147  {
148  return [[true], [false]];
149  }
150 }