X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fwatcheditem%2FWatchedItemQueryServiceUnitTest.php;h=0b1d0132fbaf4ed0c2debb341520671d5d48d12a;hp=63c2b8217214d1f3501f80120c098e789fdc9aae;hb=dfec83932fd38a9086eb5a2e212889ad00f35b0e;hpb=4d75fbf3571c765a3d84140cb77b45a86aab3184 diff --git a/tests/phpunit/includes/watcheditem/WatchedItemQueryServiceUnitTest.php b/tests/phpunit/includes/watcheditem/WatchedItemQueryServiceUnitTest.php index 63c2b82172..0b1d0132fb 100644 --- a/tests/phpunit/includes/watcheditem/WatchedItemQueryServiceUnitTest.php +++ b/tests/phpunit/includes/watcheditem/WatchedItemQueryServiceUnitTest.php @@ -1,5 +1,7 @@ getMockBuilder( Database::class ) - ->disableOriginalConstructor() - ->getMock(); + $mock = $this->createMock( IDatabase::class ); $mock->expects( $this->any() ) ->method( 'makeList' ) @@ -126,7 +124,7 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { } /** - * @param PHPUnit_Framework_MockObject_MockObject|Database $mockDb + * @param PHPUnit_Framework_MockObject_MockObject|IDatabase $mockDb * @return PHPUnit_Framework_MockObject_MockObject|LoadBalancer */ private function getMockLoadBalancer( $mockDb ) { @@ -141,7 +139,6 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { } /** - * @param PHPUnit_Framework_MockObject_MockObject|Database $mockDb * @return PHPUnit_Framework_MockObject_MockObject|WatchedItemStore */ private function getMockWatchedItemStore() { @@ -158,34 +155,32 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { /** * @param int $id + * @param string[] $extraMethods Extra methods that are expected might be called * @return PHPUnit_Framework_MockObject_MockObject|User */ - private function getMockNonAnonUserWithId( $id ) { + private function getMockNonAnonUserWithId( $id, array $extraMethods = [] ) { $mock = $this->getMockBuilder( User::class )->getMock(); - $mock->expects( $this->any() ) - ->method( 'isAnon' ) - ->will( $this->returnValue( false ) ); - $mock->expects( $this->any() ) - ->method( 'getId' ) - ->will( $this->returnValue( $id ) ); + $mock->method( 'isRegistered' )->willReturn( true ); + $mock->method( 'getId' )->willReturn( $id ); + $methods = array_merge( [ + 'isRegistered', + 'getId', + ], $extraMethods ); + $mock->expects( $this->never() )->method( $this->anythingBut( ...$methods ) ); return $mock; } /** * @param int $id + * @param string[] $extraMethods Extra methods that are expected might be called * @return PHPUnit_Framework_MockObject_MockObject|User */ - private function getMockUnrestrictedNonAnonUserWithId( $id ) { - $mock = $this->getMockNonAnonUserWithId( $id ); - $mock->expects( $this->any() ) - ->method( 'isAllowed' ) - ->will( $this->returnValue( true ) ); - $mock->expects( $this->any() ) - ->method( 'isAllowedAny' ) - ->will( $this->returnValue( true ) ); - $mock->expects( $this->any() ) - ->method( 'useRCPatrol' ) - ->will( $this->returnValue( true ) ); + private function getMockUnrestrictedNonAnonUserWithId( $id, array $extraMethods = [] ) { + $mock = $this->getMockNonAnonUserWithId( $id, + array_merge( [ 'isAllowed', 'isAllowedAny', 'useRCPatrol' ], $extraMethods ) ); + $mock->method( 'isAllowed' )->willReturn( true ); + $mock->method( 'isAllowedAny' )->willReturn( true ); + $mock->method( 'useRCPatrol' )->willReturn( true ); return $mock; } @@ -195,18 +190,19 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { * @return PHPUnit_Framework_MockObject_MockObject|User */ private function getMockNonAnonUserWithIdAndRestrictedPermissions( $id, $notAllowedAction ) { - $mock = $this->getMockNonAnonUserWithId( $id ); + $mock = $this->getMockNonAnonUserWithId( $id, + [ 'isAllowed', 'isAllowedAny', 'useRCPatrol', 'useNPPatrol' ] ); - $mock->expects( $this->any() ) - ->method( 'isAllowed' ) + $mock->method( 'isAllowed' ) ->will( $this->returnCallback( function ( $action ) use ( $notAllowedAction ) { return $action !== $notAllowedAction; } ) ); - $mock->expects( $this->any() ) - ->method( 'isAllowedAny' ) + $mock->method( 'isAllowedAny' ) ->will( $this->returnCallback( function ( ...$actions ) use ( $notAllowedAction ) { return !in_array( $notAllowedAction, $actions ); } ) ); + $mock->method( 'useRCPatrol' )->willReturn( false ); + $mock->method( 'useNPPatrol' )->willReturn( false ); return $mock; } @@ -216,7 +212,8 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { * @return PHPUnit_Framework_MockObject_MockObject|User */ private function getMockNonAnonUserWithIdAndNoPatrolRights( $id ) { - $mock = $this->getMockNonAnonUserWithId( $id ); + $mock = $this->getMockNonAnonUserWithId( $id, + [ 'isAllowed', 'isAllowedAny', 'useRCPatrol', 'useNPPatrol' ] ); $mock->expects( $this->any() ) ->method( 'isAllowed' ) @@ -235,14 +232,6 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { return $mock; } - private function getMockAnonUser() { - $mock = $this->getMockBuilder( User::class )->getMock(); - $mock->expects( $this->any() ) - ->method( 'isAnon' ) - ->will( $this->returnValue( true ) ); - return $mock; - } - private function getFakeRow( array $rowValues ) { $fakeRow = new stdClass(); foreach ( $rowValues as $valueName => $value ) { @@ -1384,7 +1373,7 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { $queryService = $this->newService( $mockDb ); $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 ); - $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 ); + $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2, [ 'getOption' ] ); $otherUser->expects( $this->once() ) ->method( 'getOption' ) ->with( 'watchlisttoken' ) @@ -1415,7 +1404,7 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { $queryService = $this->newService( $mockDb ); $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 ); - $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 ); + $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2, [ 'getOption' ] ); $otherUser->expects( $this->once() ) ->method( 'getOption' ) ->with( 'watchlisttoken' ) @@ -1715,7 +1704,8 @@ class WatchedItemQueryServiceUnitTest extends MediaWikiTestCase { $queryService = $this->newService( $mockDb ); - $items = $queryService->getWatchedItemsForUser( $this->getMockAnonUser() ); + $items = $queryService->getWatchedItemsForUser( + new UserIdentityValue( 0, 'AnonUser', 0 ) ); $this->assertEmpty( $items ); }