public function testBetween() { $nameFieldDescriptor = new DoctrineFieldDescriptor('name', 'name_alias', self::$entityName); $this->doctrineListBuilder->setSelectFields([$nameFieldDescriptor]); $this->doctrineListBuilder->between($nameFieldDescriptor, [0, 1]); $this->queryBuilder->expects($this->once())->method('andWhere')->withAnyParameters(); $this->queryBuilder->expects($this->at(1))->method('setParameter')->withAnyParameters(); $this->queryBuilder->expects($this->at(2))->method('setParameter')->withAnyParameters(); $this->doctrineListBuilder->execute(); }
public function testBetween() { $nameFieldDescriptor = new DoctrineFieldDescriptor('name', 'name_alias', self::$entityName); $this->doctrineListBuilder->setFields([$nameFieldDescriptor]); $this->doctrineListBuilder->between($nameFieldDescriptor, [0, 1]); $this->queryBuilder->expects($this->once())->method('andWhere')->with('(SuluCoreBundle:Example.name BETWEEN :name_alias1 AND :name_alias2)'); $this->queryBuilder->expects($this->at(1))->method('setParameter')->with('name_alias1', 0); $this->queryBuilder->expects($this->at(2))->method('setParameter')->with('name_alias2', 1); $this->doctrineListBuilder->execute(); }
/** * Prepare list response. * * @param Request $request * @param DoctrineListBuilder $listBuilder * @param string $locale * * @return array */ private function prepareListResponse(Request $request, DoctrineListBuilder $listBuilder, $locale) { $idsParameter = $request->get('ids'); $ids = array_filter(explode(',', $idsParameter)); if ($idsParameter !== null && count($ids) === 0) { return []; } if ($idsParameter !== null) { $listBuilder->in($this->fieldDescriptors['id'], $ids); } $listResponse = $listBuilder->execute(); $listResponse = $this->addAvatars($listResponse, $locale); if ($idsParameter !== null) { $comparator = $this->getComparator(); // the @ is necessary in case of a PHP bug https://bugs.php.net/bug.php?id=50688 @usort($listResponse, function ($a, $b) use($comparator, $ids) { return $comparator->compare($a['id'], $b['id'], $ids); }); } return $listResponse; }