Пример #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);
 }
Пример #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));
     }
 }
Пример #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));
     }
 }
Пример #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;
 }
Пример #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);
 }
Пример #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));
 }
Пример #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;
 }
Пример #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);
 }