Nelmio\Alice\FixtureBuilder\Denormalizer\Fixture\SpecificationBagDenormalizer\Value\UniqueValueDenormalizerTest::testIfParsedValueIsArrayValueThenUniqueFlagAppliesToItsElementInstead PHP Метод

testIfParsedValueIsArrayValueThenUniqueFlagAppliesToItsElementInstead() публичный Метод

    public function testIfParsedValueIsArrayValueThenUniqueFlagAppliesToItsElementInstead()
    {
        $fixture = new SimpleFixture('dummy_id', 'Dummy', SpecificationBagFactory::create());
        $value = 'string value';
        $denormalizedValue = new ArrayValue(['foo', 'bar']);
        $flags = (new FlagBag(''))->withFlag(new UniqueFlag());
        $decoratedDenormalizerProphecy = $this->prophesize(ValueDenormalizerInterface::class);
        $decoratedDenormalizerProphecy->denormalize($fixture, $flags, $value)->willReturn($denormalizedValue);
        /** @var ValueDenormalizerInterface $decoratedDenormalizer */
        $decoratedDenormalizer = $decoratedDenormalizerProphecy->reveal();
        $denormalizer = new UniqueValueDenormalizer($decoratedDenormalizer);
        $result = $denormalizer->denormalize($fixture, $flags, $value);
        $this->assertInstanceOf(ArrayValue::class, $result);
        /** @var ArrayValue $result */
        $this->assertInstanceOf(UniqueValue::class, $result->getValue()[0]);
        $this->stringContains('dummy_id', $result->getValue()[0]->getId());
        $this->assertEquals('foo', $result->getValue()[0]->getValue());
        $this->assertInstanceOf(UniqueValue::class, $result->getValue()[1]);
        $this->stringContains('dummy_id', $result->getValue()[1]->getId());
        $this->assertEquals('bar', $result->getValue()[1]->getValue());
    }