|
5 | 5 | namespace Yokai\Batch\Tests\Bridge\Symfony\Messenger;
|
6 | 6 |
|
7 | 7 | use PHPUnit\Framework\TestCase;
|
| 8 | +use Prophecy\PhpUnit\ProphecyTrait; |
8 | 9 | use Yokai\Batch\Bridge\Symfony\Messenger\LaunchJobMessage;
|
9 | 10 | use Yokai\Batch\Bridge\Symfony\Messenger\LaunchJobMessageHandler;
|
| 11 | +use Yokai\Batch\Factory\JobExecutionFactory; |
| 12 | +use Yokai\Batch\Job\JobExecutionAccessor; |
| 13 | +use Yokai\Batch\Job\JobExecutor; |
| 14 | +use Yokai\Batch\Job\JobInterface; |
| 15 | +use Yokai\Batch\JobExecution; |
| 16 | +use Yokai\Batch\Registry\JobRegistry; |
10 | 17 | use Yokai\Batch\Test\Factory\SequenceJobExecutionIdGenerator;
|
11 |
| -use Yokai\Batch\Test\Launcher\BufferingJobLauncher; |
| 18 | +use Yokai\Batch\Test\Storage\InMemoryJobExecutionStorage; |
12 | 19 |
|
13 | 20 | final class LaunchJobMessageHandlerTest extends TestCase
|
14 | 21 | {
|
| 22 | + use ProphecyTrait; |
| 23 | + |
15 | 24 | public function testInvoke(): void
|
16 | 25 | {
|
17 |
| - $launcher = new BufferingJobLauncher(new SequenceJobExecutionIdGenerator(['123456'])); |
| 26 | + $job = new class implements JobInterface { |
| 27 | + public JobExecution $execution; |
| 28 | + public function execute(JobExecution $jobExecution): void |
| 29 | + { |
| 30 | + $this->execution = $jobExecution; |
| 31 | + } |
| 32 | + }; |
18 | 33 |
|
19 |
| - $handler = new LaunchJobMessageHandler($launcher); |
| 34 | + $jobExecutionStorage = new InMemoryJobExecutionStorage(); |
| 35 | + $handler = new LaunchJobMessageHandler( |
| 36 | + new JobExecutionAccessor( |
| 37 | + new JobExecutionFactory(new SequenceJobExecutionIdGenerator(['123456'])), |
| 38 | + $jobExecutionStorage, |
| 39 | + ), |
| 40 | + new JobExecutor( |
| 41 | + JobRegistry::fromJobArray(['foo' => $job]), |
| 42 | + $jobExecutionStorage, |
| 43 | + null |
| 44 | + ) |
| 45 | + ); |
20 | 46 | $handler->__invoke(new LaunchJobMessage('foo', ['bar' => 'BAR']));
|
21 | 47 |
|
22 |
| - self::assertCount(1, $launcher->getExecutions()); |
23 |
| - self::assertSame('foo', $launcher->getExecutions()[0]->getJobName()); |
24 |
| - self::assertSame('123456', $launcher->getExecutions()[0]->getId()); |
| 48 | + self::assertSame('foo', $job->execution->getJobName()); |
| 49 | + self::assertSame('123456', $job->execution->getId()); |
25 | 50 | self::assertSame(
|
26 | 51 | ['bar' => 'BAR', '_id' => '123456'],
|
27 |
| - \iterator_to_array($launcher->getExecutions()[0]->getParameters()->getIterator()) |
| 52 | + $job->execution->getParameters()->all() |
28 | 53 | );
|
29 | 54 | }
|
30 | 55 | }
|
0 commit comments