@@ -123,9 +123,9 @@ public function testCalculate(
123
123
'getQuote ' ,
124
124
'getAddress ' ,
125
125
'getOptionByCode ' ,
126
+ 'getQty '
126
127
]
127
128
)->getMock ();
128
-
129
129
$ this ->validator ->expects (
130
130
$ this ->atLeastOnce ()
131
131
)->method (
@@ -170,32 +170,12 @@ public function testCalculate(
170
170
)->with (
171
171
$ ruleData ['discountAmount ' ],
172
172
$ store
173
- )->willReturn (
174
- $ validItemData ['baseOriginalPrice ' ]
175
- );
176
-
177
- $ rule ->expects (
178
- $ this ->atLeastOnce ()
179
- )->method (
180
- 'getDiscountAmount '
181
173
)->willReturn (
182
174
$ ruleData ['discountAmount ' ]
183
175
);
184
176
185
- $ item ->expects (
186
- $ this ->atLeastOnce ()
187
- )->method (
188
- 'getDiscountAmount '
189
- )->willReturn (
190
- $ itemData ['discountAmount ' ]
191
- );
192
- $ item ->expects (
193
- $ this ->atLeastOnce ()
194
- )->method (
195
- 'getBaseDiscountAmount '
196
- )->willReturn (
197
- $ itemData ['baseDiscountAmount ' ]
198
- );
177
+ $ this ->setUpMockData ($ ruleData , $ rule );
178
+ $ this ->setUpMockData ($ itemData , $ item );
199
179
$ item ->expects ($ this ->atLeastOnce ())->method ('getQuote ' )->willReturn ($ quote );
200
180
201
181
$ discountData ->expects ($ this ->once ())->method ('setAmount ' )->with ($ expectedDiscountData ['amount ' ]);
@@ -218,6 +198,22 @@ public function testCalculate(
218
198
$ this ->assertEquals ($ discountData , $ this ->model ->calculate ($ rule , $ item , $ qty ));
219
199
}
220
200
201
+ /**
202
+ * Sets up mock object data
203
+ *
204
+ * @param array $data
205
+ * @param MockObject $mockObject
206
+ * @return void
207
+ */
208
+ private function setUpMockData (array $ data , MockObject $ mockObject ): void
209
+ {
210
+ foreach ($ data as $ method => $ returnValue ) {
211
+ $ mockObject ->expects ($ this ->atLeastOnce ())
212
+ ->method ('get ' . ucfirst ($ method ))
213
+ ->willReturn ($ returnValue );
214
+ }
215
+ }
216
+
221
217
/**
222
218
* @return array
223
219
*/
@@ -227,7 +223,7 @@ public function calculateDataProvider()
227
223
[
228
224
'qty ' => 2 ,
229
225
'ruleData ' => ['discountAmount ' => 100 ],
230
- 'itemData ' => ['discountAmount ' => 139 , 'baseDiscountAmount ' => 139 ],
226
+ 'itemData ' => ['discountAmount ' => 139 , 'baseDiscountAmount ' => 139 , ' qty ' => 2 ],
231
227
'validItemData ' => [
232
228
'price ' => 139 ,
233
229
'basePrice ' => 139 ,
@@ -240,6 +236,23 @@ public function calculateDataProvider()
240
236
'originalAmount ' => 0 ,
241
237
'baseOriginalAmount ' => 0 ,
242
238
],
239
+ ],
240
+ [
241
+ 'qty ' => 1 ,
242
+ 'ruleData ' => ['discountAmount ' => 1000 ],
243
+ 'itemData ' => ['discountAmount ' => 9100 , 'baseDiscountAmount ' => 9100 , 'qty ' => 13 ],
244
+ 'validItemData ' => [
245
+ 'price ' => 9000 ,
246
+ 'basePrice ' => 9000 ,
247
+ 'originalPrice ' => 9000 ,
248
+ 'baseOriginalPrice ' => 9000 ,
249
+ ],
250
+ 'expectedDiscountData ' => [
251
+ 'amount ' => 1000 ,
252
+ 'baseAmount ' => 1000 ,
253
+ 'originalAmount ' => 0 ,
254
+ 'baseOriginalAmount ' => 0 ,
255
+ ],
243
256
]
244
257
];
245
258
}
0 commit comments