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); }