public function testIsResolverAware()
{
$decoratedResolverConstructor = function () {
$resolver = new FakeValueResolver();
$resolver->decorated = true;
return $resolver;
};
$argumentResolverConstructor = function () {
$resolver = new FakeValueResolver();
$resolver->argument = true;
return $resolver;
};
$resolver = new FunctionCallArgumentResolver($decoratedResolverConstructor());
$newResolver = $resolver->withValueResolver($argumentResolverConstructor());
$this->assertNotSame($resolver, $newResolver);
$this->assertEquals(new FunctionCallArgumentResolver($decoratedResolverConstructor()), $resolver);
$this->assertEquals(new FunctionCallArgumentResolver($decoratedResolverConstructor(), $argumentResolverConstructor()), $newResolver);
}