/**
  * Check if the given JoExecution is still running using his PID
  * @param JobExecution $jobExecution
  *
  * @return bool
  */
 public function checkRunningStatus(JobExecution $jobExecution)
 {
     if (BatchStatus::STARTING !== $jobExecution->getStatus()->getValue() && (ExitStatus::UNKNOWN === $jobExecution->getExitStatus()->getExitCode() || ExitStatus::EXECUTING === $jobExecution->getExitStatus()->getExitCode())) {
         return $this->processIsRunning($jobExecution);
     }
     return true;
 }
 function it_checks_a_job_execution_is_not_running(JobExecution $jobExecution, BatchStatus $status, ExitStatus $exitStatus)
 {
     $jobExecution->getStatus()->willReturn($status);
     $jobExecution->getExitStatus()->willReturn($exitStatus);
     $status->getValue()->willReturn(BatchStatus::STARTING);
     $exitStatus->getExitCode()->willReturn(ExitStatus::STOPPED);
     $this->checkRunningStatus($jobExecution)->shouldReturn(true);
 }
 /**
  * Returns true if the job has been executed without any warning
  *
  * @param JobExecution $jobExecution
  *
  * @return bool
  */
 protected function executionComplete(JobExecution $jobExecution)
 {
     if (ExitStatus::COMPLETED !== $jobExecution->getExitStatus()->getExitCode()) {
         return false;
     }
     foreach ($jobExecution->getStepExecutions() as $stepExecution) {
         if (count($stepExecution->getWarnings())) {
             return false;
         }
     }
     return true;
 }