public function testTheContextPassedToTheInjectedResolverIsAlwaysValid(ResolvingContext $context = null, ResolvingContext $expected)
{
$array = [$val1 = 'foo', $val2 = 'bar'];
$parameter = new Parameter('array_param', $array);
$unresolvedParameters = new ParameterBag(['name' => 'unresolvedParams']);
$resolvedParameters = new ParameterBag(['name' => 'resolvedParams']);
$injectedResolverProphecy = $this->prophesize(ParameterResolverInterface::class);
$injectedResolverProphecy->resolve(new Parameter('0', $val1), $unresolvedParameters, $resolvedParameters, $expected)->willReturn(new ParameterBag(['name' => 'resolvedParams', '0' => 'val1']));
$injectedResolverProphecy->resolve(new Parameter('1', $val2), $unresolvedParameters, $resolvedParameters, $expected)->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);
}