Nelmio\Alice\Generator\Resolver\Parameter\StringParameterResolverTest::testReuseContextIfOneIsFoundWhenResolvingDynamicParameter PHP Method

testReuseContextIfOneIsFoundWhenResolvingDynamicParameter() public method

    public function testReuseContextIfOneIsFoundWhenResolvingDynamicParameter()
    {
        $parameter = new Parameter('foo', '<{bar}>');
        $unresolvedParameters = new ParameterBag(['bar' => 'unresolved(bar)']);
        $resolvedParameters = new ParameterBag();
        $context = new ResolvingContext('ping');
        $context->add('foo');
        $expected = new ParameterBag(['bar' => 'Mad Hatter', 'foo' => 'Mad Hatter']);
        $injectedResolverProphecy = $this->prophesize(ParameterResolverInterface::class);
        $injectedResolverProphecy->resolve(new Parameter('bar', 'unresolved(bar)'), $unresolvedParameters, $resolvedParameters, $context)->willReturn(new ParameterBag(['bar' => 'Mad Hatter']));
        /* @var ParameterResolverInterface $injectedResolver */
        $injectedResolver = $injectedResolverProphecy->reveal();
        $resolver = (new StringParameterResolver())->withResolver($injectedResolver);
        $result = $resolver->resolve($parameter, $unresolvedParameters, $resolvedParameters, $context);
        $this->assertEquals($expected, $result);
        $injectedResolverProphecy->resolve(Argument::cetera())->shouldHaveBeenCalledTimes(1);
    }