/** * @param JobInterface $original * @dataProvider provideCopyJobs */ public function testCopyJob(JobInterface $original) { $copy = new Job(); $returnValue = $this->subject->copyJob($original, $copy); $this->assertSame($copy, $returnValue); $this->assertNull($copy->getTicket()); $this->assertEquals($original->getType(), $copy->getType()); $this->assertEquals($original->getResponse(), $copy->getResponse()); $this->assertEquals($original->getStatus(), $copy->getStatus()); $this->assertEquals($original->getSchedules(), $copy->getSchedules()); }
/** * {@inheritdoc} */ public function update(JobInterface $job) { $existingJob = $this->jobManager->findByTicket($job->getTicket()); if (null == $existingJob) { return $this->add($job); } $this->logger->debug('Update job ' . $job->getTicket(), ['job' => $job]); $job = $this->helper->copyJob($job, $existingJob); if (null != $this->validator) { $errors = $this->validator->validate($job); if (count($errors) > 0) { throw new ValidationFailedException($errors); } } $this->jobManager->save($job); $this->getJobLogger($job)->debug('Updated job', ['job' => $job]); return $job; }
/** * Creates an expectation that $helper->updateJob is called. * * @param JobInterface $expectedJob The expected first argument passed to updateJob * @param Status $status The expected second argument passed to updateJob * @param mixed|null $processingTime The optional expected third argument passed to updateJob */ protected function expectsCallsUpdateJob(JobInterface $expectedJob, Status $status, $processingTime = 0, $response = null) { if (null == $response) { $this->helper->expects($this->once())->method('updateJob')->with($expectedJob, $this->equalTo($status), $processingTime == null ? $this->greaterThanOrEqual(0) : $processingTime)->willReturnCallback(function (JobInterface $job) use($status, $processingTime) { $job->setStatus($status); if ($processingTime != null) { $job->setProcessingTime($processingTime); } }); } else { $this->helper->expects($this->once())->method('updateJob')->with($expectedJob, $this->equalTo($status), $processingTime == null ? $this->greaterThanOrEqual(0) : $processingTime, $response)->willReturnCallback(function (JobInterface $job) use($status, $processingTime) { $job->setStatus($status); if ($processingTime != null) { $job->setProcessingTime($processingTime); } }); } }