public function testFailsWhenParameterHasTypeHintForObjectButArgumentIsReferenceToServiceOfWrongType()
{
$class = 'Matthias\\SymfonyServiceDefinitionValidator\\Tests\\Fixtures\\ClassWithTypeHintedConstructorArgument';
$this->containerBuilder = new ContainerBuilder();
$definition = new Definition();
$this->containerBuilder->setDefinition('referenced_service', $definition);
$parameter = new \ReflectionParameter(array($class, '__construct'), 'expected');
$argument = new Reference('referenced_service');
$resultingClassResolver = $this->createMockResultingClassResolver();
$resultingClassResolver->expects($this->once())->method('resolve')->with($definition)->will($this->returnValue('stdClass'));
$validator = new ArgumentValidator($this->containerBuilder, $resultingClassResolver);
$this->setExpectedException('Matthias\\SymfonyServiceDefinitionValidator\\Exception\\TypeHintMismatchException', 'ExpectedClass');
$validator->validate($parameter, $argument);
}