Nelmio\Alice\Generator\Resolver\Parameter\Chainable\ArrayParameterResolverTest::testIteratesOverEachElementAndUsesTheDecoratedResolverToResolveEachValue PHP Method

testIteratesOverEachElementAndUsesTheDecoratedResolverToResolveEachValue() public method

    public function testIteratesOverEachElementAndUsesTheDecoratedResolverToResolveEachValue()
    {
        $parameter = new Parameter('array_param', ['foo', 'bar']);
        $unresolvedParameters = new ParameterBag(['name' => 'unresolvedParams']);
        $resolvedParameters = new ParameterBag(['name' => 'resolvedParams']);
        $context = new ResolvingContext();
        $injectedResolverProphecy = $this->prophesize(ParameterResolverInterface::class);
        $context->add('array_param');
        $injectedResolverProphecy->resolve(new Parameter('0', 'foo'), $unresolvedParameters, $resolvedParameters, $context)->willReturn(new ParameterBag(['name' => 'resolvedParams', '0' => 'val1']));
        $context->add('array_param');
        $injectedResolverProphecy->resolve(new Parameter('1', 'bar'), $unresolvedParameters, $resolvedParameters, $context)->willReturn(new ParameterBag(['name' => 'resolvedParams', '1' => 'val2']));
        /* @var ParameterResolverInterface $injectedResolver */
        $injectedResolver = $injectedResolverProphecy->reveal();
        $resolver = (new ArrayParameterResolver())->withResolver($injectedResolver);
        $result = $resolver->resolve($parameter, $unresolvedParameters, $resolvedParameters, $context);
        $this->assertEquals(new ParameterBag(['name' => 'resolvedParams', 'array_param' => ['0' => 'val1', '1' => 'val2']]), $result);
        $injectedResolverProphecy->resolve(Argument::cetera())->shouldHaveBeenCalledTimes(2);
    }