예제 #1
0
 /**
  * @test
  */
 public function alreadyPersistedValueObjectsAreCorrectlyReused()
 {
     $valueObject1 = new TestValueObject('sameValue');
     $testEntity1 = new TestEntity();
     $testEntity1->setRelatedValueObject($valueObject1);
     $this->testEntityRepository->add($testEntity1);
     $this->persistenceManager->persistAll();
     $this->persistenceManager->clearState();
     $valueObject2 = new TestValueObject('sameValue');
     $testEntity2 = new TestEntity();
     $testEntity2->setRelatedValueObject($valueObject2);
     $valueObject3 = new TestValueObject('sameValue');
     $testEntity3 = new TestEntity();
     $testEntity3->setRelatedValueObject($valueObject3);
     $this->testEntityRepository->add($testEntity2);
     $this->testEntityRepository->add($testEntity3);
     $this->persistenceManager->persistAll();
     $this->persistenceManager->clearState();
     $testEntities = $this->testEntityRepository->findAll();
     $this->assertSame($testEntities[0]->getRelatedValueObject(), $testEntities[1]->getRelatedValueObject());
     $this->assertSame($testEntities[1]->getRelatedValueObject(), $testEntities[2]->getRelatedValueObject());
 }