public function testSetWhereWithNull()
 {
     $fieldDescriptors = ['title_id' => new DoctrineFieldDescriptor('id', 'title_id', self::$entityName)];
     $filter = ['title_id' => null];
     foreach ($filter as $key => $value) {
         $this->doctrineListBuilder->addField($fieldDescriptors[$key]);
         $this->doctrineListBuilder->where($fieldDescriptors[$key], $value);
     }
     $this->queryBuilder->expects($this->once())->method('andWhere')->with('(SuluCoreBundle:Example.id IS NULL)');
     $this->doctrineListBuilder->execute();
 }
 public function testSetWhereNot()
 {
     $fieldDescriptors = ['title_id' => new DoctrineFieldDescriptor('id', 'title_id', self::$entityName), 'desc_id' => new DoctrineFieldDescriptor('id', 'desc_id', self::$entityName)];
     $filter = ['title_id' => 3, 'desc_id' => 1];
     foreach ($filter as $key => $value) {
         $this->doctrineListBuilder->addSelectField($fieldDescriptors[$key]);
         $this->doctrineListBuilder->where($fieldDescriptors[$key], $value, ListBuilderInterface::WHERE_COMPARATOR_UNEQUAL);
     }
     $this->assertCount(2, PHPUnit_Framework_Assert::readAttribute($this->doctrineListBuilder, 'expressions'));
     $expressions = PHPUnit_Framework_Assert::readAttribute($this->doctrineListBuilder, 'expressions');
     $this->assertEquals(3, $expressions[0]->getValue());
     $this->assertEquals(1, $expressions[1]->getValue());
     $this->assertCount(2, PHPUnit_Framework_Assert::readAttribute($this->doctrineListBuilder, 'expressions'));
     $this->assertEquals('title_id', $expressions[0]->getFieldName());
     $this->assertEquals('desc_id', $expressions[1]->getFieldName());
     $this->doctrineListBuilder->execute();
 }
Beispiel #3
0
 /**
  * Applies the filter parameter and hasNoparent parameter for listbuilder.
  *
  * @param Request $request
  * @param array $filter
  * @param DoctrineListBuilder $listBuilder
  */
 protected function applyRequestParameters(Request $request, $filter, $listBuilder)
 {
     if (json_decode($request->get('hasNoParent', null))) {
         $listBuilder->where($this->getFieldDescriptorForNoParent(), null);
     }
     if (json_decode($request->get('hasEmail', null))) {
         $listBuilder->whereNot($this->getFieldDescriptors()['mainEmail'], null);
     }
     foreach ($filter as $key => $value) {
         if (is_array($value)) {
             $listBuilder->in($this->getFieldDescriptors()[$key], $value);
         } else {
             $listBuilder->where($this->getFieldDescriptors()[$key], $value);
         }
     }
 }