GraphAware\Neo4j\OGM\Tests\Integration\UseCase\UserResourceTest::testFetchExistingUserWithRoleAndAddResource PHP Méthode

testFetchExistingUserWithRoleAndAddResource() public méthode

    public function testFetchExistingUserWithRoleAndAddResource()
    {
        $this->init();
        /** @var User $user */
        $user = $this->em->getRepository(User::class)->findOneBy('login', 'ikwattro');
        /** @var ResourceModel $resource */
        $resource = $this->em->getRepository(ResourceModel::class)->findOneBy('name', 'wood');
        $this->assertNotNull($user);
        $this->assertNotNull($resource);
        $this->assertEquals('wood', $resource->getName());
        $this->assertCount(0, $user->getUserResources());
        $user->addResource($resource, 20);
        $this->em->persist($user);
        $this->em->persist($resource);
        $this->em->flush();
        foreach (['water', 'sun', 'coat', 'stone'] as $res) {
            $res2 = $this->em->getRepository(ResourceModel::class)->findOneBy('name', $res);
            $user->addResource($res2, 15);
        }
        $this->em->flush();
        $this->assertGraphExist('(r:Resource {name:"wood"})<-[:HAS_RESOURCE {amount:20}]-(u:User {login:"ikwattro"})-[:HAS_ROLE]->(role:SecurityRole {name:"view_pages"})');
        $result = $this->client->run('MATCH (n:User {login:"ikwattro"}) RETURN size((n)-[:HAS_RESOURCE]->()) AS value');
        $resourcesCount = $result->firstRecord()->get('value');
        $this->assertEquals(5, $resourcesCount);
    }