Skip to content

Commit 80a751d

Browse files
committed
tests(scheduler): improvements
1 parent 1bf99b3 commit 80a751d

File tree

3 files changed

+60
-118
lines changed

3 files changed

+60
-118
lines changed

tests/AbstractSchedulerTestCase.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
use DateTimeZone;
88
use Exception;
99
use PHPUnit\Framework\TestCase;
10+
use SchedulerBundle\FiberScheduler;
1011
use SchedulerBundle\Scheduler;
1112
use SchedulerBundle\SchedulerInterface;
1213
use SchedulerBundle\Task\NullTask;
14+
use SchedulerBundle\Task\TaskInterface;
1315
use Throwable;
1416

1517
/**
@@ -48,6 +50,63 @@ public function testSchedulerCanScheduleTasksWithCustomTimezone(): void
4850
self::assertSame('Europe/Paris', $tasks->get('foo')->getTimezone()->getName());
4951
}
5052

53+
/**
54+
* @throws Throwable {@see Scheduler::__construct()}
55+
*/
56+
public function testSchedulerCanRebootWithEmptyTasks(): void
57+
{
58+
$scheduler = $this->buildScheduler();
59+
60+
$scheduler->schedule(new NullTask('bar'));
61+
self::assertCount(1, $scheduler->getTasks());
62+
63+
$scheduler->reboot();
64+
self::assertCount(0, $scheduler->getTasks());
65+
}
66+
67+
/**
68+
* @throws Throwable {@see Scheduler::__construct()}
69+
*/
70+
public function testSchedulerCanReboot(): void
71+
{
72+
$scheduler = $this->buildScheduler();
73+
74+
$scheduler->schedule(new NullTask('foo', [
75+
'expression' => '@reboot',
76+
]));
77+
$scheduler->schedule(new NullTask('bar'));
78+
self::assertCount(2, $scheduler->getTasks());
79+
80+
$scheduler->reboot();
81+
self::assertCount(1, $scheduler->getTasks());
82+
}
83+
84+
/**
85+
* @throws Throwable {@see Scheduler::__construct()}
86+
* @throws Throwable {@see SchedulerInterface::schedule()}
87+
*/
88+
public function testSchedulerCannotPreemptEmptyDueTasks(): void
89+
{
90+
$task = new NullTask('foo');
91+
92+
$scheduler = $this->buildScheduler();
93+
94+
$scheduler->preempt('foo', static fn (TaskInterface $task): bool => $task->getName() === 'bar');
95+
self::assertNotSame(TaskInterface::READY_TO_EXECUTE, $task->getState());
96+
}
97+
98+
/**
99+
* @throws Exception {@see Scheduler::__construct()}
100+
* @throws Throwable {@see FiberScheduler::getTimezone()}
101+
*/
102+
public function testSchedulerCanReturnTheTimezone(): void
103+
{
104+
$scheduler = $this->buildScheduler();
105+
106+
$timezone = $scheduler->getTimezone();
107+
self::assertSame('UTC', $timezone->getName());
108+
}
109+
51110
/**
52111
* @throws Exception {@see Scheduler::__construct()}
53112
* @throws Throwable {@see SchedulerInterface::getPoolConfiguration()}

tests/FiberSchedulerTest.php

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,57 +1566,6 @@ public function testSchedulerCanReturnNextDueTaskAsynchronously(): void
15661566
self::assertSame('bar', $task->getName());
15671567
}
15681568

1569-
/**
1570-
* @throws Throwable {@see Scheduler::__construct()}
1571-
*/
1572-
public function testSchedulerCanRebootWithEmptyTasks(): void
1573-
{
1574-
$scheduler = new FiberScheduler(new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1575-
new FirstInFirstOutPolicy(),
1576-
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), new EventDispatcher()));
1577-
1578-
$scheduler->schedule(new NullTask('bar'));
1579-
self::assertCount(1, $scheduler->getTasks());
1580-
1581-
$scheduler->reboot();
1582-
self::assertCount(0, $scheduler->getTasks());
1583-
}
1584-
1585-
/**
1586-
* @throws Throwable {@see Scheduler::__construct()}
1587-
*/
1588-
public function testSchedulerCanReboot(): void
1589-
{
1590-
$scheduler = new FiberScheduler(new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1591-
new FirstInFirstOutPolicy(),
1592-
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), new EventDispatcher()));
1593-
1594-
$scheduler->schedule(new NullTask('foo', [
1595-
'expression' => '@reboot',
1596-
]));
1597-
$scheduler->schedule(new NullTask('bar'));
1598-
self::assertCount(2, $scheduler->getTasks());
1599-
1600-
$scheduler->reboot();
1601-
self::assertCount(1, $scheduler->getTasks());
1602-
}
1603-
1604-
/**
1605-
* @throws Throwable {@see Scheduler::__construct()}
1606-
* @throws Throwable {@see SchedulerInterface::schedule()}
1607-
*/
1608-
public function testSchedulerCannotPreemptEmptyDueTasks(): void
1609-
{
1610-
$task = new NullTask('foo');
1611-
1612-
$scheduler = new FiberScheduler(new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1613-
new FirstInFirstOutPolicy(),
1614-
])), new SchedulerMiddlewareStack(), new EventDispatcher()));
1615-
1616-
$scheduler->preempt('foo', fn (TaskInterface $task): bool => $task->getName() === 'bar');
1617-
self::assertNotSame(TaskInterface::READY_TO_EXECUTE, $task->getState());
1618-
}
1619-
16201569
/**
16211570
* @throws Throwable {@see Scheduler::__construct()}
16221571
* @throws Throwable {@see SchedulerInterface::getDueTasks()}

tests/SchedulerTest.php

Lines changed: 1 addition & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1568,57 +1568,6 @@ public function testSchedulerCanReturnNextDueTaskAsynchronously(): void
15681568
self::assertSame('bar', $task->getName());
15691569
}
15701570

1571-
/**
1572-
* @throws Throwable {@see Scheduler::__construct()}
1573-
*/
1574-
public function testSchedulerCanRebootWithEmptyTasks(): void
1575-
{
1576-
$scheduler = new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1577-
new FirstInFirstOutPolicy(),
1578-
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), new EventDispatcher());
1579-
1580-
$scheduler->schedule(new NullTask('bar'));
1581-
self::assertCount(1, $scheduler->getTasks());
1582-
1583-
$scheduler->reboot();
1584-
self::assertCount(0, $scheduler->getTasks());
1585-
}
1586-
1587-
/**
1588-
* @throws Throwable {@see Scheduler::__construct()}
1589-
*/
1590-
public function testSchedulerCanReboot(): void
1591-
{
1592-
$scheduler = new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1593-
new FirstInFirstOutPolicy(),
1594-
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), new EventDispatcher());
1595-
1596-
$scheduler->schedule(new NullTask('foo', [
1597-
'expression' => '@reboot',
1598-
]));
1599-
$scheduler->schedule(new NullTask('bar'));
1600-
self::assertCount(2, $scheduler->getTasks());
1601-
1602-
$scheduler->reboot();
1603-
self::assertCount(1, $scheduler->getTasks());
1604-
}
1605-
1606-
/**
1607-
* @throws Throwable {@see Scheduler::__construct()}
1608-
* @throws Throwable {@see SchedulerInterface::schedule()}
1609-
*/
1610-
public function testSchedulerCannotPreemptEmptyDueTasks(): void
1611-
{
1612-
$task = new NullTask('foo');
1613-
1614-
$scheduler = new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration(), new SchedulePolicyOrchestrator([
1615-
new FirstInFirstOutPolicy(),
1616-
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), new EventDispatcher());
1617-
1618-
$scheduler->preempt('foo', fn (TaskInterface $task): bool => $task->getName() === 'bar');
1619-
self::assertNotSame(TaskInterface::READY_TO_EXECUTE, $task->getState());
1620-
}
1621-
16221571
/**
16231572
* @throws Throwable {@see Scheduler::__construct()}
16241573
* @throws Throwable {@see SchedulerInterface::getDueTasks()}
@@ -1633,7 +1582,7 @@ public function testSchedulerCannotPreemptEmptyToPreemptTasks(): void
16331582
])), new SchedulerMiddlewareStack(new MiddlewareRegistry([])), $eventDispatcher);
16341583

16351584
$scheduler->schedule(new NullTask('foo'));
1636-
$scheduler->preempt('foo', fn (TaskInterface $task): bool => $task->getName() === 'bar');
1585+
$scheduler->preempt('foo', static fn (TaskInterface $task): bool => $task->getName() === 'bar');
16371586
}
16381587

16391588
/**
@@ -1695,21 +1644,6 @@ public function testSchedulerCanPreemptTasks(): void
16951644
self::assertInstanceOf(DateTimeImmutable::class, $barTask->getExecutionEndTime());
16961645
}
16971646

1698-
/**
1699-
* @throws Exception {@see Scheduler::__construct()}
1700-
*/
1701-
public function testSchedulerCanReturnTheTimezone(): void
1702-
{
1703-
$scheduler = new Scheduler('UTC', new InMemoryTransport(new InMemoryConfiguration([
1704-
'execution_mode' => 'first_in_first_out',
1705-
]), new SchedulePolicyOrchestrator([
1706-
new FirstInFirstOutPolicy(),
1707-
])), new SchedulerMiddlewareStack(), new EventDispatcher());
1708-
1709-
$timezone = $scheduler->getTimezone();
1710-
self::assertSame('UTC', $timezone->getName());
1711-
}
1712-
17131647
/**
17141648
* @return Generator<array<int, ShellTask>>
17151649
*/

0 commit comments

Comments
 (0)