public function testWhere()
 {
     $query = new Query();
     $query->setMappingConfig($this->config);
     $query->from('Oro\\Bundle\\DataBundle\\Entity\\Product');
     $query->where('or', 'all_data', '=', 'test', 'string');
     $queryParams = $query->getOptions();
     $this->assertEquals('or', $queryParams[0]['type']);
     $this->assertEquals('all_data', $queryParams[0]['fieldName']);
 }
Example #2
0
 public function testBeforeSearchEvent()
 {
     $query = new Query();
     $query->from('testEntity')->andWhere('name', '~', 'string');
     $this->securityFacade->expects($this->once())->method('getOrganizationId')->will($this->returnValue(5));
     $event = new BeforeSearchEvent($query);
     $this->listener->beforeSearchEvent($event);
     $wherePart = $query->getOptions();
     $this->assertCount(2, $wherePart);
     $expexted = ['fieldName' => 'organization', 'condition' => 'in', 'fieldValue' => [5, 0], 'fieldType' => 'integer', 'type' => 'and'];
     $this->assertEquals($expexted, $wherePart[1]);
 }
Example #3
0
 /**
  * @param Query $query
  * @return string
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 protected function combineQueryString(Query $query)
 {
     $selectString = $query->getQuery();
     $fromString = '';
     if ($query->getFrom()) {
         $fromString .= ' from ' . implode(', ', $query->getFrom());
     }
     $whereParts = array();
     foreach ($query->getOptions() as $whereOptions) {
         if (is_array($whereOptions['fieldValue'])) {
             $whereOptions['fieldValue'] = '(' . implode(', ', $whereOptions['fieldValue']) . ')';
         }
         $whereParts[] = sprintf('%s((%s)%s %s %s)', $whereOptions['type'], $whereOptions['fieldType'], $whereOptions['fieldName'], $whereOptions['condition'], $whereOptions['fieldValue']);
     }
     $whereString = '';
     if ($whereParts) {
         $whereString .= ' where ' . implode(' ', $whereParts);
     }
     $orderByString = '';
     if ($query->getOrderBy()) {
         $orderByString .= ' ' . $query->getOrderBy();
     }
     if ($query->getOrderDirection()) {
         $orderByString .= ' ' . $query->getOrderDirection();
     }
     if ($orderByString) {
         $orderByString = ' order by' . $orderByString;
     }
     $limitString = '';
     if ($query->getMaxResults() && $query->getMaxResults() != Query::INFINITY) {
         $limitString = ' limit ' . $query->getMaxResults();
     }
     $offsetString = '';
     if ($query->getFirstResult()) {
         $offsetString .= ' offset ' . $query->getFirstResult();
     }
     return $selectString . $fromString . $whereString . $orderByString . $limitString . $offsetString;
 }