Skip to content

Commit 1f73c10

Browse files
committed
Cover all expected usages of VarDriver
1 parent edee19d commit 1f73c10

File tree

2 files changed

+77
-4
lines changed

2 files changed

+77
-4
lines changed

src/Drivers/ObjectDriver.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ public function serialize($data): string
2424

2525
$serializer = new Serializer($normalizers, $encoders);
2626

27-
return $serializer->serialize($data, 'json', [
28-
'json_encode_options' => JSON_PRETTY_PRINT,
29-
]);
27+
return $serializer->serialize(
28+
$data,
29+
'json',
30+
[
31+
'json_encode_options' => JSON_PRETTY_PRINT,
32+
]
33+
);
3034
}
3135

3236
public function extension(): string

tests/Unit/Drivers/ObjectDriverTest.php

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,76 @@
88
class ObjectDriverTest extends TestCase
99
{
1010
/** @test */
11-
public function it_can_serialize_an_object()
11+
public function it_can_serialize_a_string()
12+
{
13+
$driver = new ObjectDriver();
14+
15+
$this->assertEquals('"foo"', $driver->serialize('foo'));
16+
}
17+
18+
/** @test */
19+
public function it_can_serialize_an_integer()
20+
{
21+
$driver = new ObjectDriver();
22+
23+
$this->assertEquals('1', $driver->serialize(1));
24+
}
25+
26+
/** @test */
27+
public function it_can_serialize_a_float()
28+
{
29+
$driver = new ObjectDriver();
30+
31+
$this->assertEquals('1.5', $driver->serialize(1.5));
32+
}
33+
34+
/** @test */
35+
public function it_can_serialize_an_associative_array()
36+
{
37+
$driver = new ObjectDriver();
38+
39+
$expected = <<<'JSON'
40+
{
41+
"foo": {
42+
"bar": "baz"
43+
}
44+
}
45+
JSON;
46+
47+
$this->assertEquals($expected, $driver->serialize(['foo' => ['bar' => 'baz']]));
48+
}
49+
50+
/** @test */
51+
public function it_can_serialize_an_indexed_array_without_keys()
52+
{
53+
$driver = new ObjectDriver();
54+
55+
$expected = <<<'JSON'
56+
[
57+
"foo",
58+
"bar"
59+
]
60+
JSON;
61+
62+
$this->assertEquals($expected, $driver->serialize(['foo', 'bar']));
63+
}
64+
65+
/** @test */
66+
public function it_can_serialize_a_simple_object()
67+
{
68+
$driver = new ObjectDriver();
69+
70+
$expected = <<<'JSON'
71+
{
72+
"foo": "bar"
73+
}
74+
JSON;
75+
76+
$this->assertEquals($expected, $driver->serialize((object) ['foo' => 'bar']));
77+
}
78+
79+
/** @test */
80+
public function it_can_serialize_a_class_instance()
1281
{
1382
$driver = new ObjectDriver();
1483

0 commit comments

Comments
 (0)