Doctrine\Tests\ODM\CouchDB\Functional\LuceneQueryTest::testLuceneIndexing PHP Метод

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

public testLuceneIndexing ( )
    public function testLuceneIndexing()
    {
        $this->dm->getConfiguration()->addDesignDocument('lucene_users', 'Doctrine\\Tests\\ODM\\CouchDB\\Functional\\LuceneQueryDesignDoc', array());
        $query = $this->dm->createLuceneQuery('lucene_users', 'by_name');
        $response = $query->createDesignDocument();
        $user1 = new \Doctrine\Tests\Models\CMS\CmsUser();
        $user1->username = "beberlei";
        $user1->status = "active";
        $user1->name = "Benjamin";
        $user2 = new \Doctrine\Tests\Models\CMS\CmsUser();
        $user2->username = "lsmith";
        $user2->status = "active";
        $user2->name = "Lukas";
        $this->dm->persist($user1);
        $this->dm->persist($user2);
        $this->dm->flush();
        $query->setQuery("Lukas");
        try {
            $result = $query->execute();
        } catch (\Doctrine\CouchDB\HTTP\HTTPException $e) {
            if ($e->getCode() == 404) {
                $this->markTestSkipped("Lucene is not integrated");
            } else {
                throw $e;
            }
        }
        $this->assertEquals(1, count($result));
        foreach ($result as $user) {
            $this->assertEquals($user2->id, $user['id']);
            $this->assertEquals(1, $user['score']);
        }
        $query->setIncludeDocs(true)->setDocumentName('Doctrine\\Tests\\Models\\CMS\\CmsUser');
        $result = $query->execute();
        $this->assertSame($user2, $result[0]['doc']);
    }