Example #1
0
 public function testFilterWhere()
 {
     // should work with hash format
     $query = new Query();
     $query->filterWhere(['id' => 0, 'title' => '   ', 'author_ids' => []]);
     $this->assertEquals(['id' => 0], $query->where);
     $query->andFilterWhere(['status' => null]);
     $this->assertEquals(['id' => 0], $query->where);
     $query->orFilterWhere(['name' => '']);
     $this->assertEquals(['id' => 0], $query->where);
     // should work with operator format
     $query = new Query();
     $condition = ['like', 'name', 'Alex'];
     $query->filterWhere($condition);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['between', 'id', null, null]);
     $this->assertEquals($condition, $query->where);
     $query->orFilterWhere(['not between', 'id', null, null]);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['in', 'id', []]);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['not in', 'id', []]);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['not in', 'id', []]);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['like', 'id', '']);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['or like', 'id', '']);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['not like', 'id', '   ']);
     $this->assertEquals($condition, $query->where);
     $query->andFilterWhere(['or not like', 'id', null]);
     $this->assertEquals($condition, $query->where);
 }