Skip to content

Commit b0eb786

Browse files
committed
Rename JSON encodable stringifier
That stringifier stringifies anything PHP can encode into JSON, outputting a JSON string. It makes more sense to name it as something that indicates better what's its behavior. Signed-off-by: Henrique Moody <[email protected]>
1 parent 6364643 commit b0eb786

File tree

4 files changed

+50
-51
lines changed

4 files changed

+50
-51
lines changed

src/Stringifiers/ClusterStringifier.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,22 @@ public static function createDefault(): self
3838

3939
$stringifier = new self();
4040

41-
$jsonParsableStringifier = new JsonParsableStringifier();
41+
$jsonEncodableStringifier = new JsonEncodableStringifier();
4242

4343
$stringifier->setStringifiers([
4444
new IteratorObjectStringifier($stringifier, $quoter),
4545
new DateTimeStringifier($quoter, DateTimeInterface::ATOM),
4646
new ThrowableStringifier($stringifier, $quoter),
47-
new StringableObjectStringifier($jsonParsableStringifier, $quoter),
48-
new JsonSerializableObjectStringifier($jsonParsableStringifier, $quoter),
47+
new StringableObjectStringifier($jsonEncodableStringifier, $quoter),
48+
new JsonSerializableObjectStringifier($jsonEncodableStringifier, $quoter),
4949
new ObjectStringifier($stringifier, $quoter),
5050
new ArrayStringifier($stringifier, $quoter, self::MAXIMUM_DEPTH, self::MAXIMUM_NUMBER_OF_ITEMS),
5151
new InfiniteNumberStringifier($quoter),
5252
new NotANumberStringifier($quoter),
5353
new ResourceStringifier($quoter),
5454
new BoolStringifier($quoter),
5555
new NullStringifier($quoter),
56-
$jsonParsableStringifier,
56+
$jsonEncodableStringifier,
5757
]);
5858

5959
return $stringifier;

src/Stringifiers/JsonParsableStringifier.php renamed to src/Stringifiers/JsonEncodableStringifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use const JSON_UNESCAPED_SLASHES;
1919
use const JSON_UNESCAPED_UNICODE;
2020

21-
final class JsonParsableStringifier implements Stringifier
21+
final class JsonEncodableStringifier implements Stringifier
2222
{
2323
public function stringify(mixed $raw, int $depth): ?string
2424
{
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
/*
4+
* This file is part of Respect/Stringifier.
5+
* Copyright (c) Henrique Moody <[email protected]>
6+
* SPDX-License-Identifier: MIT
7+
*/
8+
9+
declare(strict_types=1);
10+
11+
namespace Respect\Stringifier\Test\Unit\Stringifiers;
12+
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
use PHPUnit\Framework\Attributes\Test;
15+
use PHPUnit\Framework\TestCase;
16+
use Respect\Stringifier\Stringifiers\JsonEncodableStringifier;
17+
18+
use function tmpfile;
19+
20+
#[CoversClass(JsonEncodableStringifier::class)]
21+
final class JsonEncodableStringifierTest extends TestCase
22+
{
23+
private const DEPTH = 0;
24+
25+
#[Test]
26+
public function itShouldNotStringifyRawValueWhenItCannotBeConvertedToJson(): void
27+
{
28+
$sut = new JsonEncodableStringifier();
29+
30+
self::assertNull($sut->stringify(tmpfile(), self::DEPTH));
31+
}
32+
33+
#[Test]
34+
public function itShouldStringifyRawValueWhenItCanBeConvertedToJson(): void
35+
{
36+
$raw = 'É uma \' " string';
37+
38+
$sut = new JsonEncodableStringifier();
39+
40+
$actual = $sut->stringify($raw, self::DEPTH);
41+
$expected = '"É uma \' \" string"';
42+
43+
self::assertSame($expected, $actual);
44+
}
45+
}

tests/unit/Stringifiers/JsonParsableStringifierTest.php

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)