for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Wikibase\DataModel\Services\Tests\EntityId;
use PHPUnit\Framework\TestCase;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Services\EntityId\InMemoryEntityIdPager;
/**
* @covers \Wikibase\DataModel\Services\EntityId\InMemoryEntityIdPager
*
* @license GPL-2.0-or-later
*/
class InMemoryEntityIdPagerTest extends TestCase {
public function testReturnsEmptyArrayWhenThereAreNoIds() {
$this->assertSame(
[],
( new InMemoryEntityIdPager() )->fetchIds( 10 )
);
}
public function testReturnsTheFirstIdsUpToLimit() {
$pager = new InMemoryEntityIdPager(
new ItemId( 'Q1' ),
new ItemId( 'Q2' ),
new ItemId( 'Q3' ),
new ItemId( 'Q4' ),
new ItemId( 'Q5' )
$this->assertEquals(
[
],
$pager->fetchIds( 2 )
public function testReturnsLessItemsIfThereAreFew() {
new ItemId( 'Q2' )
$pager->fetchIds( 5 )
public function testReturnsNextBatch() {
$pager->fetchIds( 2 );
public function testCanResumeFromPosition() {
$firstPager = new InMemoryEntityIdPager(
$secondPager = new InMemoryEntityIdPager(
$firstPager->fetchIds( 2 );
$secondPager->setPosition( $firstPager->getPosition() );
$secondPager->fetchIds( 2 )
public function testCanAddIds() {
new ItemId( 'Q1' )
$pager->addEntityId( new ItemId( 'Q2' ) );