Nelmio\Alice\FixtureBuilder\Denormalizer\Fixture\FixtureDenormalizerRegistryTest::testInjectsParserInParserAwareDenormalizersAndItselfInDenormalizerAwareDenormalizers PHP Method

testInjectsParserInParserAwareDenormalizersAndItselfInDenormalizerAwareDenormalizers() public method

    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);
    }