public function testSelectsByRange() { $rangeField = 'test_id'; $tableName = 'test'; $this->_adapter->expects($this->once())->method('fetchRow')->with($this->_adapter->select()->from($tableName, [new \Zend_Db_Expr('MIN(' . $this->_adapter->quoteIdentifier($rangeField) . ') AS min'), new \Zend_Db_Expr('MAX(' . $this->_adapter->quoteIdentifier($rangeField) . ') AS max')]))->will($this->returnValue(['min' => 1, 'max' => 200])); $this->_adapter->expects($this->any())->method('quote')->will($this->returnCallback(function ($values) { if (!is_array($values)) { $values = [$values]; } foreach ($values as &$value) { $value = "'" . $value . "'"; } return implode(',', $values); })); $expectedSelect = $this->_adapter->select()->from($tableName); $result = $this->_adapter->selectsByRange($rangeField, $expectedSelect, 50); $this->assertCount(200 / 50, $result); $prepareField = $this->_adapter->quoteIdentifier($tableName) . '.' . $this->_adapter->quoteIdentifier($rangeField); $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 1)->where($prepareField . ' < ?', 51), $result[0]); $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 51)->where($prepareField . ' < ?', 101), $result[1]); $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 101)->where($prepareField . ' < ?', 151), $result[2]); $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 151)->where($prepareField . ' < ?', 201), $result[3]); }
/** * @test * @dataProvider quoteIdentifierDataProvider * @param string $input * @param string $expected */ public function quoteIdentifier(string $input, string $expected) { $this->assertSame($expected, $this->connection->quoteIdentifier($input)); }