public function alreadyPersistedValueObjectsAreCorrectlyReused()
{
$valueObject1 = new Fixtures\TestValueObject('sameValue');
$testEntity1 = new Fixtures\TestEntity();
$testEntity1->setRelatedValueObject($valueObject1);
$this->testEntityRepository->add($testEntity1);
$this->persistenceManager->persistAll();
$this->persistenceManager->clearState();
$valueObject2 = new Fixtures\TestValueObject('sameValue');
$testEntity2 = new Fixtures\TestEntity();
$testEntity2->setRelatedValueObject($valueObject2);
$valueObject3 = new Fixtures\TestValueObject('sameValue');
$testEntity3 = new Fixtures\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());
}