/** * Write information from event to database.. * * @param BackupEvent $event */ public function onBackupFinished(BackupEvent $event) { $database = $event->getDatabase(); $database->set('finished', (new \DateTime())->format(\DateTime::RFC3339)); $database->set('state', $event->getStatus()); if (BackupStatus::STATE_FAILED === $event->getStatus()) { $database->set('exception', $this->serializeException($event->getException())); } }
public function testOnBackupFinishedFailed() { $this->event->getStatus()->willReturn(BackupStatus::STATE_FAILED); $this->event->getException()->willReturn(new \Exception()); $this->database->set('finished', Argument::that(function ($value) { $date = \DateTime::createFromFormat(\DateTime::RFC3339, $value); return new \DateTime() >= $date; }))->shouldBeCalled(); $this->database->set('state', BackupStatus::STATE_FAILED)->shouldBeCalled(); $this->database->set('exception', Argument::any())->shouldBeCalled(); $this->listener->onBackupFinished($this->event->reveal()); }
/** * Asks environment (e.g. user over console) if he wants to continue failed backup. * * @param BackupEvent $event */ public function onBackupFinished(BackupEvent $event) { if ($event->getStatus() === BackupStatus::STATE_FAILED && !$this->environment->continueFailedBackup($event->getException())) { $event->cancel(); } }