Exemplo n.º 1
0
 public function testSimpleCondition()
 {
     $condition = ['field' => 1, 'field2' => 2, 'field3' => ['field3' => 3, 'field4' => 4], 'field3a' => [3, 4], 'field5' => ['Lt' => ['asd', 1, 2, 3]], 'field6' => ['Lt' => 1], 'field7' => ['Lt' => 8], 'field8' => ['Gt' => ['asd', 1, 2, 3]], 'field9' => ['Gt' => 3], 'field10' => ['Gt' => 'ololo'], 'field11' => ['nEq' => ['asd', 1, 2, 3]], 'field12' => ['nEq' => 'asd'], 'field15' => ['LiKe' => 'asd']];
     $conditionBuilder = new FilterGroupConditionBuilder();
     $conditionBuilder->setConditions($condition);
     $conditions = $conditionBuilder->build();
     $expect = [EqCondition::create('field', 1), EqCondition::create('field2', 2), InqCondition::create('field3a', [3, 4]), LtCondition::create('field6', 1), LtCondition::create('field7', 8), GtCondition::create('field9', 3), NeqCondition::create('field12', 'asd'), LikeCondition::create('field15', 'asd')];
     $this->assertEquals($expect, $conditions->getConditions());
     $this->assertEquals(FilterCondition::CONDITION_AND, $conditionBuilder->getGroup());
 }
Exemplo n.º 2
0
 /**
  * @inheritdoc
  * @return FilterGroupConditionBuilder[]
  */
 public function build($conditions = null)
 {
     $groups = [];
     foreach ($conditions as $groupOperator => $filterData) {
         $group = StringUtils::toLower($groupOperator);
         if (!in_array($group, $this->getAvailableGroups())) {
             $group = FilterCondition::CONDITION_AND;
             $filterData = [$groupOperator => $filterData];
         }
         $conditionBuilder = new FilterGroupConditionBuilder();
         $conditionBuilder->setGroup($group);
         $conditionBuilder->setEventDispatcher($this->dispatcher);
         $conditionBuilder->setConditions($filterData);
         try {
             $groups[] = $conditionBuilder->build();
         } catch (InvalidConditionException $e) {
             continue;
         }
     }
     $this->groups = $groups;
     return $this->groups;
 }