1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
<?php
/**
* @group JobQueue
* @group Database
*/
class UserEditCountInitJobTest extends MediaWikiIntegrationTestCase {
public static function provideTestCases() {
// $startingEditCount, $setCount, $finalCount
yield 'Initiate count if not yet set' => [ false, 2, 2 ];
yield 'Update count when increasing' => [ 2, 3, 3 ];
yield 'Never decrease count' => [ 10, 3, 10 ];
}
/**
* @covers \UserEditCountInitJob
* @dataProvider provideTestCases
*/
public function testUserEditCountInitJob( $startingEditCount, $setCount, $finalCount ) {
$user = $this->getMutableTestUser()->getUser();
if ( $startingEditCount !== false ) {
$this->getServiceContainer()->getConnectionProvider()->getPrimaryDatabase()
->newUpdateQueryBuilder()
->update( 'user' )
->set( [ 'user_editcount' => $startingEditCount ] )
->where( [ 'user_id' => $user->getId() ] )
->caller( __METHOD__ )
->execute();
}
$job = new UserEditCountInitJob( [
'userId' => $user->getId(),
'editCount' => $setCount
] );
$result = $job->run();
$this->assertTrue( $result );
$this->assertEquals( $finalCount, $user->getEditCount() );
}
}
|