/** * @param array $lifetimes * @param array $additionalFilterFields * @dataProvider cleanExpiredQuotesDataProvider */ public function testExecute($lifetimes, $additionalFilterFields) { $this->storesConfigMock->expects($this->once())->method('getStoresConfigByPath')->with($this->equalTo('checkout/cart/delete_quote_after'))->will($this->returnValue($lifetimes)); $quotesMock = $this->getMockBuilder('Magento\\Quote\\Model\\ResourceModel\\Quote\\Collection')->disableOriginalConstructor()->getMock(); $this->quoteFactoryMock->expects($this->exactly(count($lifetimes)))->method('create')->will($this->returnValue($quotesMock)); $quotesMock->expects($this->exactly((3 + count($additionalFilterFields)) * count($lifetimes)))->method('addFieldToFilter'); if (!empty($lifetimes)) { $quotesMock->expects($this->exactly(count($lifetimes)))->method('walk')->with('delete'); } $this->observer->setExpireQuotesAdditionalFilterFields($additionalFilterFields); $this->observer->execute(); }