diff --git a/src/Handlers/CompositeHandler.php b/src/Handlers/CompositeHandler.php index f32c931..7ce6c7b 100644 --- a/src/Handlers/CompositeHandler.php +++ b/src/Handlers/CompositeHandler.php @@ -12,6 +12,7 @@ use DateTimeInterface; use Respect\Stringifier\Handler; +use Respect\Stringifier\Quoter; use Respect\Stringifier\Quoters\CodeQuoter; use function array_unshift; @@ -31,10 +32,8 @@ public function __construct(Handler ...$handlers) $this->handlers = $handlers; } - public static function create(): self + public static function create(Quoter $quoter = new CodeQuoter(self::MAXIMUM_LENGTH)): self { - $quoter = new CodeQuoter(self::MAXIMUM_LENGTH); - $handler = new self( new InfiniteNumberHandler($quoter), new NotANumberHandler($quoter), diff --git a/tests/unit/Handlers/CompositeHandlerTest.php b/tests/unit/Handlers/CompositeHandlerTest.php index 6887d12..f3117e8 100644 --- a/tests/unit/Handlers/CompositeHandlerTest.php +++ b/tests/unit/Handlers/CompositeHandlerTest.php @@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase; use Respect\Stringifier\Handlers\CompositeHandler; use Respect\Stringifier\Test\Double\FakeHandler; +use Respect\Stringifier\Test\Double\FakeQuoter; use Respect\Stringifier\Test\Double\LameHandler; use stdClass; @@ -75,4 +76,13 @@ public function itShouldCreateDefaultCompositeHandler(): void { self::assertInstanceOf(CompositeHandler::class, CompositeHandler::create()); } + + #[Test] + public function itShouldCreateCompositeHandlerWithTheGivenQuoter(): void + { + $quoter = new FakeQuoter(); + $sut = CompositeHandler::create($quoter); + + self::assertSame($quoter->quote('true', self::DEPTH), $sut->handle(true, self::DEPTH)); + } }