Skip to content

Commit 02e9a2f

Browse files
committed
fix call static in SerializableTrait
1 parent 92e9558 commit 02e9a2f

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

src/EnumSerializableTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ trait EnumSerializableTrait
2424
{
2525
/**
2626
* The method will be defined by MabeEnum\Enum
27-
* @return null|bool|int|float|string
27+
* @return null|bool|int|float|string|array
2828
*/
2929
abstract public function getValue();
3030

@@ -49,7 +49,7 @@ public function serialize(): string
4949
public function unserialize($serialized): void
5050
{
5151
$value = \unserialize($serialized);
52-
$constants = self::getConstants();
52+
$constants = static::getConstants();
5353
$name = \array_search($value, $constants, true);
5454
if ($name === false) {
5555
$message = \is_scalar($value)

tests/MabeEnumTest/EnumSerializableTraitTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use LogicException;
66
use MabeEnum\Enum;
7+
use MabeEnumTest\TestAsset\ExtendedSerializableEnum;
78
use MabeEnumTest\TestAsset\SerializableEnum;
89
use PHPUnit\Framework\TestCase;
910
use ReflectionClass;
@@ -65,6 +66,18 @@ public function testUnserializeThrowsLogicExceptionOnChangingValue()
6566
$enum->unserialize(serialize(SerializableEnum::STR));
6667
}
6768

69+
public function testInheritence()
70+
{
71+
$enum = ExtendedSerializableEnum::EXTENDED();
72+
73+
$serialized = serialize($enum);
74+
$this->assertInternalType('string', $serialized);
75+
76+
$unserialized = unserialize($serialized);
77+
$this->assertInstanceOf(ExtendedSerializableEnum::class, $unserialized);
78+
$this->assertSame($enum->getValue(), $unserialized->getValue());
79+
}
80+
6881
/**
6982
* Clears all instantiated enumerations and detected constants of the given enumerator
7083
* @param string $enumeration
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace MabeEnumTest\TestAsset;
4+
5+
/**
6+
* Extended serializable enumeration
7+
*
8+
* @link http://github.com/marc-mabe/php-enum for the canonical source repository
9+
* @copyright Copyright (c) 2017 Marc Bennewitz
10+
* @license http://github.com/marc-mabe/php-enum/blob/master/LICENSE.txt New BSD License
11+
*/
12+
class ExtendedSerializableEnum extends SerializableEnum
13+
{
14+
const EXTENDED = 'extended';
15+
}

0 commit comments

Comments
 (0)