/**
  * @param JobInstance $jobInstance
  * @param string      $field
  * @param mixed       $data
  */
 protected function setData(JobInstance $jobInstance, $field, $data)
 {
     switch ($field) {
         case 'connector':
             $jobInstance->setConnector($data);
             break;
         case 'alias':
             $jobInstance->setJobName($data);
             break;
         case 'label':
             $jobInstance->setLabel($data);
             break;
         case 'type':
             $jobInstance->setType($data);
             break;
         case 'configuration':
             $job = $this->jobRegistry->get($jobInstance->getJobName());
             /** @var JobParameters $jobParameters */
             $jobParameters = $this->jobParametersFactory->create($job, $data);
             $jobInstance->setRawParameters($jobParameters->all());
             break;
         case 'code':
             $jobInstance->setCode($data);
             break;
     }
 }
 function it_updates_an_job_instance($jobParametersFactory, $jobRegistry, JobInstance $jobInstance, JobInterface $job, JobParameters $jobParameters)
 {
     $jobInstance->getJobName()->willReturn('fixtures_currency_csv');
     $jobRegistry->get('fixtures_currency_csv')->willReturn($job);
     $jobParametersFactory->create($job, ['filePath' => 'currencies.csv'])->willReturn($jobParameters);
     $jobParameters->all()->willReturn(['filePath' => 'currencies.csv']);
     $jobInstance->setJobName('fixtures_currency_csv')->shouldBeCalled();
     $jobInstance->setCode('fixtures_currency_csv')->shouldBeCalled();
     $jobInstance->setConnector('Data fixtures')->shouldBeCalled();
     $jobInstance->setLabel('Currencies data fixtures')->shouldBeCalled();
     $jobInstance->setRawParameters(['filePath' => 'currencies.csv'])->shouldBeCalled();
     $jobInstance->setType('type')->shouldBeCalled();
     $this->update($jobInstance, ['connector' => 'Data fixtures', 'alias' => 'fixtures_currency_csv', 'label' => 'Currencies data fixtures', 'type' => 'type', 'configuration' => ['filePath' => 'currencies.csv'], 'code' => 'fixtures_currency_csv']);
 }