function it_checks_if_the_given_job_code_exists_in_the_context(JobInstance $jobInstance) { $this->addJobName('a_job_code'); $jobInstance->getJobName()->willReturn('a_job_code'); $this->isVisible([], ['jobInstance' => $jobInstance])->shouldReturn(true); $jobInstance->getJobName()->willReturn('another_job_code'); $this->isVisible([], ['jobInstance' => $jobInstance])->shouldReturn(false); }
/** * @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; } }
/** * {@inheritdoc} */ public function getEditTemplate(JobInstance $jobInstance) { $jobName = $jobInstance->getJobName(); if (isset($this->jobTemplates[$jobName]) && isset($this->jobTemplates[$jobName]['templates']['edit'])) { return $this->jobTemplates[$jobName]['templates']['edit']; } return sprintf(self::DEFAULT_EDIT_TEMPLATE, ucfirst($jobInstance->getType())); }
function it_adds_a_violation_if_job_instance_has_an_unknown_type($jobRegistry, $context, JobInstanceConstraint $constraint, JobInstance $jobInstance, ConstraintViolationBuilderInterface $violation) { $jobInstance->getJobName()->willReturn(null); $jobRegistry->get(null)->willThrow(new UndefinedJobException('The job "" is not registered')); $jobInstance->getType()->willReturn('import'); $context->buildViolation($constraint->message, ['%job_type%' => 'import'])->shouldBeCalled()->willReturn($violation); $violation->atPath($constraint->property)->shouldBeCalled()->willReturn($violation); $violation->addViolation()->shouldBeCalled(); $this->validate($jobInstance, $constraint); }
function it_generates_default_export_job_template(JobInstance $jobInstance) { $jobInstance->getJobName()->willReturn('an_unknown_job'); $jobInstance->getType()->willReturn('export'); $expectedJobTemplate = sprintf(JobTemplateProvider::DEFAULT_CREATE_TEMPLATE, 'Export'); $this->getCreateTemplate($jobInstance)->shouldReturn($expectedJobTemplate); $expectedJobTemplate = sprintf(JobTemplateProvider::DEFAULT_SHOW_TEMPLATE, 'Export'); $this->getShowTemplate($jobInstance)->shouldReturn($expectedJobTemplate); $expectedJobTemplate = sprintf(JobTemplateProvider::DEFAULT_EDIT_TEMPLATE, 'Export'); $this->getEditTemplate($jobInstance)->shouldReturn($expectedJobTemplate); }
function it_returns_false_for_the_unsupported_job($jobRegistry, ItemReaderInterface $reader, JobExecution $jobExecution, JobInstance $jobInstance, Job $job, ItemStep $step) { $jobInstance->getJobName()->willReturn('my_job_name'); $jobRegistry->get('my_job_name')->willReturn($job); $jobExecution->getJobInstance()->willReturn($jobInstance); $jobExecution->getId()->willReturn(12); $jobInstance->getType()->willReturn('type'); $job->getSteps()->willReturn([$step]); $step->getReader()->willReturn($reader); $this->supports($jobExecution)->shouldReturn(false); }
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']); }
function it_normalizes_a_job_execution_instance($serializer, $translator, $labelProvider, JobInstance $jobInstance, JobExecution $jobExecution, StepExecution $exportExecution, StepExecution $cleanExecution, BatchStatus $status) { $jobExecution->getFailureExceptions()->willReturn([['message' => 'error', 'messageParameters' => ['foo' => 'bar']]]); $jobInstance->getJobName()->willReturn('wow_job'); $translator->trans('error', ['foo' => 'bar'])->willReturn('Such error'); $labelProvider->getJobLabel('wow_job')->willReturn('Wow job'); $jobExecution->isRunning()->willReturn(true); $jobExecution->getStatus()->willReturn($status); $jobExecution->getJobInstance()->willReturn($jobInstance); $status->getValue()->willReturn(1); $translator->trans('pim_import_export.batch_status.1')->willReturn('COMPLETED'); $jobExecution->getStepExecutions()->willReturn([$exportExecution, $cleanExecution]); $serializer->normalize($exportExecution, 'any', [])->willReturn('**exportExecution**'); $serializer->normalize($cleanExecution, 'any', [])->willReturn('**cleanExecution**'); $this->normalize($jobExecution, 'any')->shouldReturn(['label' => 'Wow job', 'failures' => ['Such error'], 'stepExecutions' => ['**exportExecution**', '**cleanExecution**'], 'isRunning' => true, 'status' => 'COMPLETED']); }
/** * Create a jobExecution * * @param JobInstance $jobInstance * @param UserInterface $user * * @return JobExecution */ protected function createJobExecution(JobInstance $jobInstance, UserInterface $user) { $job = $this->jobRegistry->get($jobInstance->getJobName()); $jobParameters = $this->jobParametersFactory->create($job, $jobInstance->getRawParameters()); $jobExecution = $this->jobRepository->createJobExecution($jobInstance, $jobParameters); $jobExecution->setUser($user->getUsername()); $this->jobRepository->updateJobExecution($jobExecution); return $jobExecution; }
function it_creates_a_file_if_writer_is_correct($jobRegistry, Writer $writer, JobExecution $jobExecution, JobInstance $jobInstance, Job $job, ItemStep $step, $factory, $filesystem) { $file1 = tempnam(sys_get_temp_dir(), 'spec'); $file2 = tempnam(sys_get_temp_dir(), 'spec'); $jobInstance->getJobName()->willReturn('my_job_name'); $jobRegistry->get('my_job_name')->willReturn($job); $jobExecution->getJobInstance()->willReturn($jobInstance); $jobExecution->getId()->willReturn(12); $jobInstance->getType()->willReturn('type'); $job->getSteps()->willReturn([$step]); $step->getWriter()->willReturn($writer); $writer->getWrittenFiles()->willReturn([$file1 => 'file1', $file2 => 'file2']); $writer->getPath()->willReturn(sys_get_temp_dir()); $filesystem->has('type/my_job_name/12/archive')->willReturn(false); $filesystem->createDir('type/my_job_name/12/archive')->shouldBeCalled(); $factory->createZip(Argument::any())->willReturn($filesystem); $filesystem->put('file1', '')->shouldBeCalled(); $filesystem->put('file2', '')->shouldBeCalled(); $this->archive($jobExecution); unlink($file1); unlink($file2); }
/** * @param JobInstance $jobInstance * @param array $validationGroups * * @return ConstraintViolationListInterface */ protected function validateJobInstance(JobInstance $jobInstance, array $validationGroups) { $rawParameters = $jobInstance->getRawParameters(); $job = $this->jobRegistry->get($jobInstance->getJobName()); $jobParameters = $this->jobParametersFactory->create($job, $rawParameters); /** @var ConstraintViolationListInterface $jobParamsViolations */ $jobParamsViolations = $this->jobParametersValidator->validate($job, $jobParameters, $validationGroups); /** @var ConstraintViolationListInterface $jobInstanceViolations */ $jobInstanceViolations = $this->validator->validate($jobInstance, $validationGroups); foreach ($jobInstanceViolations as $violation) { $jobParamsViolations->add($violation); } return $jobParamsViolations; }
function it_does_not_support_a_incompatible_job($jobRegistry, ItemWriterInterface $writer, JobExecution $jobExecution, JobInstance $jobInstance, Job $job, ItemStep $step) { $jobInstance->getJobName()->willReturn('my_job_name'); $jobRegistry->get('my_job_name')->willReturn($job); $jobExecution->getJobInstance()->willReturn($jobInstance); $jobExecution->getId()->willReturn(12); $jobInstance->getType()->willReturn('type'); $job->getSteps()->willReturn([$step]); $step->getWriter()->willReturn($writer); $this->supports($jobExecution)->shouldReturn(false); }