Skip to content

Commit 6c28196

Browse files
minor #50117 [Scheduler] fix brittle test (kbond)
This PR was merged into the 6.3 branch. Discussion ---------- [Scheduler] fix brittle test | Q | A | ------------- | --- | Branch? | 6.3 | Bug fix? | no | New feature? | no | Deprecations? | no | Tickets | n/a | License | MIT | Doc PR | n/a This fixes the brittle test I introduced in #50113. Commits ------- 375319d [Scheduler] fix brittle test
2 parents 3668fab + 375319d commit 6c28196

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/Symfony/Component/Scheduler/Tests/SchedulerTest.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
namespace Symfony\Component\Scheduler\Tests;
1313

1414
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\Clock\ClockInterface;
16+
use Symfony\Component\Clock\MockClock;
1517
use Symfony\Component\Scheduler\RecurringMessage;
1618
use Symfony\Component\Scheduler\Schedule;
1719
use Symfony\Component\Scheduler\Scheduler;
@@ -21,11 +23,12 @@ class SchedulerTest extends TestCase
2123
public function testCanRunAndStop()
2224
{
2325
$handler = new Handler();
24-
$schedule = (new Schedule())->add(RecurringMessage::every('1 millisecond', new Message()));
25-
$scheduler = new Scheduler([Message::class => $handler], [$schedule]);
26+
$handler->clock = $clock = new MockClock();
27+
$schedule = (new Schedule())->add(RecurringMessage::every('1 second', new Message()));
28+
$scheduler = new Scheduler([Message::class => $handler], [$schedule], $clock);
2629
$handler->scheduler = $scheduler;
2730

28-
$scheduler->run(['sleep' => 0]);
31+
$scheduler->run(['sleep' => 1]);
2932

3033
$this->assertSame(3, $handler->count);
3134
}
@@ -39,11 +42,16 @@ class Handler
3942
{
4043
public int $count = 0;
4144
public Scheduler $scheduler;
45+
public ClockInterface $clock;
4246

4347
public function __invoke(Message $message): void
4448
{
4549
if (3 === ++$this->count) {
4650
$this->scheduler->stop();
51+
52+
return;
4753
}
54+
55+
$this->clock->sleep(1);
4856
}
4957
}

0 commit comments

Comments
 (0)