Skip to content

Commit d0de92a

Browse files
Fix merge
1 parent 95791ff commit d0de92a

File tree

9 files changed

+84
-46
lines changed

9 files changed

+84
-46
lines changed

Tests/Fixtures/stream_writer/double_nested_array.php

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,47 @@
11
<?php
22

3+
/**
4+
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedArray> $data
5+
*/
36
return static function (mixed $data, \Psr\Container\ContainerInterface $valueTransformers, array $options): \Traversable {
47
try {
5-
yield '[';
6-
$prefix = '';
8+
yield "[";
9+
$prefix1 = '';
710
foreach ($data as $value1) {
8-
yield $prefix;
9-
yield '{"dummies":{';
10-
$prefix = '';
11+
$prefix2 = '';
12+
yield "{$prefix1}{{$prefix2}\"dummies\":";
13+
yield "{";
14+
$prefix3 = '';
1115
foreach ($value1->dummies as $key2 => $value2) {
1216
$key2 = is_int($key2) ? $key2 : \substr(\json_encode($key2), 1, -1);
13-
yield "{$prefix}\"{$key2}\":";
14-
yield '{"dummies":{';
15-
$prefix = '';
17+
$prefix4 = '';
18+
yield "{$prefix3}\"{$key2}\":{{$prefix4}\"dummies\":";
19+
yield "{";
20+
$prefix5 = '';
1621
foreach ($value2->dummies as $key3 => $value3) {
1722
$key3 = is_int($key3) ? $key3 : \substr(\json_encode($key3), 1, -1);
18-
yield "{$prefix}\"{$key3}\":";
19-
yield '{"id":';
23+
$prefix6 = '';
24+
yield "{$prefix5}\"{$key3}\":{{$prefix6}\"id\":";
2025
yield \json_encode($value3->id, \JSON_THROW_ON_ERROR, 506);
21-
yield ',"name":';
26+
$prefix6 = ',';
27+
yield "{$prefix6}\"name\":";
2228
yield \json_encode($value3->name, \JSON_THROW_ON_ERROR, 506);
23-
yield '}';
24-
$prefix = ',';
29+
yield "}";
30+
$prefix5 = ',';
2531
}
26-
yield '},"customProperty":';
32+
$prefix4 = ',';
33+
yield "}{$prefix4}\"customProperty\":";
2734
yield \json_encode($value2->customProperty, \JSON_THROW_ON_ERROR, 508);
28-
yield '}';
29-
$prefix = ',';
35+
yield "}";
36+
$prefix3 = ',';
3037
}
31-
yield '},"stringProperty":';
38+
$prefix2 = ',';
39+
yield "}{$prefix2}\"stringProperty\":";
3240
yield \json_encode($value1->stringProperty, \JSON_THROW_ON_ERROR, 510);
33-
yield '}';
34-
$prefix = ',';
41+
yield "}";
42+
$prefix1 = ',';
3543
}
36-
yield ']';
44+
yield "]";
3745
} catch (\JsonException $e) {
3846
throw new \Symfony\Component\JsonStreamer\Exception\NotEncodableValueException($e->getMessage(), 0, $e);
3947
}

Tests/Fixtures/stream_writer/double_nested_list.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/**
4-
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedArray> $data
4+
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedList> $data
55
*/
66
return static function (mixed $data, \Psr\Container\ContainerInterface $valueTransformers, array $options): \Traversable {
77
try {

Tests/Fixtures/stream_writer/nested_array.php

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,35 @@
11
<?php
22

3+
/**
4+
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithArray> $data
5+
*/
36
return static function (mixed $data, \Psr\Container\ContainerInterface $valueTransformers, array $options): \Traversable {
47
try {
5-
yield '[';
6-
$prefix = '';
8+
yield "[";
9+
$prefix1 = '';
710
foreach ($data as $value1) {
8-
yield $prefix;
9-
yield '{"dummies":{';
10-
$prefix = '';
11+
$prefix2 = '';
12+
yield "{$prefix1}{{$prefix2}\"dummies\":";
13+
yield "{";
14+
$prefix3 = '';
1115
foreach ($value1->dummies as $key2 => $value2) {
1216
$key2 = is_int($key2) ? $key2 : \substr(\json_encode($key2), 1, -1);
13-
yield "{$prefix}\"{$key2}\":";
14-
yield '{"id":';
17+
$prefix4 = '';
18+
yield "{$prefix3}\"{$key2}\":{{$prefix4}\"id\":";
1519
yield \json_encode($value2->id, \JSON_THROW_ON_ERROR, 508);
16-
yield ',"name":';
20+
$prefix4 = ',';
21+
yield "{$prefix4}\"name\":";
1722
yield \json_encode($value2->name, \JSON_THROW_ON_ERROR, 508);
18-
yield '}';
19-
$prefix = ',';
23+
yield "}";
24+
$prefix3 = ',';
2025
}
21-
yield '},"customProperty":';
26+
$prefix2 = ',';
27+
yield "}{$prefix2}\"customProperty\":";
2228
yield \json_encode($value1->customProperty, \JSON_THROW_ON_ERROR, 510);
23-
yield '}';
24-
$prefix = ',';
29+
yield "}";
30+
$prefix1 = ',';
2531
}
26-
yield ']';
32+
yield "]";
2733
} catch (\JsonException $e) {
2834
throw new \Symfony\Component\JsonStreamer\Exception\NotEncodableValueException($e->getMessage(), 0, $e);
2935
}

Tests/Fixtures/stream_writer/nested_list.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
/**
4-
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithArray> $data
4+
* @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithList> $data
55
*/
66
return static function (mixed $data, \Psr\Container\ContainerInterface $valueTransformers, array $options): \Traversable {
77
try {

Tests/Fixtures/stream_writer/object_with_nested_list_self.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
}
1111
$prefix1 = '';
1212
yield "{{$prefix1}\"dummies\":";
13-
yield "[";
13+
yield "{";
1414
$prefix2 = '';
15-
foreach ($data->dummies as $value1) {
16-
yield "{$prefix2}";
15+
foreach ($data->dummies as $key1 => $value1) {
16+
$key1 = is_int($key1) ? $key1 : \substr(\json_encode($key1), 1, -1);
17+
yield "{$prefix2}\"{$key1}\":";
1718
yield from $generators['Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedListDummies']($value1, $depth + 1);
1819
$prefix2 = ',';
1920
}
20-
yield "]}";
21+
yield "}}";
2122
};
2223
try {
2324
yield from $generators['Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedListDummies']($data, 0);

Tests/Fixtures/stream_writer/self_referencing_object_list.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
}
1111
$prefix1 = '';
1212
yield "{{$prefix1}\"items\":";
13-
yield "[";
13+
yield "{";
1414
$prefix2 = '';
15-
foreach ($data->items as $value1) {
16-
yield "{$prefix2}";
15+
foreach ($data->items as $key1 => $value1) {
16+
$key1 = is_int($key1) ? $key1 : \substr(\json_encode($key1), 1, -1);
17+
yield "{$prefix2}\"{$key1}\":";
1718
yield from $generators['Symfony\Component\JsonStreamer\Tests\Fixtures\Model\SelfReferencingDummyList']($value1, $depth + 1);
1819
$prefix2 = ',';
1920
}
20-
yield "]}";
21+
yield "}}";
2122
};
2223
try {
2324
yield from $generators['Symfony\Component\JsonStreamer\Tests\Fixtures\Model\SelfReferencingDummyList']($data, 0);

Tests/JsonStreamWriterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ public function testWriteNestedSelfList()
323323
$dummy->items = [new SelfReferencingDummyList(), new SelfReferencingDummyList(), new SelfReferencingDummyList()];
324324

325325
$this->assertWritten(
326-
'{"items":[{"items":[]},{"items":[]},{"items":[]}]}',
326+
'{"items":{"0":{"items":{}},"1":{"items":{}},"2":{"items":{}}}}',
327327
$dummy,
328328
Type::object(SelfReferencingDummyList::class)
329329
);
@@ -332,7 +332,7 @@ public function testWriteNestedSelfList()
332332
$dummy->dummies = [new DummyWithNestedListDummies(), new DummyWithNestedListDummies(), new DummyWithNestedListDummies()];
333333

334334
$this->assertWritten(
335-
'{"dummies":[{"dummies":[]},{"dummies":[]},{"dummies":[]}]}',
335+
'{"dummies":{"0":{"dummies":{}},"1":{"dummies":{}},"2":{"dummies":{}}}}',
336336
$dummy,
337337
Type::object(DummyWithNestedListDummies::class)
338338
);

Tests/Read/StreamReaderGeneratorTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,20 @@ public function testGeneratedStreamReader(string $fixture, Type $type, ?Property
7171

7272
$generator = new StreamReaderGenerator($propertyMetadataLoader, $this->streamReadersDir);
7373

74+
if ($_ENV['TEST_GENERATE_FIXTURES'] ?? false) {
75+
file_put_contents(
76+
\sprintf('%s/Fixtures/stream_reader/%s.php', \dirname(__DIR__), $fixture),
77+
file_get_contents($generator->generate($type, false)),
78+
);
79+
80+
file_put_contents(
81+
\sprintf('%s/Fixtures/stream_reader/%s.stream.php', \dirname(__DIR__), $fixture),
82+
file_get_contents($generator->generate($type, true)),
83+
);
84+
85+
$this->markTestIncomplete('TEST_GENERATE_FIXTURES is set');
86+
}
87+
7488
$this->assertStringEqualsFile(
7589
\sprintf('%s/Fixtures/stream_reader/%s.php', \dirname(__DIR__), $fixture),
7690
file_get_contents($generator->generate($type, false)),

Tests/Write/StreamWriterGeneratorTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ public function testGeneratedStreamWriter(string $fixture, Type $type, ?Property
8080

8181
$generator = new StreamWriterGenerator($propertyMetadataLoader, $this->streamWritersDir);
8282

83+
if ($_ENV['TEST_GENERATE_FIXTURES'] ?? false) {
84+
file_put_contents(
85+
\sprintf('%s/Fixtures/stream_writer/%s.php', \dirname(__DIR__), $fixture),
86+
file_get_contents($generator->generate($type)),
87+
);
88+
$this->markTestIncomplete('TEST_GENERATE_FIXTURES is set');
89+
}
90+
8391
$this->assertStringEqualsFile(
8492
\sprintf('%s/Fixtures/stream_writer/%s.php', \dirname(__DIR__), $fixture),
8593
file_get_contents($generator->generate($type)),

0 commit comments

Comments
 (0)