Making it compatible with PHP < 5.5

Making the factory receive the classname
This commit is contained in:
Sebastian Machuca 2016-10-06 16:07:16 +11:00
parent 7d2ce1bc8b
commit de22db6826
No known key found for this signature in database
GPG Key ID: 4B3DA17F9CCF39DE
3 changed files with 11 additions and 10 deletions

View File

@ -182,7 +182,7 @@ class Resque_Job implements Resque_JobInterface
} }
if ($this->jobFactory !== null) { if ($this->jobFactory !== null) {
$this->instance = $this->jobFactory->create(); $this->instance = $this->jobFactory->create($this->payload['class']);
} else { } else {
$this->instance = new $this->payload['class']; $this->instance = new $this->payload['class'];
} }

View File

@ -3,7 +3,8 @@
interface Resque_Job_FactoryInterface interface Resque_Job_FactoryInterface
{ {
/** /**
* @param $className
* @return Resque_JobInterface * @return Resque_JobInterface
*/ */
public function create(); public function create($className);
} }

View File

@ -365,30 +365,30 @@ class Resque_Tests_JobTest extends Resque_Tests_TestCase
public function testUseFactoryToGetJobInstance() public function testUseFactoryToGetJobInstance()
{ {
$payload = array( $payload = array(
'class' => Some_Job_Class::class, 'class' => 'Some_Job_Class',
'args' => null 'args' => null
); );
$job = new Resque_Job('jobs', $payload); $job = new Resque_Job('jobs', $payload);
$factory = $this->getMock(Resque_Job_FactoryInterface::class); $factory = $this->getMock('Resque_Job_FactoryInterface');
$job->setJobFactory($factory); $job->setJobFactory($factory);
$testJob = $this->getMock(Resque_JobInterface::class); $testJob = $this->getMock('Resque_JobInterface');
$factory->expects(self::once())->method('create')->will($this->returnValue($testJob)); $factory->expects(self::once())->method('create')->will($this->returnValue($testJob));
$instance = $job->getInstance(); $instance = $job->getInstance();
$this->assertInstanceOf(Resque_JobInterface::class, $instance); $this->assertInstanceOf('Resque_JobInterface', $instance);
} }
public function testDoNotUseFactoryToGetInstance() public function testDoNotUseFactoryToGetInstance()
{ {
$payload = array( $payload = array(
'class' => Some_Job_Class::class, 'class' => 'Some_Job_Class',
'args' => null 'args' => null
); );
$job = new Resque_Job('jobs', $payload); $job = new Resque_Job('jobs', $payload);
$factory = $this->getMock(Resque_Job_FactoryInterface::class); $factory = $this->getMock('Resque_Job_FactoryInterface');
$testJob = $this->getMock(Resque_JobInterface::class); $testJob = $this->getMock('Resque_JobInterface');
$factory->expects(self::never())->method('create')->will(self::returnValue($testJob)); $factory->expects(self::never())->method('create')->will(self::returnValue($testJob));
$instance = $job->getInstance(); $instance = $job->getInstance();
$this->assertInstanceOf(Resque_JobInterface::class, $instance); $this->assertInstanceOf('Resque_JobInterface', $instance);
} }
} }