Nelmio\Alice\Generator\Resolver\Parameter\StringParameterResolverTest::testInjectedResolverToResolveDynamicParameter PHP Метод

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

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