22 private $resourceMock;
27 private $activeTableSwitcherMock;
32 private $tableSwapperMock;
36 $this->resourceMock = $this->getMockBuilder(\
Magento\Framework\
App\ResourceConnection::class)
37 ->disableOriginalConstructor()
39 $this->activeTableSwitcherMock = $this->getMockBuilder(ActiveTableSwitcher::class)
40 ->disableOriginalConstructor()
42 $this->tableSwapperMock = $this->getMockForAbstractClass(
43 IndexerTableSwapperInterface::class
45 $this->model = new \Magento\CatalogRule\Model\Indexer\ReindexRuleProduct(
47 $this->activeTableSwitcherMock,
48 $this->tableSwapperMock
54 $ruleMock = $this->getMockBuilder(\
Magento\CatalogRule\Model\Rule::class)
55 ->disableOriginalConstructor()
57 $ruleMock->expects($this->once())->method(
'getIsActive')->willReturn(
false);
58 $this->assertFalse($this->model->execute($ruleMock, 100,
true));
63 $ruleMock = $this->getMockBuilder(\
Magento\CatalogRule\Model\Rule::class)
64 ->disableOriginalConstructor()
66 $ruleMock->expects($this->once())->method(
'getIsActive')->willReturn(
true);
67 $ruleMock->expects($this->once())->method(
'getWebsiteIds')->willReturn(
null);
68 $this->assertFalse($this->model->execute($ruleMock, 100,
true));
78 $ruleMock = $this->getMockBuilder(\
Magento\CatalogRule\Model\Rule::class)
79 ->disableOriginalConstructor()
81 $ruleMock->expects($this->once())->method(
'getIsActive')->willReturn(
true);
82 $ruleMock->expects($this->exactly(2))->method(
'getWebsiteIds')->willReturn(1);
83 $ruleMock->expects($this->once())->method(
'getMatchingProductIds')->willReturn(
$productIds);
85 $this->tableSwapperMock->expects($this->once())
86 ->method(
'getWorkingTableName')
87 ->with(
'catalogrule_product')
88 ->willReturn(
'catalogrule_product_replica');
90 $connectionMock = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
91 ->disableOriginalConstructor()
93 $this->resourceMock->expects($this->at(0))->method(
'getConnection')->willReturn($connectionMock);
94 $this->resourceMock->expects($this->at(1))
95 ->method(
'getTableName')
96 ->with(
'catalogrule_product')
97 ->willReturn(
'catalogrule_product');
98 $this->resourceMock->expects($this->at(2))
99 ->method(
'getTableName')
100 ->with(
'catalogrule_product_replica')
101 ->willReturn(
'catalogrule_product_replica');
103 $ruleMock->expects($this->once())->method(
'getId')->willReturn(100);
104 $ruleMock->expects($this->once())->method(
'getCustomerGroupIds')->willReturn([10]);
105 $ruleMock->expects($this->once())->method(
'getFromDate')->willReturn(
'2017-06-21');
106 $ruleMock->expects($this->once())->method(
'getToDate')->willReturn(
'2017-06-30');
107 $ruleMock->expects($this->once())->method(
'getSortOrder')->willReturn(1);
108 $ruleMock->expects($this->once())->method(
'getSimpleAction')->willReturn(
'simple_action');
109 $ruleMock->expects($this->once())->method(
'getDiscountAmount')->willReturn(43);
110 $ruleMock->expects($this->once())->method(
'getStopRulesProcessing')->willReturn(
true);
115 'from_time' => 1498028400,
116 'to_time' => 1498892399,
118 'customer_group_id' => 10,
120 'action_operator' =>
'simple_action',
121 'action_amount' => 43,
122 'action_stop' =>
true,
127 'from_time' => 1498028400,
128 'to_time' => 1498892399,
130 'customer_group_id' => 10,
132 'action_operator' =>
'simple_action',
133 'action_amount' => 43,
134 'action_stop' =>
true,
142 'from_time' => 1498028400,
143 'to_time' => 1498892399,
145 'customer_group_id' => 10,
147 'action_operator' =>
'simple_action',
148 'action_amount' => 43,
149 'action_stop' =>
true,
154 $connectionMock->expects($this->at(0))
155 ->method(
'insertMultiple')
156 ->with(
'catalogrule_product_replica', $batchRows);
157 $connectionMock->expects($this->at(1))
158 ->method(
'insertMultiple')
159 ->with(
'catalogrule_product_replica', $rowsNotInBatch);
161 $this->assertTrue($this->model->execute($ruleMock, 2,
true));
testExecuteIfRuleInactive()
testExecuteIfRuleWithoutWebsiteIds()