public function test_loadMetadataForClass()
 {
     $driver = new AnnotationDriver(new AnnotationReader(), __DIR__ . '/../../../Mocks/Entity/');
     $cm = new ClassMetadata('Pasinter\\Mocks\\Entity\\Blog\\Post');
     $cm->initializeReflection(new RuntimeReflectionService());
     $driver->loadMetadataForClass('Pasinter\\Mocks\\Entity\\Blog\\Post', $cm);
     $this->assertTrue($cm->hasField('title'));
     $this->assertEquals('string', $cm->getTypeOfField('title'));
     $this->assertTrue($cm->hasField('fieldWithoutType'));
     $this->assertEquals('string', $cm->getTypeOfField('fieldWithoutType'));
     $this->assertTrue($cm->hasField('id'));
     $this->assertEquals('integer', $cm->getTypeOfField('id'));
     $this->assertTrue($cm->isIdentifier('id'));
     $this->assertTrue($cm->hasField('sort'));
     $this->assertEquals('integer', $cm->getTypeOfField('sort'));
     $this->assertTrue($cm->hasAssociation('category'));
     $this->assertEquals('Pasinter\\Mocks\\Entity\\Blog\\Category', $cm->getAssociationTargetClass('category'));
     $this->assertTrue($cm->hasAssociation('comments'));
     $this->assertEquals('Pasinter\\Mocks\\Entity\\Blog\\Comment', $cm->getAssociationTargetClass('comments'));
     $this->assertTrue($cm->hasAssociation('videos'));
     $this->assertEquals('Pasinter\\Mocks\\Entity\\Video', $cm->getAssociationTargetClass('videos'));
     $this->assertTrue($cm->hasAssociation('image'));
     $this->assertEquals('Pasinter\\Mocks\\Entity\\Photo', $cm->getAssociationTargetClass('image'));
 }
 /**
  * @return ClassMetadata
  */
 private function getClassMetadata()
 {
     $cm = new ClassMetadata('Pasinter\\Mocks\\Entity\\Blog\\Post');
     $cm->initializeReflection(new RuntimeReflectionService());
     $cm->identifier = ['id'];
     $cm->associationMappings = ['comments' => ['type' => ClassMetadata::REFERENCE_MANY, 'target' => 'Pasinter\\Mocks\\Entity\\Blog\\Comment'], 'user' => ['type' => ClassMetadata::REFERENCE_ONE, 'target' => 'Pasinter\\Mocks\\Entity\\User']];
     $cm->fieldMappings = ['title' => ['type' => 'string']];
     foreach ($cm->reflClass->getProperties() as $reflProp) {
         $reflProp->setAccessible(true);
         $cm->reflFields[$reflProp->getName()] = $reflProp;
     }
     return $cm;
 }