GraphAware\Neo4j\OGM\Tests\Integration\RelationshipIntegrationTest::testMultipleRelationshipTypesWithSameName PHP Метод

testMultipleRelationshipTypesWithSameName() публичный Метод

    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));
        }
    }