Skip to content

Commit 92e9558

Browse files
committed
Enum::__callStatic() should call static::byName() instead of self::byName()
1 parent 30ab894 commit 92e9558

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/Enum.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,6 @@ private static function noAmbiguousValues($constants)
423423
*/
424424
final public static function __callStatic(string $method, array $args)
425425
{
426-
return self::byName($method);
426+
return static::byName($method);
427427
}
428428
}

tests/MabeEnumTest/EnumTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,22 @@ public function testEnumInheritance()
101101
), EnumInheritance::getConstants());
102102

103103
$enum = EnumInheritance::get(EnumInheritance::ONE);
104+
$this->assertInstanceOf(EnumInheritance::class, $enum);
104105
$this->assertSame(EnumInheritance::ONE, $enum->getValue());
105106
$this->assertSame(0, $enum->getOrdinal());
106107

107108
$enum = EnumInheritance::get(EnumInheritance::INHERITANCE);
109+
$this->assertInstanceOf(EnumInheritance::class, $enum);
110+
$this->assertSame(EnumInheritance::INHERITANCE, $enum->getValue());
111+
$this->assertSame(17, $enum->getOrdinal());
112+
113+
$enum = EnumInheritance::ONE();
114+
$this->assertInstanceOf(EnumInheritance::class, $enum);
115+
$this->assertSame(EnumInheritance::ONE, $enum->getValue());
116+
$this->assertSame(0, $enum->getOrdinal());
117+
118+
$enum = EnumInheritance::INHERITANCE();
119+
$this->assertInstanceOf(EnumInheritance::class, $enum);
108120
$this->assertSame(EnumInheritance::INHERITANCE, $enum->getValue());
109121
$this->assertSame(17, $enum->getOrdinal());
110122
}

0 commit comments

Comments
 (0)