wiki.techinc.nl/tests/phpunit/includes/UserArrayFromResultTest.php
Timo Tijhof 96771e3a65 test: Clean up data providers that should be static
Follows-up b36d883.

By far most data providers are static (and PHPUnit expects them
to be static and calls them that way).

Most of these classes already had their data providers static
but additional commits sloppily introduced non-static ones.

* ResourceLoaderWikiModuleTest, 8968d8787f.
* TitleTest, 545f1d3a73.
  Odd unused method 'dataTestIsValidMoveOperation' was introduced
  in 550b878e63.
* GlobalVarConfigTest, a3e18c3670.

Change-Id: I5da99f7cd3da68c550ae507ffe1f725d31e7666f
2014-09-18 12:52:44 -07:00

114 lines
3 KiB
PHP

<?php
/**
* @author Adam Shorland
* @covers UserArrayFromResult
*/
class UserArrayFromResultTest extends MediaWikiTestCase {
private function getMockResultWrapper( $row = null, $numRows = 1 ) {
$resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
->disableOriginalConstructor();
$resultWrapper = $resultWrapper->getMock();
$resultWrapper->expects( $this->atLeastOnce() )
->method( 'current' )
->will( $this->returnValue( $row ) );
$resultWrapper->expects( $this->any() )
->method( 'numRows' )
->will( $this->returnValue( $numRows ) );
return $resultWrapper;
}
private function getRowWithUsername( $username = 'fooUser' ) {
$row = new stdClass();
$row->user_name = $username;
return $row;
}
private function getUserArrayFromResult( $resultWrapper ) {
return new UserArrayFromResult( $resultWrapper );
}
/**
* @covers UserArrayFromResult::__construct
*/
public function testConstructionWithFalseRow() {
$row = false;
$resultWrapper = $this->getMockResultWrapper( $row );
$object = $this->getUserArrayFromResult( $resultWrapper );
$this->assertEquals( $resultWrapper, $object->res );
$this->assertSame( 0, $object->key );
$this->assertEquals( $row, $object->current );
}
/**
* @covers UserArrayFromResult::__construct
*/
public function testConstructionWithRow() {
$username = 'addshore';
$row = $this->getRowWithUsername( $username );
$resultWrapper = $this->getMockResultWrapper( $row );
$object = $this->getUserArrayFromResult( $resultWrapper );
$this->assertEquals( $resultWrapper, $object->res );
$this->assertSame( 0, $object->key );
$this->assertInstanceOf( 'User', $object->current );
$this->assertEquals( $username, $object->current->mName );
}
public static function provideNumberOfRows() {
return array(
array( 0 ),
array( 1 ),
array( 122 ),
);
}
/**
* @dataProvider provideNumberOfRows
* @covers UserArrayFromResult::count
*/
public function testCountWithVaryingValues( $numRows ) {
$object = $this->getUserArrayFromResult( $this->getMockResultWrapper(
$this->getRowWithUsername(),
$numRows
) );
$this->assertEquals( $numRows, $object->count() );
}
/**
* @covers UserArrayFromResult::current
*/
public function testCurrentAfterConstruction() {
$username = 'addshore';
$userRow = $this->getRowWithUsername( $username );
$object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $userRow ) );
$this->assertInstanceOf( 'User', $object->current() );
$this->assertEquals( $username, $object->current()->mName );
}
public function provideTestValid() {
return array(
array( $this->getRowWithUsername(), true ),
array( false, false ),
);
}
/**
* @dataProvider provideTestValid
* @covers UserArrayFromResult::valid
*/
public function testValid( $input, $expected ) {
$object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $input ) );
$this->assertEquals( $expected, $object->valid() );
}
//@todo unit test for key()
//@todo unit test for next()
//@todo unit test for rewind()
}