From de68c8ecb5bf39ff17ba036bacc5bf9afc892b2d Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Tue, 28 Jan 2025 22:16:25 +0100 Subject: [PATCH 1/3] [TASK] Add accessor tests for `OutputFormat` (part 1) Currently, this class uses magic getters and setters. These should be proper methods instead. But first, we should have tests for the accessors. This is part 1. --- tests/Unit/OutputFormatTest.php | 307 ++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 tests/Unit/OutputFormatTest.php diff --git a/tests/Unit/OutputFormatTest.php b/tests/Unit/OutputFormatTest.php new file mode 100644 index 000000000..6e4388806 --- /dev/null +++ b/tests/Unit/OutputFormatTest.php @@ -0,0 +1,307 @@ +subject = new OutputFormat(); + } + + /** + * @test + */ + public function getStringQuotingTypeInitiallyReturnsDoubleQuote(): void + { + self::assertSame('"', $this->subject->getStringQuotingType()); + } + + /** + * @test + */ + public function setStringQuotingTypeSetsStringQuotingType(): void + { + $value = 'x'; + $this->subject->setStringQuotingType($value); + + self::assertSame($value, $this->subject->getStringQuotingType()); + } + + /** + * @test + */ + public function setStringQuotingTypeProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setStringQuotingType('x')); + } + + /** + * @test + */ + public function getRGBHashNotationInitiallyReturnsTrue(): void + { + self::assertTrue($this->subject->getRGBHashNotation()); + } + + /** + * @return array + */ + public static function provideBooleans(): array + { + return [ + 'true' => [true], + 'false' => [false], + ]; + } + + /** + * @test + * + * @dataProvider provideBooleans + */ + public function setRGBHashNotationSetsRGBHashNotation(bool $value): void + { + $this->subject->setRGBHashNotation($value); + + self::assertSame($value, $this->subject->getRGBHashNotation()); + } + + /** + * @test + */ + public function setRGBHashNotationProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setRGBHashNotation(true)); + } + + /** + * @test + */ + public function getSemicolonAfterLastRuleInitiallyReturnsTrue(): void + { + self::assertTrue($this->subject->getSemicolonAfterLastRule()); + } + + /** + * @test + * + * @dataProvider provideBooleans + */ + public function setSemicolonAfterLastRuleSetsSemicolonAfterLastRule(bool $value): void + { + $this->subject->setSemicolonAfterLastRule($value); + + self::assertSame($value, $this->subject->getSemicolonAfterLastRule()); + } + + /** + * @test + */ + public function setSemicolonAfterLastRuleProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSemicolonAfterLastRule(true)); + } + + /** + * @test + */ + public function getSpaceAfterRuleNameInitiallyReturnsSingleSpace(): void + { + self::assertSame(' ', $this->subject->getSpaceAfterRuleName()); + } + + /** + * @test + */ + public function setSpaceAfterRuleNameSetsSpaceAfterRuleName(): void + { + $value = ' '; + $this->subject->setSpaceAfterRuleName($value); + + self::assertSame($value, $this->subject->getSpaceAfterRuleName()); + } + + /** + * @test + */ + public function setSpaceAfterRuleNameProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceAfterRuleName(' ')); + } + + /** + * @test + */ + public function getSpaceBeforeRulesInitiallyReturnsEmptyString(): void + { + self::assertSame('', $this->subject->getSpaceBeforeRules()); + } + + /** + * @test + */ + public function setSpaceBeforeRulesSetsSpaceBeforeRules(): void + { + $value = ' '; + $this->subject->setSpaceBeforeRules($value); + + self::assertSame($value, $this->subject->getSpaceBeforeRules()); + } + + /** + * @test + */ + public function setSpaceBeforeRulesProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceBeforeRules(' ')); + } + + /** + * @test + */ + public function getSpaceAfterRulesInitiallyReturnsEmptyString(): void + { + self::assertSame('', $this->subject->getSpaceAfterRules()); + } + + /** + * @test + */ + public function setSpaceAfterRulesSetsSpaceAfterRules(): void + { + $value = ' '; + $this->subject->setSpaceAfterRules($value); + + self::assertSame($value, $this->subject->getSpaceAfterRules()); + } + + /** + * @test + */ + public function setSpaceAfterRulesProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceAfterRules(' ')); + } + + /** + * @test + */ + public function getSpaceBetweenRulesInitiallyReturnsEmptyString(): void + { + self::assertSame('', $this->subject->getSpaceBetweenRules()); + } + + /** + * @test + */ + public function setSpaceBetweenRulesSetsSpaceBetweenRules(): void + { + $value = ' '; + $this->subject->setSpaceBetweenRules($value); + + self::assertSame($value, $this->subject->getSpaceBetweenRules()); + } + + /** + * @test + */ + public function setSpaceBetweenRulesProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceBetweenRules(' ')); + } + + /** + * @test + */ + public function getSpaceBeforeBlocksInitiallyReturnsEmptyString(): void + { + self::assertSame('', $this->subject->getSpaceBeforeBlocks()); + } + + /** + * @test + */ + public function setSpaceBeforeBlocksSetsSpaceBeforeBlocks(): void + { + $value = ' '; + $this->subject->setSpaceBeforeBlocks($value); + + self::assertSame($value, $this->subject->getSpaceBeforeBlocks()); + } + + /** + * @test + */ + public function setSpaceBeforeBlocksProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceBeforeBlocks(' ')); + } + + /** + * @test + */ + public function getSpaceAfterBlocksInitiallyReturnsEmptyString(): void + { + self::assertSame('', $this->subject->getSpaceAfterBlocks()); + } + + /** + * @test + */ + public function setSpaceAfterBlocksSetsSpaceAfterBlocks(): void + { + $value = ' '; + $this->subject->setSpaceAfterBlocks($value); + + self::assertSame($value, $this->subject->getSpaceAfterBlocks()); + } + + /** + * @test + */ + public function setSpaceAfterBlocksProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceAfterBlocks(' ')); + } + + /** + * @test + */ + public function getSpaceBetweenBlocksInitiallyReturnsNewline(): void + { + self::assertSame("\n", $this->subject->getSpaceBetweenBlocks()); + } + + /** + * @test + */ + public function setSpaceBetweenBlocksSetsSpaceBetweenBlocks(): void + { + $value = ' '; + $this->subject->setSpaceBetweenBlocks($value); + + self::assertSame($value, $this->subject->getSpaceBetweenBlocks()); + } + + /** + * @test + */ + public function setSpaceBetweenBlocksProvidesFluentInterface(): void + { + self::assertSame($this->subject, $this->subject->setSpaceBetweenBlocks(' ')); + } +} From f0b778f2c0d1d0c8d260ffc204871c2396489d2c Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Fri, 31 Jan 2025 13:11:19 +0100 Subject: [PATCH 2/3] Changes suggested in code review --- tests/Unit/OutputFormatTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Unit/OutputFormatTest.php b/tests/Unit/OutputFormatTest.php index 6e4388806..85d5d1092 100644 --- a/tests/Unit/OutputFormatTest.php +++ b/tests/Unit/OutputFormatTest.php @@ -35,7 +35,7 @@ public function getStringQuotingTypeInitiallyReturnsDoubleQuote(): void */ public function setStringQuotingTypeSetsStringQuotingType(): void { - $value = 'x'; + $value = '"'; $this->subject->setStringQuotingType($value); self::assertSame($value, $this->subject->getStringQuotingType()); @@ -46,7 +46,7 @@ public function setStringQuotingTypeSetsStringQuotingType(): void */ public function setStringQuotingTypeProvidesFluentInterface(): void { - self::assertSame($this->subject, $this->subject->setStringQuotingType('x')); + self::assertSame($this->subject, $this->subject->setStringQuotingType('"')); } /** @@ -129,7 +129,7 @@ public function getSpaceAfterRuleNameInitiallyReturnsSingleSpace(): void */ public function setSpaceAfterRuleNameSetsSpaceAfterRuleName(): void { - $value = ' '; + $value = "\n"; $this->subject->setSpaceAfterRuleName($value); self::assertSame($value, $this->subject->getSpaceAfterRuleName()); @@ -140,7 +140,7 @@ public function setSpaceAfterRuleNameSetsSpaceAfterRuleName(): void */ public function setSpaceAfterRuleNameProvidesFluentInterface(): void { - self::assertSame($this->subject, $this->subject->setSpaceAfterRuleName(' ')); + self::assertSame($this->subject, $this->subject->setSpaceAfterRuleName("\n")); } /** From 19261f0b122869f19c1dc3bf4219315b21282c26 Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Fri, 31 Jan 2025 23:04:26 +0100 Subject: [PATCH 3/3] Change as suggested in code review --- tests/Unit/OutputFormatTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/OutputFormatTest.php b/tests/Unit/OutputFormatTest.php index 85d5d1092..482be82fb 100644 --- a/tests/Unit/OutputFormatTest.php +++ b/tests/Unit/OutputFormatTest.php @@ -35,7 +35,7 @@ public function getStringQuotingTypeInitiallyReturnsDoubleQuote(): void */ public function setStringQuotingTypeSetsStringQuotingType(): void { - $value = '"'; + $value = "'"; $this->subject->setStringQuotingType($value); self::assertSame($value, $this->subject->getStringQuotingType());