public function testDuplicateAssociationMappingException()
 {
     $cm = new ClassMetadata('Doctrine\\Tests\\Models\\CMS\\CmsUser');
     $a1 = array('fieldName' => 'foo', 'sourceEntity' => 'stdClass', 'targetEntity' => 'stdClass', 'mappedBy' => 'foo');
     $a2 = array('fieldName' => 'foo', 'sourceEntity' => 'stdClass', 'targetEntity' => 'stdClass', 'mappedBy' => 'foo');
     $cm->addInheritedAssociationMapping($a1);
     $this->setExpectedException('Doctrine\\ORM\\Mapping\\MappingException');
     $cm->addInheritedAssociationMapping($a2);
 }
 /**
  * Adds inherited association mappings to the subclass mapping.
  *
  * @param \Doctrine\ORM\Mapping\ClassMetadata $subClass
  * @param \Doctrine\ORM\Mapping\ClassMetadata $parentClass
  *
  * @return void
  *
  * @throws MappingException
  */
 private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass)
 {
     foreach ($parentClass->associationMappings as $field => $mapping) {
         if ($parentClass->isMappedSuperclass) {
             if ($mapping['type'] & ClassMetadata::TO_MANY && !$mapping['isOwningSide']) {
                 throw MappingException::illegalToManyAssociationOnMappedSuperclass($parentClass->name, $field);
             }
             $mapping['sourceEntity'] = $subClass->name;
         }
         //$subclassMapping = $mapping;
         if (!isset($mapping['inherited']) && !$parentClass->isMappedSuperclass) {
             $mapping['inherited'] = $parentClass->name;
         }
         if (!isset($mapping['declared'])) {
             $mapping['declared'] = $parentClass->name;
         }
         $subClass->addInheritedAssociationMapping($mapping);
     }
 }
 /**
  * Adds inherited association mappings to the subclass mapping.
  *
  * @param Doctrine\ORM\Mapping\ClassMetadata $subClass
  * @param Doctrine\ORM\Mapping\ClassMetadata $parentClass
  */
 private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass)
 {
     foreach ($parentClass->associationMappings as $field => $mapping) {
         if ($parentClass->isMappedSuperclass) {
             $mapping['sourceEntity'] = $subClass->name;
         }
         //$subclassMapping = $mapping;
         if (!isset($mapping['inherited']) && !$parentClass->isMappedSuperclass) {
             $mapping['inherited'] = $parentClass->name;
         }
         if (!isset($mapping['declared'])) {
             $mapping['declared'] = $parentClass->name;
         }
         $subClass->addInheritedAssociationMapping($mapping);
     }
 }
 public function testDuplicateAssociationMappingException()
 {
     $cm = new ClassMetadata('Doctrine\\Tests\\Models\\CMS\\CmsUser');
     $cm->initializeReflection(new \Doctrine\Common\Persistence\Mapping\RuntimeReflectionService());
     $a1 = array('fieldName' => 'foo', 'sourceEntity' => 'stdClass', 'targetEntity' => 'stdClass', 'mappedBy' => 'foo');
     $a2 = array('fieldName' => 'foo', 'sourceEntity' => 'stdClass', 'targetEntity' => 'stdClass', 'mappedBy' => 'foo');
     $cm->addInheritedAssociationMapping($a1);
     $this->setExpectedException('Doctrine\\ORM\\Mapping\\MappingException');
     $cm->addInheritedAssociationMapping($a2);
 }
 /**
  * Adds inherited association mappings to the subclass mapping.
  *
  * @param Doctrine\ORM\Mapping\ClassMetadata $subClass
  * @param Doctrine\ORM\Mapping\ClassMetadata $parentClass
  */
 private function _addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass)
 {
     foreach ($parentClass->associationMappings as $field => $mapping) {
         $subclassMapping = clone $mapping;
         if (!isset($mapping->inherited) && !$parentClass->isMappedSuperclass) {
             $subclassMapping->inherited = $parentClass->name;
         }
         if (!isset($mapping->declared)) {
             $subclassMapping->declared = $parentClass->name;
         }
         $subClass->addInheritedAssociationMapping($subclassMapping);
     }
 }