|
77 | 77 | use Zolex\VOM\Test\Fixtures\PropertyPromotion; |
78 | 78 | use Zolex\VOM\Test\Fixtures\RegexpExtractorModel; |
79 | 79 | use Zolex\VOM\Test\Fixtures\RegexpExtractorProperty; |
| 80 | +use Zolex\VOM\Test\Fixtures\RelativeNestingLevel0; |
| 81 | +use Zolex\VOM\Test\Fixtures\RelativeNestingLevel1; |
| 82 | +use Zolex\VOM\Test\Fixtures\RelativeNestingLevel2; |
| 83 | +use Zolex\VOM\Test\Fixtures\RelativeNestingLevel3; |
| 84 | +use Zolex\VOM\Test\Fixtures\RelativeNestingLevel4; |
80 | 85 | use Zolex\VOM\Test\Fixtures\ScenarioConstructorArguments; |
81 | 86 | use Zolex\VOM\Test\Fixtures\ScenarioConstructorPropertyPromotion; |
82 | 87 | use Zolex\VOM\Test\Fixtures\ScenarioDenormalizer; |
@@ -1305,6 +1310,42 @@ public function testRootWithNestedAndAccessors(): void |
1305 | 1310 | $this->assertEquals($data, $normalized); |
1306 | 1311 | } |
1307 | 1312 |
|
| 1313 | + public function testRelativeNesting(): void |
| 1314 | + { |
| 1315 | + $data = [ |
| 1316 | + 'LEVEL_ZERO_VALUE' => 0, |
| 1317 | + 'LEVEL_ONE' => [ |
| 1318 | + 'LEVEL_ONE_VALUE' => 1, |
| 1319 | + 'LEVEL_TWO' => [ |
| 1320 | + 'LEVEL_TWO_VALUE' => 2, |
| 1321 | + 'LEVEL_THREE' => [ |
| 1322 | + 'LEVEL_THREE_VALUE' => 3, |
| 1323 | + 'LEVEL_FOUR' => [ |
| 1324 | + 'LEVEL_FOUR_VALUE' => 4, |
| 1325 | + ], |
| 1326 | + ], |
| 1327 | + ], |
| 1328 | + ], |
| 1329 | + ]; |
| 1330 | + |
| 1331 | + $relativeBrainfuck = self::$serializer->denormalize($data, RelativeNestingLevel0::class); |
| 1332 | + |
| 1333 | + $this->assertInstanceOf(RelativeNestingLevel0::class, $relativeBrainfuck); |
| 1334 | + $this->assertEquals(0, $relativeBrainfuck->LEVEL_ZERO_VALUE); |
| 1335 | + |
| 1336 | + $this->assertInstanceOf(RelativeNestingLevel1::class, $relativeBrainfuck->LEVEL_ONE); |
| 1337 | + $this->assertEquals(0, $relativeBrainfuck->LEVEL_ONE->LEVEL_ONE_VALUE); |
| 1338 | + |
| 1339 | + $this->assertInstanceOf(RelativeNestingLevel2::class, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO); |
| 1340 | + $this->assertEquals(2, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO->LEVEL_TWO_VALUE); |
| 1341 | + |
| 1342 | + $this->assertInstanceOf(RelativeNestingLevel3::class, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO->LEVEL_THREE); |
| 1343 | + $this->assertEquals(2, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO->LEVEL_THREE->LEVEL_THREE_VALUE); |
| 1344 | + |
| 1345 | + $this->assertInstanceOf(RelativeNestingLevel4::class, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO->LEVEL_THREE->LEVEL_FOUR); |
| 1346 | + $this->assertEquals(1, $relativeBrainfuck->LEVEL_ONE->LEVEL_TWO->LEVEL_THREE->LEVEL_FOUR->LEVEL_FOUR_VALUE); |
| 1347 | + } |
| 1348 | + |
1308 | 1349 | public function testObjectToPopulate(): void |
1309 | 1350 | { |
1310 | 1351 | $person = Person::create(id: 666); |
|
0 commit comments