3 use Wikimedia\Rdbms\DatabaseSqlite
;
6 * DatabaseSqliteTest is already defined in mediawiki core hence the 'Rdbms' included in this
8 * The test in core should have mediawiki specific stuff removed and the tests moved to this
11 class DatabaseSqliteRdbmsTest
extends PHPUnit\Framework\TestCase
{
13 use MediaWikiCoversValidator
;
16 * @return PHPUnit_Framework_MockObject_MockObject|DatabaseSqlite
18 private function getMockDb() {
19 return $this->getMockBuilder( DatabaseSqlite
::class )
20 ->disableOriginalConstructor()
25 public function provideBuildSubstring() {
26 yield
[ 'someField', 1, 2, 'SUBSTR(someField,1,2)' ];
27 yield
[ 'someField', 1, null, 'SUBSTR(someField,1)' ];
31 * @covers Wikimedia\Rdbms\DatabaseSqlite::buildSubstring
32 * @dataProvider provideBuildSubstring
34 public function testBuildSubstring( $input, $start, $length, $expected ) {
35 $dbMock = $this->getMockDb();
36 $output = $dbMock->buildSubstring( $input, $start, $length );
37 $this->assertSame( $expected, $output );
40 public function provideBuildSubstring_invalidParams() {
50 * @covers Wikimedia\Rdbms\DatabaseSqlite::buildSubstring
51 * @dataProvider provideBuildSubstring_invalidParams
53 public function testBuildSubstring_invalidParams( $start, $length ) {
54 $dbMock = $this->getMockDb();
55 $this->setExpectedException( InvalidArgumentException
::class );
56 $dbMock->buildSubstring( 'foo', $start, $length );