Skip to content

Commit 14f827b

Browse files
committed
Add test for 0 and '0' in PeriodicalTrigger
Fix '0' case error and remove duplicate code
1 parent 1dcdb66 commit 14f827b

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

src/Symfony/Component/Scheduler/Tests/Trigger/PeriodicalTriggerTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public static function getInvalidIntervals(): iterable
7373
yield ['3600.5'];
7474
yield ['-3600'];
7575
yield [-3600];
76+
yield ['0'];
77+
yield [0];
7678
}
7779

7880
/**

src/Symfony/Component/Scheduler/Trigger/PeriodicalTrigger.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,11 @@ public function __construct(
3030
$this->from = \is_string($from) ? new \DateTimeImmutable($from) : $from;
3131
$this->until = \is_string($until) ? new \DateTimeImmutable($until) : $until;
3232

33-
if (\is_int($interval) || \is_float($interval)) {
34-
if (0 >= $interval) {
33+
if (\is_int($interval) || \is_float($interval) || \is_string($interval) && ctype_digit($interval)) {
34+
if (0 >= (int) $interval) {
3535
throw new InvalidArgumentException('The "$interval" argument must be greater than zero.');
3636
}
3737

38-
$this->intervalInSeconds = $interval;
39-
$this->description = sprintf('every %d seconds', $this->intervalInSeconds);
40-
41-
return;
42-
}
43-
44-
if (\is_string($interval) && ctype_digit($interval)) {
4538
$this->intervalInSeconds = (int) $interval;
4639
$this->description = sprintf('every %d seconds', $this->intervalInSeconds);
4740

0 commit comments

Comments
 (0)