From 00ccf833b4fc3426f9124982df3b92490b1c5752 Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Sun, 3 May 2026 11:39:35 +0200 Subject: [PATCH 1/3] [TASK] Test `LineName::getArrayRepresentation()` The tests are basically the same as those for the parent class `ValueList`. The main difference is that the default separator now is a space, not a comma. Part of #1440. --- src/Value/LineName.php | 10 ------ tests/Unit/Value/LineNameTest.php | 57 +++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/src/Value/LineName.php b/src/Value/LineName.php index a2ec2bea..e0c1c11c 100644 --- a/src/Value/LineName.php +++ b/src/Value/LineName.php @@ -62,14 +62,4 @@ public function render(OutputFormat $outputFormat): string { return '[' . parent::render(OutputFormat::createCompact()) . ']'; } - - /** - * @return array|null> - * - * @internal - */ - public function getArrayRepresentation(): array - { - throw new \BadMethodCallException('`getArrayRepresentation` is not yet implemented for `' . self::class . '`'); - } } diff --git a/tests/Unit/Value/LineNameTest.php b/tests/Unit/Value/LineNameTest.php index e48670f8..3167b5ca 100644 --- a/tests/Unit/Value/LineNameTest.php +++ b/tests/Unit/Value/LineNameTest.php @@ -6,6 +6,7 @@ use PHPUnit\Framework\TestCase; use Sabberworm\CSS\Value\LineName; +use Sabberworm\CSS\Value\Size; /** * @covers \Sabberworm\CSS\Value\LineName @@ -17,12 +18,62 @@ final class LineNameTest extends TestCase /** * @test */ - public function getArrayRepresentationThrowsException(): void + public function getArrayRepresentationIncludesClassName(): void { - $this->expectException(\BadMethodCallException::class); + $subject = new LineName(); + + $result = $subject->getArrayRepresentation(); + + self::assertSame('LineName', $result['class']); + } + + /** + * @test + */ + public function getArrayRepresentationIncludesStringComponent(): void + { + $subject = new LineName(['Helvetica']); + + $result = $subject->getArrayRepresentation(); + + self::assertSame('Helvetica', $result['components'][0]['value']); + } + + /** + * @test + */ + public function getArrayRepresentationIncludesValueComponent(): void + { + $subject = new LineName([new Size(1)]); + $result = $subject->getArrayRepresentation(); + + self::assertSame('Size', $result['components'][0]['class']); + } + + /** + * @test + */ + public function getArrayRepresentationIncludesMultipleMixedComponents(): void + { + $subject = new LineName([new Size(1), '+', new Size(2)]); + + $result = $subject->getArrayRepresentation(); + + self::assertSame('Size', $result['components'][0]['class']); + self::assertSame('+', $result['components'][1]['value']); + self::assertSame('Size', $result['components'][2]['class']); + } + + /** + * @test + */ + public function getArrayRepresentationIncludesSpaceSeparator(): void + { $subject = new LineName(); - $subject->getArrayRepresentation(); + $result = $subject->getArrayRepresentation(); + + self::assertSame(' ', $result['separator']); } } From 163e430316cd436273daad77d9b995c17718b36b Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Sat, 16 May 2026 13:10:29 +0200 Subject: [PATCH 2/3] Only use strings, and test for multiple strings --- tests/Unit/Value/LineNameTest.php | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/tests/Unit/Value/LineNameTest.php b/tests/Unit/Value/LineNameTest.php index 3167b5ca..da2ef9bf 100644 --- a/tests/Unit/Value/LineNameTest.php +++ b/tests/Unit/Value/LineNameTest.php @@ -6,7 +6,6 @@ use PHPUnit\Framework\TestCase; use Sabberworm\CSS\Value\LineName; -use Sabberworm\CSS\Value\Size; /** * @covers \Sabberworm\CSS\Value\LineName @@ -30,40 +29,31 @@ public function getArrayRepresentationIncludesClassName(): void /** * @test */ - public function getArrayRepresentationIncludesStringComponent(): void + public function getArrayRepresentationCanIncludeOneStringComponent(): void { - $subject = new LineName(['Helvetica']); + $name = 'main-start'; + $subject = new LineName([$name]); $result = $subject->getArrayRepresentation(); - self::assertSame('Helvetica', $result['components'][0]['value']); + self::assertSame($name, $result['components'][0]['value']); } /** * @test */ - public function getArrayRepresentationIncludesValueComponent(): void + public function getArrayRepresentationCanIncludesMultipleStringComponents(): void { - $subject = new LineName([new Size(1)]); + $name1 = 'main-start'; + $name2 = 'main-end'; + $subject = new LineName([$name1, $name2]); $result = $subject->getArrayRepresentation(); - self::assertSame('Size', $result['components'][0]['class']); + self::assertSame($name1, $result['components'][0]['value']); + self::assertSame($name2, $result['components'][1]['value']); } - /** - * @test - */ - public function getArrayRepresentationIncludesMultipleMixedComponents(): void - { - $subject = new LineName([new Size(1), '+', new Size(2)]); - - $result = $subject->getArrayRepresentation(); - - self::assertSame('Size', $result['components'][0]['class']); - self::assertSame('+', $result['components'][1]['value']); - self::assertSame('Size', $result['components'][2]['class']); - } /** * @test From 2b61dd9f39da5c1d95f382e20e28c0f9fc042e58 Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Sat, 16 May 2026 17:25:44 +0200 Subject: [PATCH 3/3] Singular, not plural Co-authored-by: JakeQZ --- tests/Unit/Value/LineNameTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Value/LineNameTest.php b/tests/Unit/Value/LineNameTest.php index da2ef9bf..65673005 100644 --- a/tests/Unit/Value/LineNameTest.php +++ b/tests/Unit/Value/LineNameTest.php @@ -42,7 +42,7 @@ public function getArrayRepresentationCanIncludeOneStringComponent(): void /** * @test */ - public function getArrayRepresentationCanIncludesMultipleStringComponents(): void + public function getArrayRepresentationCanIncludeMultipleStringComponents(): void { $name1 = 'main-start'; $name2 = 'main-end';