<?php
+use Wikimedia\Rdbms\LoadBalancer;
use Wikimedia\TestingAccessWrapper;
/**
use MediaWikiCoversValidator;
- private function overrideCommentStore() {
+ /**
+ * @return PHPUnit_Framework_MockObject_MockObject|CommentStore
+ */
+ private function getMockCommentStore() {
$mockStore = $this->getMockBuilder( CommentStore::class )
->disableOriginalConstructor()
->getMock();
'fields' => [ 'commentstore' => 'field' ],
'joins' => [ 'commentstore' => 'join' ],
] );
+ return $mockStore;
+ }
- $this->setService( 'CommentStore', $mockStore );
+ /**
+ * @param PHPUnit_Framework_MockObject_MockObject|Database $mockDb
+ * @return WatchedItemQueryService
+ */
+ private function newService( $mockDb ) {
+ return new WatchedItemQueryService(
+ $this->getMockLoadBalancer( $mockDb ),
+ $this->getMockCommentStore()
+ );
}
/**
] ),
] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$startFrom = null;
$startFrom = [ '20160203123456', 42 ];
} ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
TestingAccessWrapper::newFromObject( $queryService )->extensions = [ $mockExtension ];
$startFrom = null;
array $expectedDbOptions,
array $expectedExtraJoinConds
) {
- $this->overrideCommentStore();
-
$expectedTables = array_merge( [ 'recentchanges', 'watchlist', 'page' ], $expectedExtraTables );
$expectedFields = array_merge(
[
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options, $startFrom );
$user = $this->getMockNonAnonUserWithIdAndNoPatrolRights( 1 );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$items = $queryService->getWatchedItemsWithRecentChangeInfo(
$user,
[ 'filters' => [ $filtersOption ] ]
->method( 'getType' )
->will( $this->returnValue( $dbType ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
$user = $this->getMockNonAnonUserWithIdAndRestrictedPermissions( 1, $notAllowedAction );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
$this->assertEmpty( $items );
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, [ 'allRevisions' => true ] );
$mockDb->expects( $this->never() )
->method( $this->anything() );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$this->setExpectedException( InvalidArgumentException::class, $expectedInExceptionMessage );
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsWithRecentChangeInfo(
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsWithRecentChangeInfo(
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 );
$otherUser->expects( $this->once() )
$mockDb->expects( $this->never() )
->method( $this->anything() );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
$otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 );
$otherUser->expects( $this->once() )
] ),
] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$user = $this->getMockNonAnonUserWithId( 1 );
$items = $queryService->getWatchedItemsForUser( $user );
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$items = $queryService->getWatchedItemsForUser( $user, $options );
$this->assertEmpty( $items );
)
->will( $this->returnValue( [] ) );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$items = $queryService->getWatchedItemsForUser( $user, $options );
$this->assertEmpty( $items );
array $options,
$expectedInExceptionMessage
) {
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $this->getMockDb() ) );
+ $queryService = $this->newService( $this->getMockDb() );
$this->setExpectedException( InvalidArgumentException::class, $expectedInExceptionMessage );
$queryService->getWatchedItemsForUser( $this->getMockNonAnonUserWithId( 1 ), $options );
$mockDb->expects( $this->never() )
->method( $this->anything() );
- $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+ $queryService = $this->newService( $mockDb );
$items = $queryService->getWatchedItemsForUser( $this->getMockAnonUser() );
$this->assertEmpty( $items );