public function testRemovesAllConflictingKeysFromInjectedParametersBagBeforeResolvingIt()
{
$unresolvedParameters = new ParameterBag(['foo' => '(unresolved) bar', 'ping' => '(unresolved) pong']);
$injectedParameters = new ParameterBag(['foo' => 'bar', 'foz' => 'baz']);
$decoratedResolverProphecy = $this->prophesize(ParameterBagResolverInterface::class);
$decoratedResolverProphecy->resolve($unresolvedParameters, new ParameterBag(['foz' => 'baz']))->willReturn($expected = new ParameterBag(['foo' => '(resolved) bar', 'ping' => '(resolved) pong', 'foz' => 'baz']));
/* @var ParameterBagResolverInterface $decoratedResolver */
$decoratedResolver = $decoratedResolverProphecy->reveal();
$resolver = new RemoveConflictingParametersParameterBagResolver($decoratedResolver);
$actual = $resolver->resolve($unresolvedParameters, $injectedParameters);
$this->assertEquals($expected, $actual);
$decoratedResolverProphecy->resolve(Argument::cetera())->shouldHaveBeenCalledTimes(1);
}