/**
  * validate that we can interact with the visit process using an eventlistener
  *
  * @return void
  */
 public function testThrowsEvent()
 {
     $query = 'eq(name,replaceme)&limit(10)';
     $dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
     $dispatcher->addListener('rql.visit.node', [new \Graviton\Rql\Listener\TestListener(), 'onVisitNode']);
     $visitor = new MongoOdm();
     $visitor->setBuilder($this->builder);
     $visitor->setDispatcher($dispatcher);
     $results = $this->runTestQuery($query, $visitor);
     $this->assertCount(1, $results);
     $this->assertEquals('My First Sprocket', $results[0]->name);
 }
예제 #2
0
 /**
  * Does the actual query using the RQL Bundle.
  *
  * @param Builder $queryBuilder Doctrine ODM QueryBuilder
  * @param Query   $query        query from parser
  *
  * @return array
  */
 protected function doRqlQuery($queryBuilder, Query $query)
 {
     $this->visitor->setBuilder($queryBuilder);
     return $this->visitor->visit($query);
 }