8 use \Magento\Sales\Cron\CleanExpiredQuotes;
32 $this->storesConfigMock = $this->createMock(\
Magento\Store\Model\StoresConfig::class);
34 $this->quoteFactoryMock = $this->getMockBuilder(
37 ->disableOriginalConstructor()
38 ->setMethods([
'create'])
41 $this->observer =
new CleanExpiredQuotes($this->storesConfigMock, $this->quoteFactoryMock);
49 public function testExecute($lifetimes, $additionalFilterFields)
51 $this->storesConfigMock->expects($this->once())
52 ->method(
'getStoresConfigByPath')
53 ->with($this->equalTo(
'checkout/cart/delete_quote_after'))
54 ->will($this->returnValue($lifetimes));
57 ->disableOriginalConstructor()
59 $this->quoteFactoryMock->expects($this->exactly(count($lifetimes)))
61 ->will($this->returnValue($quotesMock));
62 $quotesMock->expects($this->exactly((3 + count($additionalFilterFields)) * count($lifetimes)))
63 ->method(
'addFieldToFilter');
64 if (!empty($lifetimes)) {
65 $quotesMock->expects($this->exactly(count($lifetimes)))
69 $this->observer->setExpireQuotesAdditionalFilterFields($additionalFilterFields);
70 $this->observer->execute();
80 [[1 => 100, 2 => 200], []],
81 [[1 => 100, 2 => 200], [
'field1' =>
'condition1',
'field2' =>
'condition2']],
cleanExpiredQuotesDataProvider()
testExecute($lifetimes, $additionalFilterFields)