Bravo3\Orm\Tests\Indices\IndexedQueryTest::testQuery PHP Метод

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

public testQuery ( EntityManager $em )
$em Bravo3\Orm\Services\EntityManager
    public function testQuery(EntityManager $em)
    {
        $a = new SluggedArticle();
        $a->setId(1)->setName("Article A")->setSlug("article-alpha");
        $b = new SluggedArticle();
        $b->setId(2)->setName("Article B")->setSlug("article-bravo");
        $c = new SluggedArticle();
        $c->setId(3)->setName("Document C")->setSlug("article-charlie");
        $d = new SluggedArticle();
        $d->setId(4)->setName("Document D")->setSlug("article-almost-alpha");
        $em->persist($a)->persist($b)->persist($c)->persist($d)->flush();
        $result = $em->indexedQuery(new IndexedQuery(SluggedArticle::class, ['slug' => 'article-al*']));
        $this->assertCount(2, $result);
        $names = ['Article A', 'Document D'];
        $count = 0;
        foreach ($result as $entity) {
            $this->assertContains($entity->getName(), $names);
            $count++;
            $names = array_diff($names, [$entity->getName()]);
        }
        $this->assertEquals(2, $count);
        $result = $em->indexedQuery(new IndexedQuery(SluggedArticle::class, ['slug' => 'article-al*', 'name' => 'Docu*']));
        $this->assertCount(1, $result);
        $ids = $result->getIdList();
        $this->assertCount(1, $ids);
        $this->assertEquals('4', $ids[0]);
        $entity = $result->getEntityById('4');
        $this->assertEquals('Document D', $entity->getName());
    }
IndexedQueryTest