/** * @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)); }
/** * @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()); }
/** * 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)); }