public function testInjectsParserInParserAwareDenormalizersAndItselfInDenormalizerAwareDenormalizers()
{
$flagParser = new FakeFlagParser();
$chainableDenormalizer1 = new FakeChainableDenormalizer();
$chainableDenormalizer2 = new FakeChainableDenormalizer();
$flagParserAwareProphecy = $this->prophesize(FlagParserAwareInterface::class);
$flagParserAwareProphecy->withFlagParser($flagParser)->shouldBeCalled();
/** @var FlagParserAwareInterface $flagParserAware */
$flagParserAware = $flagParserAwareProphecy->reveal();
$flagParserAwareDenormalizer = new DummyChainableParserAwareDenormalizer($chainableDenormalizer2, $flagParserAware);
$denormalizerAwareDenormalizer = new FakeChainableDenormalizerAwareDenormalizer();
$denormalizer = new FixtureDenormalizerRegistry($flagParser, [$chainableDenormalizer1, $flagParserAwareDenormalizer, $denormalizerAwareDenormalizer]);
$actualDenormalizers = $this->propRefl->getValue($denormalizer);
$this->assertCount(3, $actualDenormalizers);
$this->assertSame($chainableDenormalizer1, $actualDenormalizers[0]);
$this->assertNotSame($flagParserAwareDenormalizer, $actualDenormalizers[1]);
$this->assertNull($flagParserAwareDenormalizer->parser);
$this->assertNotNull($actualDenormalizers[1]->parser);
$this->assertSame($denormalizer, $denormalizerAwareDenormalizer->denormalizer);
}