public function testMultipleRelationshipTypesWithSameName()
{
$this->clearDb();
$user1 = new User('user1');
$user2 = new User('user2');
$user3 = new User('user3');
$user4 = new User('user4');
$user5 = new User('user5');
$user6 = new User('user6');
$user1->addLoves($user2);
$user1->addLoves($user3);
$user6->addLovedBy($user4);
$user6->addLovedBy($user5);
$this->em->persist($user1);
$this->em->persist($user6);
$this->em->flush();
$this->em->clear();
$this->assertGraphExist('(u2:User {login:"user2"})<-[:IN_LOVE_WITH]-(u1:User {login: "user1"})-[:IN_LOVE_WITH]->(u3:User {login: "user3"})');
$this->assertGraphExist('(u4:User {login:"user4"})-[:IN_LOVE_WITH]->(u6:User {login:"user6"})<-[:IN_LOVE_WITH]-(u5:User {login:"user5"})');
/** @var BaseRepository $repository */
$repository = $this->em->getRepository(User::class);
/** @var User $user */
$user = $repository->findOneBy('login', 'user1');
$this->assertCount(2, $user->getLoves());
foreach ($user->getLoves() as $loved) {
$this->assertCount(1, $loved->getLovedBy());
$this->assertEquals('user1', $loved->getLovedBy()[0]->getLogin());
}
//$this->em->clear();
/** @var User $u6 */
$u6 = $repository->findOneBy('login', 'user6');
$this->assertCount(2, $u6->getLovedBy());
foreach ($u6->getLovedBy() as $lover) {
$this->assertTrue($lover->getLoves()->contains($u6));
}
}