Skip to content

Commit c135428

Browse files
authored
Implemented a job that triggers other jobs based on user defined schedule rules (#25)
* Create BufferingJobLauncher to ease testing classes using a job launcher * Implemented a job that triggers other jobs based on schedules * Provide JobExecution to schedulers so it can look for some context to decide * Add comments to schedule components
1 parent 741875e commit c135428

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

tests/LaunchJobMessageHandlerTest.php

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,26 @@
55
namespace Yokai\Batch\Tests\Bridge\Symfony\Messenger;
66

77
use PHPUnit\Framework\TestCase;
8-
use Prophecy\PhpUnit\ProphecyTrait;
98
use Yokai\Batch\Bridge\Symfony\Messenger\LaunchJobMessage;
109
use Yokai\Batch\Bridge\Symfony\Messenger\LaunchJobMessageHandler;
11-
use Yokai\Batch\JobExecution;
12-
use Yokai\Batch\Launcher\JobLauncherInterface;
10+
use Yokai\Batch\Test\Factory\SequenceJobExecutionIdGenerator;
11+
use Yokai\Batch\Test\Launcher\BufferingJobLauncher;
1312

1413
final class LaunchJobMessageHandlerTest extends TestCase
1514
{
16-
use ProphecyTrait;
17-
1815
public function testInvoke(): void
1916
{
20-
$jobLauncher = $this->prophesize(JobLauncherInterface::class);
21-
$jobLauncher->launch('foo', ['bar' => 'BAR'])
22-
->shouldBeCalled()
23-
->willReturn(JobExecution::createRoot('123456', 'foo'));
17+
$launcher = new BufferingJobLauncher(new SequenceJobExecutionIdGenerator(['123456']));
2418

25-
$handler = new LaunchJobMessageHandler($jobLauncher->reveal());
19+
$handler = new LaunchJobMessageHandler($launcher);
2620
$handler->__invoke(new LaunchJobMessage('foo', ['bar' => 'BAR']));
21+
22+
self::assertCount(1, $launcher->getExecutions());
23+
self::assertSame('foo', $launcher->getExecutions()[0]->getJobName());
24+
self::assertSame('123456', $launcher->getExecutions()[0]->getId());
25+
self::assertSame(
26+
['bar' => 'BAR', '_id' => '123456'],
27+
\iterator_to_array($launcher->getExecutions()[0]->getParameters()->getIterator())
28+
);
2729
}
2830
}

0 commit comments

Comments
 (0)