Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateItemsStockUponConfigChangeObserverTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class UpdateItemsStockUponConfigChangeObserverTest extends \PHPUnit\Framework\TestCase
11 {
15  protected $observer;
16 
20  protected $resourceStockItem;
21 
25  protected $event;
26 
30  protected $eventObserver;
31 
32  protected function setUp()
33  {
34  $this->resourceStockItem = $this->createMock(\Magento\CatalogInventory\Model\ResourceModel\Stock\Item::class);
35 
36  $this->event = $this->getMockBuilder(\Magento\Framework\Event::class)
37  ->disableOriginalConstructor()
38  ->setMethods(['getWebsite', 'getChangedPaths'])
39  ->getMock();
40 
41  $this->eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
42  ->disableOriginalConstructor()
43  ->setMethods(['getEvent'])
44  ->getMock();
45 
46  $this->eventObserver->expects($this->atLeastOnce())
47  ->method('getEvent')
48  ->will($this->returnValue($this->event));
49 
50  $this->observer = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this))->getObject(
51  \Magento\CatalogInventory\Observer\UpdateItemsStockUponConfigChangeObserver::class,
52  [
53  'resourceStockItem' => $this->resourceStockItem,
54  ]
55  );
56  }
57 
59  {
60  $websiteId = 1;
61  $this->resourceStockItem->expects($this->once())->method('updateSetOutOfStock');
62  $this->resourceStockItem->expects($this->once())->method('updateSetInStock');
63  $this->resourceStockItem->expects($this->once())->method('updateLowStockDate');
64 
65  $this->event->expects($this->once())
66  ->method('getWebsite')
67  ->will($this->returnValue($websiteId));
68  $this->event->expects($this->once())
69  ->method('getChangedPaths')
70  ->will($this->returnValue([\Magento\CatalogInventory\Model\Configuration::XML_PATH_MANAGE_STOCK]));
71 
72  $this->observer->execute($this->eventObserver);
73  }
74 }