function it_normalizes_a_step_execution(StepExecution $stepExecution, BatchStatus $status, \DateTime $startTime, $translator) { $stepExecution->getStepName()->willReturn('export'); $translator->trans('export')->willReturn('Export step'); $stepExecution->getSummary()->willReturn(['read' => 12, 'write' => 50]); $translator->trans('job_execution.summary.read')->willReturn('Read'); $translator->trans('job_execution.summary.write')->willReturn('Write'); $stepExecution->getStatus()->willReturn($status); $status->getValue()->willReturn(9); $translator->trans('pim_import_export.batch_status.9')->willReturn('PENDING'); $stepExecution->getStartTime()->willReturn($startTime); $stepExecution->getEndTime()->willReturn(null); $startTime->getTimestamp()->willReturn(1411400461); $utcStartTime = new \DateTime(); $utcStartTime->setTimestamp(1411400461); $finalDate = $utcStartTime->format('Y-m-d g:i:s A'); $stepExecution->getWarnings()->willReturn(new ArrayCollection([new Warning($stepExecution->getWrappedObject(), 'a_warning', 'warning_reason', ['foo' => 'bar'], ['a' => 'A', 'b' => 'B', 'c' => 'C'])])); $translator->trans('a_warning')->willReturn('Reader'); $translator->trans(12)->willReturn(12); $translator->trans(50)->willReturn(50); $translator->trans('warning_reason', ['foo' => 'bar'])->willReturn('WARNING!'); $stepExecution->getFailureExceptions()->willReturn([['message' => 'a_failure', 'messageParameters' => ['foo' => 'bar']]]); $translator->trans('a_failure', ['foo' => 'bar'])->willReturn('FAIL!'); $this->normalize($stepExecution, 'any')->shouldReturn(['label' => 'Export step', 'status' => 'PENDING', 'summary' => ['Read' => 12, 'Write' => 50], 'startedAt' => $finalDate, 'endedAt' => null, 'warnings' => [['label' => 'Reader', 'reason' => 'WARNING!', 'item' => ['a' => 'A', 'b' => 'B', 'c' => 'C']]], 'failures' => ['FAIL!']]); }
function it_executes_with_an_invalid_item_during_processing($reader, $processor, $writer, StepExecution $execution, EventDispatcherInterface $dispatcher, JobRepositoryInterface $repository, BatchStatus $status, ExitStatus $exitStatus) { $this->setBatchSize(3); $this->setEventDispatcher($dispatcher); $this->setJobRepository($repository); $execution->getStatus()->willReturn($status); $status->getValue()->willReturn(BatchStatus::STARTING); $dispatcher->dispatch(EventInterface::BEFORE_STEP_EXECUTION, Argument::any())->shouldBeCalled(); $execution->setStartTime(Argument::any())->shouldBeCalled(); $execution->setStatus(Argument::any())->shouldBeCalled(); // first batch $reader->read()->willReturn('r1', 'r2', 'r3', 'r4', null); $processor->process('r1')->shouldBeCalled()->willReturn('p1'); $processor->process('r2')->shouldBeCalled()->willReturn('p2'); $processor->process('r3')->shouldBeCalled()->willReturn('p3'); $writer->write(['p1', 'p2', 'p3'])->shouldBeCalled(); // second batch $processor->process('r4')->shouldBeCalled()->willThrow(new InvalidItemException('my msg', ['r4'])); $execution->addWarning(Argument::any(), Argument::any(), Argument::any(), Argument::any())->shouldBeCalled(); $dispatcher->dispatch(Argument::any(), Argument::any())->shouldBeCalled(); $processor->process(null)->shouldNotBeCalled(); $writer->write(['p4'])->shouldNotBeCalled(); $execution->getExitStatus()->willReturn($exitStatus); $exitStatus->getExitCode()->willReturn(ExitStatus::COMPLETED); $repository->updateStepExecution($execution)->shouldBeCalled(); $execution->isTerminateOnly()->willReturn(false); $execution->upgradeStatus(Argument::any())->shouldBeCalled(); $dispatcher->dispatch(EventInterface::STEP_EXECUTION_SUCCEEDED, Argument::any())->shouldBeCalled(); $dispatcher->dispatch(EventInterface::STEP_EXECUTION_COMPLETED, Argument::any())->shouldBeCalled(); $execution->setEndTime(Argument::any())->shouldBeCalled(); $execution->setExitStatus(Argument::any())->shouldBeCalled(); $this->execute($execution); }
function it_normalizes_a_step_execution($translator, $presenter, $labelProvider, JobInstance $jobInstance, JobExecution $jobExecution, StepExecution $stepExecution, BatchStatus $status) { $jobExecution->getJobInstance()->willReturn($jobInstance); $stepExecution->getJobExecution()->willReturn($jobExecution); $stepExecution->getStepName()->willReturn('such_step'); $jobInstance->getJobName()->willReturn('wow_job'); $labelProvider->getStepLabel('wow_job', 'such_step')->willReturn('Export step'); $stepExecution->getSummary()->willReturn(['read' => 12, 'write' => 50]); $translator->trans('job_execution.summary.read')->willReturn('Read'); $translator->trans('job_execution.summary.write')->willReturn('Write'); $stepExecution->getStatus()->willReturn($status); $status->getValue()->willReturn(9); $translator->trans('pim_import_export.batch_status.9')->willReturn('PENDING'); $date = new \DateTime(); $stepExecution->getStartTime()->willReturn($date); $stepExecution->getEndTime()->willReturn(null); $stepExecution->getWarnings()->willReturn(new ArrayCollection([new Warning($stepExecution->getWrappedObject(), 'warning_reason', ['foo' => 'bar'], ['a' => 'A', 'b' => 'B', 'c' => 'C'])])); $translator->trans('a_warning')->willReturn('Reader'); $translator->trans(12)->willReturn(12); $translator->trans(50)->willReturn(50); $translator->trans('warning_reason', ['foo' => 'bar'])->willReturn('WARNING!'); $stepExecution->getFailureExceptions()->willReturn([['message' => 'a_failure', 'messageParameters' => ['foo' => 'bar']]]); $translator->trans('a_failure', ['foo' => 'bar'])->willReturn('FAIL!'); $presenter->present($date, Argument::any())->willReturn('22-09-2014'); $presenter->present(null, Argument::any())->willReturn(null); $this->normalize($stepExecution, 'any')->shouldReturn(['label' => 'Export step', 'status' => 'PENDING', 'summary' => ['Read' => 12, 'Write' => 50], 'startedAt' => '22-09-2014', 'endedAt' => null, 'warnings' => [['reason' => 'WARNING!', 'item' => ['a' => 'A', 'b' => 'B', 'c' => 'C']]], 'failures' => ['FAIL!']]); }