public function buildBaseValidatorConjunctionAddsValidatorsOnlyForPropertiesHoldingPrototypes()
{
$entityClassName = 'Entity' . md5(uniqid(mt_rand(), true));
eval('class ' . $entityClassName . '{}');
$otherClassName = 'Other' . md5(uniqid(mt_rand(), true));
eval('class ' . $otherClassName . '{}');
$modelClassName = 'Model' . md5(uniqid(mt_rand(), true));
eval('class ' . $modelClassName . '{}');
$mockObjectManager = $this->getMockBuilder(ObjectManagerInterface::class)->disableOriginalConstructor()->getMock();
$mockObjectManager->expects($this->any())->method('isRegistered')->will($this->returnValue(true));
$mockObjectManager->expects($this->at(1))->method('getScope')->with($entityClassName)->will($this->returnValue(Configuration::SCOPE_PROTOTYPE));
$mockObjectManager->expects($this->at(3))->method('getScope')->with($otherClassName)->will($this->returnValue(null));
$mockReflectionService = $this->createMock(ReflectionService::class);
$mockReflectionService->expects($this->any())->method('getAllImplementationClassNamesForInterface')->with(PolyTypeObjectValidatorInterface::class)->will($this->returnValue([]));
$mockReflectionService->expects($this->any())->method('getClassPropertyNames')->will($this->returnValue(['entityProperty', 'otherProperty']));
$mockReflectionService->expects($this->at(1))->method('getClassSchema')->will($this->returnValue(null));
$mockReflectionService->expects($this->at(2))->method('getPropertyTagsValues')->with($modelClassName, 'entityProperty')->will($this->returnValue(['var' => [$entityClassName]]));
$mockReflectionService->expects($this->at(3))->method('isPropertyAnnotatedWith')->will($this->returnValue(false));
$mockReflectionService->expects($this->at(4))->method('getPropertyAnnotations')->with($modelClassName, 'entityProperty', Annotations\Validate::class)->will($this->returnValue([]));
$mockReflectionService->expects($this->at(5))->method('getPropertyTagsValues')->with($modelClassName, 'otherProperty')->will($this->returnValue(['var' => [$otherClassName]]));
$mockReflectionService->expects($this->at(6))->method('isPropertyAnnotatedWith')->will($this->returnValue(false));
$mockReflectionService->expects($this->at(7))->method('getPropertyAnnotations')->with($modelClassName, 'otherProperty', Annotations\Validate::class)->will($this->returnValue([]));
$mockObjectManager->expects($this->any())->method('get')->with(ReflectionService::class)->will($this->returnValue($mockReflectionService));
$validatorResolver = $this->getAccessibleMock(ValidatorResolver::class, ['resolveValidatorObjectName', 'createValidator', 'getBaseValidatorConjunction']);
$validatorResolver->_set('objectManager', $mockObjectManager);
$validatorResolver->_set('reflectionService', $mockReflectionService);
$validatorResolver->expects($this->once())->method('getBaseValidatorConjunction')->will($this->returnValue($this->createMock(ValidatorInterface::class)));
$validatorResolver->_call('buildBaseValidatorConjunction', $modelClassName, $modelClassName, ['Default']);
}