Ejemplo n.º 1
0
 /**
  * @return mixed
  */
 private function isRecordValid()
 {
     return $this->record->getRecordManager()->getRecordValidationContainer()->validate($this->record);
 }
Ejemplo n.º 2
0
 /**
  * @param Record    $owningRecord
  * @param Relation  $relation
  * @param string    $refObjectId
  */
 private function assertReferencedRelatedReferences(Record $owningRecord, Relation $relation, $refObjectId)
 {
     $oldIdentifier = Record::NEW_RECORD_ID_MARK . $owningRecord->getOid();
     $newIdentifier = $owningRecord->getInternalId();
     $rm = $owningRecord->getRecordManager();
     /** @var ReferenceMap $referenceMap */
     $referenceMap = self::readAttribute($relation, 'map');
     $referenceMapping = $referenceMap->getMapping();
     $refTable = $relation->getJoinTable($rm, $relation->getReferencedAlias());
     $refTableRepository = $refTable->getRepository();
     $referencedRecord = $refTableRepository->getByOid($refObjectId);
     $refId = $referencedRecord->getInternalId();
     // assert that owning record id is mapped for referenced record
     $this->assertArrayHasKey($refId, $referenceMapping);
     if ($relation->isOneToMany()) {
         $this->assertNotContains($oldIdentifier, $referenceMapping[$refId]);
         $this->assertContains($newIdentifier, $referenceMapping[$refId]);
     } else {
         $this->assertEquals($newIdentifier, $referenceMapping[$refId]);
     }
     // assert record collection
     if ($relation->isOneToMany()) {
         $recordCollection = $referenceMap->getRelatedCollection($referencedRecord->getOid());
         $this->assertNotNull($recordCollection);
         $this->assertTrue($recordCollection->has($owningRecord), "Expected '{$owningRecord}' is referenced in relation '" . $relation->getReferencedAlias() . "'");
     }
 }