2323use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithDateTimes ;
2424use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithDollarNamedProperties ;
2525use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithGenerics ;
26+ use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithList ;
2627use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNameAttributes ;
2728use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNestedArray ;
2829use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNestedDictDummies ;
30+ use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNestedList ;
2931use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNestedListDummies ;
3032use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithNullableProperties ;
3133use Symfony \Component \JsonStreamer \Tests \Fixtures \Model \DummyWithPhpDoc ;
@@ -131,7 +133,7 @@ public function testWriteNestedCollection()
131133 $ dummyWithArray2 ->customProperty = 'customProperty2 ' ;
132134
133135 $ this ->assertWritten (
134- '[{"dummies":[{" id":1,"name":"dummy"}] ,"customProperty":"customProperty1"},{"dummies":[{" id":1,"name":"dummy"}] ,"customProperty":"customProperty2"}] ' ,
136+ '[{"dummies":{"0":{" id":1,"name":"dummy"}} ,"customProperty":"customProperty1"},{"dummies":{"0":{" id":1,"name":"dummy"}} ,"customProperty":"customProperty2"}] ' ,
135137 [$ dummyWithArray1 , $ dummyWithArray2 ],
136138 Type::list (Type::object (DummyWithArray::class)),
137139 );
@@ -145,10 +147,38 @@ public function testWriteNestedCollection()
145147 $ dummyWithNestedArray2 ->stringProperty = 'stringProperty2 ' ;
146148
147149 $ this ->assertWritten (
148- '[{"dummies":[{" dummies":[{" id":1,"name":"dummy"}] ,"customProperty":"customProperty1"}] ,"stringProperty":"stringProperty1"},{"dummies":[{" dummies":[{" id":1,"name":"dummy"}] ,"customProperty":"customProperty2"}] ,"stringProperty":"stringProperty2"}] ' ,
150+ '[{"dummies":{"0":{" dummies":{"0":{" id":1,"name":"dummy"}} ,"customProperty":"customProperty1"}} ,"stringProperty":"stringProperty1"},{"dummies":{"0":{" dummies":{"0":{" id":1,"name":"dummy"}} ,"customProperty":"customProperty2"}} ,"stringProperty":"stringProperty2"}] ' ,
149151 [$ dummyWithNestedArray1 , $ dummyWithNestedArray2 ],
150152 Type::list (Type::object (DummyWithNestedArray::class)),
151153 );
154+
155+ $ dummyWithList1 = new DummyWithList ();
156+ $ dummyWithList1 ->dummies = [new ClassicDummy ()];
157+ $ dummyWithList1 ->customProperty = 'customProperty1 ' ;
158+
159+ $ dummyWithList2 = new DummyWithList ();
160+ $ dummyWithList2 ->dummies = [new ClassicDummy ()];
161+ $ dummyWithList2 ->customProperty = 'customProperty2 ' ;
162+
163+ $ this ->assertWritten (
164+ '[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty1"},{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty2"}] ' ,
165+ [$ dummyWithList1 , $ dummyWithList2 ],
166+ Type::list (Type::object (DummyWithList::class)),
167+ );
168+
169+ $ dummyWithNestedList1 = new DummyWithNestedList ();
170+ $ dummyWithNestedList1 ->dummies = [$ dummyWithList1 ];
171+ $ dummyWithNestedList1 ->stringProperty = 'stringProperty1 ' ;
172+
173+ $ dummyWithNestedList2 = new DummyWithNestedList ();
174+ $ dummyWithNestedList2 ->dummies = [$ dummyWithList2 ];
175+ $ dummyWithNestedList2 ->stringProperty = 'stringProperty2 ' ;
176+
177+ $ this ->assertWritten (
178+ '[{"dummies":[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty1"}],"stringProperty":"stringProperty1"},{"dummies":[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty2"}],"stringProperty":"stringProperty2"}] ' ,
179+ [$ dummyWithNestedList1 , $ dummyWithNestedList2 ],
180+ Type::list (Type::object (DummyWithNestedList::class)),
181+ );
152182 }
153183
154184 public function testWriteObject ()
0 commit comments