public function testGetByStepExecution() { $fooStepExecution = $this->createStepExecution(); $fooContext = $this->registry->getByStepExecution($fooStepExecution); $this->assertInstanceOf('Oro\\Bundle\\ImportExportBundle\\Context\\StepExecutionProxyContext', $fooContext); $this->assertAttributeEquals($fooStepExecution, 'stepExecution', $fooContext); $this->assertSame($fooContext, $this->registry->getByStepExecution($fooStepExecution)); $barStepExecution = $this->createStepExecution('job2'); $barContext = $this->registry->getByStepExecution($barStepExecution); $this->assertNotSame($barContext, $fooContext); /** @var \PHPUnit_Framework_MockObject_MockObject|JobInstance $jobInstance */ $jobInstance = $this->getMock('Akeneo\\Bundle\\BatchBundle\\Entity\\JobInstance'); $jobInstance->expects($this->any())->method('getAlias')->will($this->returnValue('job2')); $this->registry->clear($jobInstance); $barContext2 = $this->registry->getByStepExecution($barStepExecution); $this->assertNotSame($barContext, $barContext2); }
/** * Set data to JobResult * TODO: Find a way to work with multiple amount of job and step executions * TODO https://magecore.atlassian.net/browse/BAP-2600 * * @param JobResult $jobResult * @param JobInstance $jobInstance */ protected function setJobResultData(JobResult $jobResult, JobInstance $jobInstance) { $jobResult->setJobId($jobInstance->getId()); $jobResult->setJobCode($jobInstance->getCode()); /** @var JobExecution $jobExecution */ $jobExecution = $jobInstance->getJobExecutions()->first(); if ($jobExecution) { $stepExecutions = $jobExecution->getStepExecutions(); /** @var StepExecution $firstStepExecution */ $firstStepExecution = $stepExecutions->first(); if ($firstStepExecution) { $context = $this->contextRegistry->getByStepExecution($firstStepExecution); if ($stepExecutions->count() > 1) { /** @var StepExecution $stepExecution */ foreach ($stepExecutions->slice(1) as $stepExecution) { ContextHelper::mergeContextCounters($context, $this->contextRegistry->getByStepExecution($stepExecution)); } } $jobResult->setContext($context); } } $this->contextRegistry->clear($jobInstance); }