diff --git a/src/Value/Value.php b/src/Value/Value.php index 1ea78811..67065d37 100644 --- a/src/Value/Value.php +++ b/src/Value/Value.php @@ -11,6 +11,7 @@ use Sabberworm\CSS\Parsing\UnexpectedTokenException; use Sabberworm\CSS\Position\Position; use Sabberworm\CSS\Position\Positionable; +use Sabberworm\CSS\ShortClassNameProvider; use function Safe\preg_match; @@ -21,6 +22,7 @@ abstract class Value implements CSSElement, Positionable { use Position; + use ShortClassNameProvider; /** * @param int<1, max>|null $lineNumber @@ -188,9 +190,9 @@ public static function parsePrimitiveValue(ParserState $parserState) */ public function getArrayRepresentation(): array { - throw new \BadMethodCallException( - '`getArrayRepresentation` is not yet implemented for `' . static::class . '`' - ); + return [ + 'class' => $this->getShortClassName(), + ]; } /** diff --git a/tests/Unit/Value/ValueTest.php b/tests/Unit/Value/ValueTest.php index b97e5f65..dfe46917 100644 --- a/tests/Unit/Value/ValueTest.php +++ b/tests/Unit/Value/ValueTest.php @@ -179,12 +179,12 @@ public function parsesArithmeticWithMalformedOperandsInFunctions(string $leftOpe /** * @test */ - public function getArrayRepresentationThrowsException(): void + public function getArrayRepresentationIncludesClassName(): void { - $this->expectException(\BadMethodCallException::class); - $subject = new ConcreteValue(); - $subject->getArrayRepresentation(); + $result = $subject->getArrayRepresentation(); + + self::assertSame('ConcreteValue', $result['class']); } }