예제 #1
0
 /**
  * @test
  * @author Christopher Hlubek <*****@*****.**>
  */
 public function entityReferencesReturnsSimpleAndArrayReferences()
 {
     $baseEntity = new \TYPO3\CouchDB\Tests\Functional\Fixtures\Domain\Model\TestEntity();
     $simpleReferencedEntity = new \TYPO3\CouchDB\Tests\Functional\Fixtures\Domain\Model\TestEntity();
     $baseEntity->setRelatedEntity($simpleReferencedEntity);
     $arrayReferencedEntity = new \TYPO3\CouchDB\Tests\Functional\Fixtures\Domain\Model\TestEntity();
     $relatedEntities = new \Doctrine\Common\Collections\ArrayCollection();
     $relatedEntities->add($arrayReferencedEntity);
     $relatedEntities->add($baseEntity);
     $baseEntity->setRelatedEntities($relatedEntities);
     $this->persistenceManager->add($baseEntity);
     $baseIdentifier = $this->persistenceManager->getIdentifierByObject($baseEntity);
     $simpleReferenceIdentifier = $this->persistenceManager->getIdentifierByObject($simpleReferencedEntity);
     $arrayReferenceIdentifier = $this->persistenceManager->getIdentifierByObject($arrayReferencedEntity);
     $this->persistenceManager->persistAll();
     $identifiers = $this->design->entityReferences($simpleReferenceIdentifier);
     $this->assertEquals(1, count($identifiers));
     $this->assertEquals($baseIdentifier, $identifiers[0]);
     $identifiers = $this->design->entityReferences($arrayReferenceIdentifier);
     $this->assertEquals(1, count($identifiers));
     $this->assertEquals($baseIdentifier, $identifiers[0]);
     $identifiers = $this->design->entityReferences($baseIdentifier);
     $this->assertEquals(0, count($identifiers));
 }
예제 #2
0
 /**
  * @test
  * @author Christopher Hlubek <*****@*****.**>
  */
 public function updateMappedEntityWithCycle()
 {
     $repository = $this->objectManager->get('TYPO3\\CouchDB\\Tests\\Functional\\Fixtures\\Domain\\Repository\\TestEntityRepository');
     $entity = new \TYPO3\CouchDB\Tests\Functional\Fixtures\Domain\Model\TestEntity();
     $entity->setName('Foobar');
     $entity->setRelatedEntity($entity);
     $repository->add($entity);
     $identity = $this->persistenceManager->getIdentifierByObject($entity);
     $this->tearDown();
     $source = array('__identity' => $identity, 'name' => 'Foofoo');
     $propertyMapper = $this->objectManager->get('TYPO3\\Flow\\Property\\PropertyMapper');
     $mappedEntity = $propertyMapper->convert($source, 'TYPO3\\CouchDB\\Tests\\Functional\\Fixtures\\Domain\\Model\\TestEntity');
     $repository->update($mappedEntity);
     $this->assertEquals('Foofoo', $mappedEntity->getName());
 }
예제 #3
0
 /**
  * Larger documents are transferred differently from CouchDB Lucene, so the
  * HttpConnector had a bug with wrong handling of chunked transfer.
  *
  * @test
  * @author Christopher Hlubek <*****@*****.**>
  */
 public function chunkedDataIsTransferredCorrectly()
 {
     $repository = $this->objectManager->get('TYPO3\\CouchDB\\Tests\\Functional\\Fixtures\\Domain\\Repository\\TestEntityRepository');
     $entity = new \TYPO3\CouchDB\Tests\Functional\Fixtures\Domain\Model\TestEntity();
     $entity->setName(str_repeat('Some entity-', 2000));
     $entity->setRelatedValueObject(new Fixtures\Domain\Model\TestValueObject('green'));
     $repository->add($entity);
     $persistenceManager = $this->objectManager->get('TYPO3\\Flow\\Persistence\\PersistenceManagerInterface');
     $persistenceManager->persistAll();
     $persistenceSession = $this->objectManager->get('TYPO3\\Flow\\Persistence\\Generic\\Session');
     $persistenceSession->destroy();
     $entities = $repository->findByColor('green')->toArray();
     $this->assertEquals(1, count($entities));
 }