|
16 | 16 | use Symfony\Component\JsonStreamer\JsonStreamWriter; |
17 | 17 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Enum\DummyBackedEnum; |
18 | 18 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\ClassicDummy; |
| 19 | +use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithArray; |
19 | 20 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithDateTimes; |
20 | 21 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithGenerics; |
21 | 22 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNameAttributes; |
| 23 | +use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedArray; |
22 | 24 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNullableProperties; |
23 | 25 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithPhpDoc; |
24 | 26 | use Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithUnionProperties; |
@@ -109,6 +111,37 @@ public function testWriteCollection() |
109 | 111 | ); |
110 | 112 | } |
111 | 113 |
|
| 114 | + public function testWriteNestedCollection() |
| 115 | + { |
| 116 | + $dummyWithArray1 = new DummyWithArray(); |
| 117 | + $dummyWithArray1->dummies = [new ClassicDummy()]; |
| 118 | + $dummyWithArray1->customProperty = 'customProperty1'; |
| 119 | + |
| 120 | + $dummyWithArray2 = new DummyWithArray(); |
| 121 | + $dummyWithArray2->dummies = [new ClassicDummy()]; |
| 122 | + $dummyWithArray2->customProperty = 'customProperty2'; |
| 123 | + |
| 124 | + $this->assertWritten( |
| 125 | + '[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty1"},{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty2"}]', |
| 126 | + [$dummyWithArray1, $dummyWithArray2], |
| 127 | + Type::list(Type::object(DummyWithArray::class)), |
| 128 | + ); |
| 129 | + |
| 130 | + $dummyWithNestedArray1 = new DummyWithNestedArray(); |
| 131 | + $dummyWithNestedArray1->dummies = [$dummyWithArray1]; |
| 132 | + $dummyWithNestedArray1->stringProperty = 'stringProperty1'; |
| 133 | + |
| 134 | + $dummyWithNestedArray2 = new DummyWithNestedArray(); |
| 135 | + $dummyWithNestedArray2->dummies = [$dummyWithArray2]; |
| 136 | + $dummyWithNestedArray2->stringProperty = 'stringProperty2'; |
| 137 | + |
| 138 | + $this->assertWritten( |
| 139 | + '[{"dummies":[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty1"}],"stringProperty":"stringProperty1"},{"dummies":[{"dummies":[{"id":1,"name":"dummy"}],"customProperty":"customProperty2"}],"stringProperty":"stringProperty2"}]', |
| 140 | + [$dummyWithNestedArray1, $dummyWithNestedArray2], |
| 141 | + Type::list(Type::object(DummyWithNestedArray::class)), |
| 142 | + ); |
| 143 | + } |
| 144 | + |
112 | 145 | public function testWriteObject() |
113 | 146 | { |
114 | 147 | $dummy = new ClassicDummy(); |
|
0 commit comments