Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ApplyRulesTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class ApplyRulesTest extends \PHPUnit\Framework\TestCase
11 {
15  private $productRuleProcessor;
16 
20  private $subject;
21 
25  private $model;
26 
30  private $plugin;
31 
32  protected function setUp()
33  {
34  $this->productRuleProcessor = $this
35  ->getMockBuilder(\Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor::class)
36  ->disableOriginalConstructor()
37  ->getMock();
38 
39  $this->subject = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product::class)
40  ->disableOriginalConstructor()
41  ->getMock();
42 
43  $this->model = $this->getMockForAbstractClass(
44  \Magento\Framework\Model\AbstractModel::class,
45  [],
46  '',
47  false,
48  true,
49  true,
50  ['getIsMassupdate', 'getId']
51  );
52 
53  $this->plugin = (new ObjectManager($this))->getObject(
54  \Magento\CatalogRule\Plugin\Indexer\Product\Save\ApplyRules::class,
55  [
56  'productRuleProcessor' => $this->productRuleProcessor,
57  ]
58  );
59  }
60 
61  public function testAfterSave()
62  {
63  $this->model->expects($this->once())->method('getIsMassupdate')->willReturn(null);
64  $this->model->expects($this->once())->method('getId')->willReturn(1);
65 
66  $this->productRuleProcessor->expects($this->once())->method('reindexRow')->willReturnSelf();
67 
68  $this->assertSame(
69  $this->subject,
70  $this->plugin->afterSave($this->subject, $this->subject, $this->model)
71  );
72  }
73 }