public function onTerminate() { $spool = $this->sender->getSpool(); if ($spool instanceof MemorySpool) { try { $spool->flush(); } catch (\Exception $exception) { if (null !== $this->logger) { $this->logger->error(sprintf('Exception occurred while flushing message queue: %s', $exception->getMessage())); } } } }
public function testSpoolingAndFlushing() { /** @var \PHPUnit_Framework_MockObject_MockObject|TransportInterface $transport */ $transport = $this->getMock('ScayTrase\\SmsDeliveryBundle\\Transport\\TransportInterface'); $transport->expects(self::any())->method('send')->willReturn(true); $spool = new MemorySpool(); $sender = new MessageDeliveryService($transport, $spool); /** @var ShortMessageInterface|\PHPUnit_Framework_MockObject_MockObject $message */ $message = $this->getMock('ScayTrase\\SmsDeliveryBundle\\Service\\ShortMessageInterface'); self::assertTrue($sender->spoolMessage($message)); $profile = $sender->getProfile(); self::assertCount(1, $profile); self::assertEquals(Package::STATUS_SPOOLED, $profile[0]->getStatus()); self::assertTrue($sender->getSpool()->flush()); self::assertCount(1, $profile); self::assertEquals(Package::STATUS_SUCCESS, $profile[0]->getStatus()); }