/**
  * Register an archiver
  *
  * @param ArchiverInterface $archiver
  *
  * @throws \InvalidArgumentException
  */
 public function registerArchiver(ArchiverInterface $archiver)
 {
     if (array_key_exists($archiver->getName(), $this->archivers)) {
         throw new \InvalidArgumentException(sprintf('There is already a registered archiver named "%s": %s', $archiver->getName(), get_class($this->archivers[$archiver->getName()])));
     }
     $this->archivers[$archiver->getName()] = $archiver;
 }
 function it_register_an_event_and_verify_if_job_is_supported(JobExecutionEvent $event, JobExecution $jobExecution, ArchiverInterface $archiver1, ArchiverInterface $archiver2)
 {
     $archiver1->getName()->willReturn('archiver_1');
     $archiver2->getName()->willReturn('archiver_2');
     $this->registerArchiver($archiver1);
     $this->registerArchiver($archiver2);
     $event->getJobExecution()->willReturn($jobExecution);
     $archiver1->supports($jobExecution)->willReturn(true);
     $archiver2->supports($jobExecution)->willReturn(false);
     $archiver1->archive($jobExecution)->shouldBeCalled();
     $archiver2->archive($jobExecution)->shouldNotBeCalled();
     $this->beforeStatusUpgrade($event);
 }