Page MenuHomeWickedGov Phorge

RecentChangeSaveHandlerTest.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

RecentChangeSaveHandlerTest.php

<?php
namespace MediaWiki\CheckUser\Tests\Unit\HookHandler;
use JobQueueGroup;
use JobSpecification;
use MediaWiki\CheckUser\HookHandler\RecentChangeSaveHandler;
use MediaWiki\CheckUser\Services\CheckUserInsert;
use MediaWikiUnitTestCase;
use RecentChange;
use Wikimedia\Rdbms\IConnectionProvider;
/**
* @covers \MediaWiki\CheckUser\HookHandler\RecentChangeSaveHandler
* @group CheckUser
*/
class RecentChangeSaveHandlerTest extends MediaWikiUnitTestCase {
/** @dataProvider provideOnRecentChangeSave */
public function testOnRecentChangeSave( $mtRandReturnValue, $shouldCreatePurgeJob ) {
$recentChange = $this->createMock( RecentChange::class );
// Create a mock object of CheckUserInsert service that expects a call to ::updateCheckUserData
$mockCheckUserInsert = $this->createMock( CheckUserInsert::class );
$mockCheckUserInsert->expects( $this->once() )
->method( 'updateCheckUserData' )
->with( $recentChange );
// Create a mock object of JobQueueGroup that expects a call to ::push if $shouldCreatePurgeJob is true.
$mockJobQueueGroup = $this->createMock( JobQueueGroup::class );
if ( $shouldCreatePurgeJob ) {
$mockJobQueueGroup->expects( $this->once() )
->method( 'push' )
->with( $this->isInstanceOf( JobSpecification::class ) );
} else {
$mockJobQueueGroup->expects( $this->never() )
->method( 'push' );
}
// Get the RecentChangeSaveHandler object, with the mt_rand method mocked to return $mtRandReturnValue.
$handler = $this->getMockBuilder( RecentChangeSaveHandler::class )
->setConstructorArgs( [
$mockCheckUserInsert,
$mockJobQueueGroup,
$this->createMock( IConnectionProvider::class ),
] )
->onlyMethods( [ 'mtRand' ] )
->getMock();
$handler->method( 'mtRand' )
->willReturn( $mtRandReturnValue );
// Call the method under test.
$handler->onRecentChange_save( $recentChange );
}
public static function provideOnRecentChangeSave() {
return [
'No purge job queued' => [ 1, false ],
'Purge job queued' => [ 0, true ],
];
}
}

File Metadata

Mime Type
text/x-php
Expires
Aug 16 2026, 04:05 (12 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d3/b0/3b27d3f489d941339943a05915ef
Default Alt Text
RecentChangeSaveHandlerTest.php (1 KB)

Event Timeline