From 89d17c745d3c2154415867c8879f9dee97c5cc6a Mon Sep 17 00:00:00 2001 From: Alban Baixas Date: Sun, 30 Jan 2022 09:21:04 +0100 Subject: [PATCH] Add DatePeriod test --- stubs/date.stub | 4 ++-- .../PHPStan/Analyser/data/date-period-return-types.php | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/stubs/date.stub b/stubs/date.stub index 8f65630b534..1c4b95dcae7 100644 --- a/stubs/date.stub +++ b/stubs/date.stub @@ -20,7 +20,7 @@ class DatePeriod /** * @return TEnd */ - public function getEndDate() + public function getEndDate(): ?DateTimeInterface { } @@ -28,7 +28,7 @@ class DatePeriod /** * @return TRecurrences */ - public function getRecurrences() + public function getRecurrences(): ?int { } diff --git a/tests/PHPStan/Analyser/data/date-period-return-types.php b/tests/PHPStan/Analyser/data/date-period-return-types.php index 1acc7df2f8d..d8bf035d848 100644 --- a/tests/PHPStan/Analyser/data/date-period-return-types.php +++ b/tests/PHPStan/Analyser/data/date-period-return-types.php @@ -8,14 +8,24 @@ $recurrences = 4; $iso = 'R4/2012-07-01T00:00:00Z/P7D'; +$datePeriodList = []; + $datePeriod = new DatePeriod($start, $interval, $end); assertType(\DateTimeInterface::class, $datePeriod->getEndDate()); assertType('null', $datePeriod->getRecurrences()); +$datePeriodList[] = $datePeriod; $datePeriod = new DatePeriod($start, $interval, $recurrences); assertType('null', $datePeriod->getEndDate()); assertType('int', $datePeriod->getRecurrences()); +$datePeriodList[] = $datePeriod; $datePeriod = new DatePeriod($iso); assertType('null', $datePeriod->getEndDate()); assertType('int', $datePeriod->getRecurrences()); +$datePeriodList[] = $datePeriod; + +/** @var DatePeriod $datePeriod */ +$datePeriod = $datePeriodList[random_int(0, 2)]; +assertType(\DateTimeInterface::class . '|null', $datePeriod->getEndDate()); +assertType('int|null', $datePeriod->getRecurrences());