diff --git a/src/GO/Job.php b/src/GO/Job.php index 987b8d3..b666930 100644 --- a/src/GO/Job.php +++ b/src/GO/Job.php @@ -157,6 +157,8 @@ public function __construct($command, $args = [], $id = null) } else { if (is_string($command)) { $this->id = md5($command); + } elseif (is_array($command)) { + $this->id = md5(serialize($command)); } else { /* @var object $command */ $this->id = spl_object_hash($command); diff --git a/tests/GO/JobTest.php b/tests/GO/JobTest.php index 7720e45..8d52bc0 100644 --- a/tests/GO/JobTest.php +++ b/tests/GO/JobTest.php @@ -14,6 +14,9 @@ public function testShouldAlwaysGenerateAnId() return true; }); $this->assertTrue(is_string($job2->getId())); + + $job3 = new Job(['MyClass', 'myMethod']); + $this->assertTrue(is_string($job3->getId())); } public function testShouldGenerateIdFromSignature() @@ -23,6 +26,9 @@ public function testShouldGenerateIdFromSignature() $job2 = new Job('whoami'); $this->assertNotEquals($job1->getId(), $job2->getId()); + + $job3 = new Job(['MyClass', 'myMethod']); + $this->assertNotEquals($job1->getId(), $job3->getId()); } public function testShouldAllowCustomId() @@ -31,6 +37,9 @@ public function testShouldAllowCustomId() $this->assertNotEquals(md5('ls'), $job->getId()); $this->assertEquals('aCustomId', $job->getId()); + + $job2 = new Job(['MyClass', 'myMethod'], null, 'myCustomId'); + $this->assertEquals('myCustomId', $job2->getId()); } public function testShouldKnowIfDue()