/** * @dataProvider itemsProvider * * @param array $items * @param array $expectedItems */ public function testWrite(array $items, array $expectedItems) { $this->wrapped->expects($this->once())->method('write')->with($this->equalTo($expectedItems)); $stepExecution = $this->getMockBuilder('Akeneo\\Bundle\\BatchBundle\\Entity\\StepExecution')->disableOriginalConstructor()->getMock(); $this->databaseHelper->expects($this->once())->method('onClear'); $this->writer->setStepExecution($stepExecution); $this->writer->write($items); }
/** * @param NewsletterSubscriber[] $items */ public function write(array $items) { parent::write($items); // Save minimum originId received by initial sync for further filtering in case of failure $lastSubscriber = $items[count($items) - 1]; $transport = $lastSubscriber->getChannel()->getTransport(); if ($transport instanceof MagentoSoapTransport) { /** @var MagentoSoapTransport $transport */ $transport = $this->databaseHelper->getEntityReference($transport); $syncedToId = $transport->getNewsletterSubscriberSyncedToId(); if (!$syncedToId || $syncedToId > $lastSubscriber->getOriginId()) { $transport->setNewsletterSubscriberSyncedToId($lastSubscriber->getOriginId()); $this->writer->write([$transport]); } } }