Ejemplo n.º 1
0
 /**
  * @group DDC-1439
  */
 public function testInvalidToOneJoinColumnSchema()
 {
     $class1 = $this->em->getClassMetadata(__NAMESPACE__ . '\\InvalidEntity1');
     $class2 = $this->em->getClassMetadata(__NAMESPACE__ . '\\InvalidEntity2');
     $ce = $this->validator->validateClass($class2);
     $this->assertEquals(array("The referenced column name 'id' does not have a corresponding field with this column name on the class 'Doctrine\\Tests\\ORM\\Tools\\InvalidEntity1'.", "The join columns of the association 'assoc' have to match to ALL identifier columns of the source entity 'Doctrine\\Tests\\ORM\\Tools\\InvalidEntity2', however 'key3, key4' are missing."), $ce);
 }
Ejemplo n.º 2
0
 /**
  * @dataProvider dataValidateModelSets
  */
 public function testValidateModelSets($modelSet)
 {
     $validator = new SchemaValidator($this->_em);
     $classes = array();
     foreach (self::$_modelSets[$modelSet] as $className) {
         $classes[] = $this->_em->getClassMetadata($className);
     }
     foreach ($classes as $class) {
         $ce = $validator->validateClass($class);
         $this->assertEquals(0, count($ce), "Invalid Modelset: " . $modelSet . " class " . $class->name . ": " . implode("\n", $ce));
     }
 }
Ejemplo n.º 3
0
 /**
  * @dataProvider dataValidateModelSets
  */
 public function testValidateModelSets($modelSet)
 {
     $validator = new SchemaValidator($this->_em);
     $classes = array();
     foreach (self::$_modelSets[$modelSet] as $className) {
         $classes[] = $this->_em->getClassMetadata($className);
     }
     foreach ($classes as $class) {
         $ce = $validator->validateClass($class);
         foreach ($ce as $key => $error) {
             if (strpos($error, "must be private or protected. Public fields may break lazy-loading.") !== false) {
                 unset($ce[$key]);
             }
         }
         $this->assertEquals(0, count($ce), "Invalid Modelset: " . $modelSet . " class " . $class->name . ": " . implode("\n", $ce));
     }
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     parent::collect($request, $response, $exception);
     $errors = array();
     $entities = array();
     foreach ($this->registry->getManagers() as $name => $em) {
         $entities[$name] = array();
         /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */
         $factory = $em->getMetadataFactory();
         $validator = new SchemaValidator($em);
         /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */
         foreach ($factory->getLoadedMetadata() as $class) {
             $entities[$name][] = $class->getName();
             $classErrors = $validator->validateClass($class);
             if (!empty($classErrors)) {
                 $errors[$name][$class->getName()] = $classErrors;
             }
         }
     }
     $this->data['entities'] = $entities;
     $this->data['errors'] = $errors;
 }
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     parent::collect($request, $response, $exception);
     $errors = array();
     $entities = array();
     $caches = array('enabled' => false, 'log_enabled' => false, 'counts' => array('puts' => 0, 'hits' => 0, 'misses' => 0), 'regions' => array('puts' => array(), 'hits' => array(), 'misses' => array()));
     foreach ($this->registry->getManagers() as $name => $em) {
         $entities[$name] = array();
         /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */
         $factory = $em->getMetadataFactory();
         $validator = new SchemaValidator($em);
         /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */
         foreach ($factory->getLoadedMetadata() as $class) {
             $entities[$name][] = $class->getName();
             $classErrors = $validator->validateClass($class);
             if (!empty($classErrors)) {
                 $errors[$name][$class->getName()] = $classErrors;
             }
         }
         if (version_compare(\Doctrine\ORM\Version::VERSION, '2.5.0-DEV') < 0) {
             continue;
         }
         /** @var $emConfig \Doctrine\ORM\Configuration */
         $emConfig = $em->getConfiguration();
         $slcEnabled = $emConfig->isSecondLevelCacheEnabled();
         if (!$slcEnabled) {
             continue;
         }
         $caches['enabled'] = true;
         /** @var $cacheConfiguration \Doctrine\ORM\Cache\CacheConfiguration */
         /** @var $clacheLoggerChain \Doctrine\ORM\Cache\Logging\CacheLoggerChain */
         $cacheConfiguration = $emConfig->getSecondLevelCacheConfiguration();
         $cacheLoggerChain = $cacheConfiguration->getCacheLogger();
         if (!$cacheLoggerChain || !$cacheLoggerChain->getLogger('statistics')) {
             continue;
         }
         /** @var $cacheLoggerStats \Doctrine\ORM\Cache\Logging\StatisticsCacheLogger */
         $cacheLoggerStats = $cacheLoggerChain->getLogger('statistics');
         $caches['log_enabled'] = true;
         $caches['counts']['puts'] += $cacheLoggerStats->getPutCount();
         $caches['counts']['hits'] += $cacheLoggerStats->getHitCount();
         $caches['counts']['misses'] += $cacheLoggerStats->getMissCount();
         foreach ($cacheLoggerStats->getRegionsPut() as $key => $value) {
             if (!isset($caches['regions']['puts'][$key])) {
                 $caches['regions']['puts'][$key] = 0;
             }
             $caches['regions']['puts'][$key] += $value;
         }
         foreach ($cacheLoggerStats->getRegionsHit() as $key => $value) {
             if (!isset($caches['regions']['hits'][$key])) {
                 $caches['regions']['hits'][$key] = 0;
             }
             $caches['regions']['hits'][$key] += $value;
         }
         foreach ($cacheLoggerStats->getRegionsMiss() as $key => $value) {
             if (!isset($caches['regions']['misses'][$key])) {
                 $caches['regions']['misses'][$key] = 0;
             }
             $caches['regions']['misses'][$key] += $value;
         }
     }
     $this->data['entities'] = $entities;
     $this->data['errors'] = $errors;
     $this->data['caches'] = $caches;
 }
Ejemplo n.º 6
0
 /**
  * @group DDC-3322
  */
 public function testInvalidOrderByAssociationInverseSide()
 {
     $class = $this->em->getClassMetadata(__NAMESPACE__ . '\\DDC3322Three');
     $ce = $this->validator->validateClass($class);
     $this->assertEquals(array("The association Doctrine\\Tests\\ORM\\Tools\\DDC3322Three#invalidAssoc is ordered by a field oneToOneInverse " . "on Doctrine\\Tests\\ORM\\Tools\\DDC3322ValidEntity1 that is the inverse side of an association."), $ce);
 }
Ejemplo n.º 7
0
 /**
  * Método que valida se o mapeamento de uma classe específica
  * está coerente com a sua tabela correspondente
  * @param string $nome FQCN da classe
  * @return boolean
  */
 public function validarClasse($nome)
 {
     $sv = new SchemaValidator($this->em);
     return $sv->validateClass($this->em->getClassMetadata($nome));
 }
Ejemplo n.º 8
0
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     $queries = array();
     foreach ($this->loggers as $name => $logger) {
         $queries[$name] = $this->sanitizeQueries($name, $logger->queries);
     }
     $this->data = array('queries' => $queries, 'connections' => $this->connections, 'managers' => $this->managers);
     $errors = array();
     $entities = array();
     $entities['default'] = array();
     /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */
     $factory = $this->container->get('em')->getMetadataFactory();
     $validator = new SchemaValidator($this->container->get('em'));
     /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */
     foreach ($factory->getLoadedMetadata() as $class) {
         $entities['default'][] = $class->getName();
         $classErrors = $validator->validateClass($class);
         if (!empty($classErrors)) {
             $errors['default'][$class->getName()] = $classErrors;
         }
     }
     $this->data['entities'] = $entities;
     $this->data['errors'] = $errors;
 }
Ejemplo n.º 9
0
 /**
  * @group DDC-1649
  */
 public function testInvalidTripleAssociationAsKeyMapping()
 {
     $classThree = $this->em->getClassMetadata(__NAMESPACE__ . '\\DDC1649Three');
     $ce = $this->validator->validateClass($classThree);
     $this->assertEquals(array("Cannot map association 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Three#two as identifier, because the target entity 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Two' also maps an association as identifier.", "The referenced column name 'id' has to be a primary key column on the target entity class 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Two'."), $ce);
 }