Skip to content

Commit da295d9

Browse files
committed
Fix arg type and add test
1 parent a04756f commit da295d9

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/Symfony/Component/Routing/Requirement/EnumRequirement.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@ final class EnumRequirement implements \Stringable
2626
* @param class-string<T> $enum
2727
* @param T|list<T> $cases
2828
*/
29-
public function __construct(string $enum, string|array $cases = [])
29+
public function __construct(string $enum, \BackedEnum|array $cases = [])
3030
{
3131
if (!is_subclass_of($enum, \BackedEnum::class, true)) {
3232
throw new InvalidArgumentException(sprintf('"%s" is not a \BackedEnum class.', $enum));
3333
}
3434

35-
$cases = (array) $cases;
35+
if (!\is_array($cases)) {
36+
$cases = [$cases];
37+
}
38+
3639
foreach ($cases as $case) {
3740
if (!$case instanceof \BackedEnum) {
3841
throw new InvalidArgumentException(sprintf('Case must be a \BackedEnum instance, "%s" given.', get_debug_type($case)));

src/Symfony/Component/Routing/Tests/Requirement/EnumRequirementTest.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public function testCaseFromAnotherEnum()
4949
/**
5050
* @dataProvider provideToString
5151
*/
52-
public function testToString(string $expected, string $enum, array $cases = [])
52+
public function testToString(string $expected, string $enum, \BackedEnum|array $cases = [])
5353
{
5454
$this->assertSame($expected, (string) new EnumRequirement($enum, $cases));
5555
}
@@ -60,6 +60,7 @@ public function provideToString()
6060
['hearts|diamonds|clubs|spades', TestStringBackedEnum::class],
6161
['10|20|30|40', TestIntBackedEnum::class],
6262
['diamonds|spades', TestStringBackedEnum::class, [TestStringBackedEnum::Diamonds, TestStringBackedEnum::Spades]],
63+
['diamonds', TestStringBackedEnum::class, TestStringBackedEnum::Diamonds],
6364
['hearts|diamonds|clubs|spa\|des', TestStringBackedEnum2::class],
6465
];
6566
}

0 commit comments

Comments
 (0)