public function distinctQueryOnlyReturnsDistinctEntities()
{
$testEntityRepository = new Fixtures\TestEntityRepository();
$testEntityRepository->removeAll();
$testEntity = new Fixtures\TestEntity();
$testEntity->setName('Flow');
$subEntity1 = new Fixtures\SubEntity();
$subEntity1->setContent('value');
$subEntity1->setParentEntity($testEntity);
$testEntity->addSubEntity($subEntity1);
$this->persistenceManager->add($subEntity1);
$subEntity2 = new Fixtures\SubEntity();
$subEntity2->setContent('value');
$subEntity2->setParentEntity($testEntity);
$testEntity->addSubEntity($subEntity2);
$this->persistenceManager->add($subEntity2);
$testEntityRepository->add($testEntity);
$testEntity2 = new Fixtures\TestEntity();
$testEntity2->setName('Flow');
$subEntity3 = new Fixtures\SubEntity();
$subEntity3->setContent('value');
$subEntity3->setParentEntity($testEntity2);
$testEntity2->addSubEntity($subEntity3);
$this->persistenceManager->add($subEntity3);
$testEntityRepository->add($testEntity2);
$this->persistenceManager->persistAll();
$query = new Query(Fixtures\TestEntity::class);
$entities = $query->matching($query->equals('subEntities.content', 'value'))->setDistinct()->setLimit(2)->execute()->toArray();
$this->assertEquals(2, count($entities));
}