public function testSyncRemove()
 {
     $this->eventObserverMock->expects($this->once())->method('getDataObject')->willReturn($this->salesModelMock);
     $this->salesModelMock->expects($this->once())->method('getId')->willReturn('sales-id-value');
     $this->gridAggregatorMock->expects($this->once())->method('purge')->with('sales-id-value');
     $this->unit->execute($this->eventObserverMock);
 }
 public function testAsyncInsertDisabled()
 {
     $this->scopeConfigurationMock->expects($this->once())->method('getValue')->with('dev/grid/async_indexing', 'default', null)->willReturn(false);
     $this->gridAggregatorMock->expects($this->never())->method('refreshBySchedule');
     $this->unit->asyncInsert();
 }
 /**
  * Handles synchronous removing of the entity from
  * corresponding grid on certain events.
  *
  * Used in the next events:
  *
  *  - sales_order_delete_after
  *  - sales_order_invoice_delete_after
  *  - sales_order_shipment_delete_after
  *  - sales_order_creditmemo_delete_after
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $this->entityGrid->purge($observer->getDataObject()->getId());
 }
 /**
  * Handles asynchronous insertion of the new entity into
  * corresponding grid during cron job.
  *
  * Also method is used in the next events:
  *
  * - config_data_dev_grid_async_indexing_disabled
  *
  * Works only if asynchronous grid indexing is enabled
  * in global settings.
  *
  * @return void
  */
 public function asyncInsert()
 {
     if ($this->globalConfig->getValue('dev/grid/async_indexing')) {
         $this->entityGrid->refreshBySchedule();
     }
 }
 public function testSyncInsertDisabled()
 {
     $this->scopeConfigurationMock->expects($this->once())->method('getValue')->with('dev/grid/async_indexing', 'default', null)->willReturn(true);
     $this->gridAggregatorMock->expects($this->never())->method('refresh')->with('sales-id-value');
     $this->unit->execute($this->eventObserverMock);
 }
 /**
  * Handles synchronous insertion of the new entity into
  * corresponding grid on certain events.
  *
  * Used in the next events:
  *
  *  - sales_order_save_after
  *  - sales_order_invoice_save_after
  *  - sales_order_shipment_save_after
  *  - sales_order_creditmemo_save_after
  *
  * Works only if asynchronous grid indexing is disabled
  * in global settings.
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     if (!$this->globalConfig->getValue('dev/grid/async_indexing')) {
         $this->entityGrid->refresh($observer->getObject()->getId());
     }
 }