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