/**
* @covers Wikimedia\Rdbms\Subquery
* @dataProvider provideSelectRowCount
- * @param $sql
- * @param $sqlText
+ * @param array $sql
+ * @param string $sqlText
*/
public function testSelectRowCount( $sql, $sqlText ) {
$this->database->selectRowCount(
];
}
+ /**
+ * @covers Wikimedia\Rdbms\Database::insertSelect
+ * @covers Wikimedia\Rdbms\Database::nativeInsertSelect
+ */
public function testInsertSelectBatching() {
$dbWeb = new DatabaseTestHelper( __CLASS__, [ 'cliMode' => false ] );
$rows = [];
/**
* @expectedException \Wikimedia\Rdbms\DBTransactionStateError
+ * @covers \Wikimedia\Rdbms\Database::assertTransactionStatus
*/
public function testTransactionErrorState1() {
$wrapper = TestingAccessWrapper::newFromObject( $this->database );
$this->assertLastSql( 'BEGIN; SELECT 1; ROLLBACK' );
$this->assertEquals( 0, $this->database->trxLevel() );
}
+
+ /**
+ * @covers Wikimedia\Rdbms\Database::selectFieldValues()
+ */
+ public function testSelectFieldValues() {
+ $this->database->forceNextResult( [
+ (object)[ 'value' => 'row1' ],
+ (object)[ 'value' => 'row2' ],
+ (object)[ 'value' => 'row3' ],
+ ] );
+
+ $this->assertSame(
+ [ 'row1', 'row2', 'row3' ],
+ $this->database->selectFieldValues( 'table', 'table.field', 'conds', __METHOD__ )
+ );
+ $this->assertLastSql( 'SELECT table.field AS value FROM table WHERE conds' );
+ }
}