/**
  *
  * @param  string $className
  * @return ClassMetadata
  */
 protected function extractClassMetadata($className)
 {
     $driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($this->_sm);
     foreach ($driver->getAllClassNames() as $dbClassName) {
         $class = new ClassMetadataInfo($dbClassName);
         $driver->loadMetadataForClass($dbClassName, $class);
         if (strtolower($class->name) == strtolower($className)) {
             return $class;
         }
     }
     $this->fail("No class matching the name '" . $className . "' was found!");
 }
 /**
  * @param  string $className
  * @return ClassMetadata
  */
 protected function extractClassMetadata(array $classNames)
 {
     $classNames = array_map('strtolower', $classNames);
     $metadatas = array();
     $sm = $this->_em->getConnection()->getSchemaManager();
     $driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($sm);
     foreach ($driver->getAllClassNames() as $className) {
         if (!in_array(strtolower($className), $classNames)) {
             continue;
         }
         $class = new ClassMetadataInfo($className);
         $driver->loadMetadataForClass($className, $class);
         $metadatas[$className] = $class;
     }
     if (count($metadatas) != count($classNames)) {
         $this->fail("Have not found all classes matching the names '" . implode(", ", $classNames) . "' only tables " . implode(", ", array_keys($metadatas)));
     }
     return $metadatas;
 }