MediaWiki REL1_31
UserArrayFromResultTest.php
Go to the documentation of this file.
1<?php
2
8
9 private function getMockResultWrapper( $row = null, $numRows = 1 ) {
10 $resultWrapper = $this->getMockBuilder( Wikimedia\Rdbms\ResultWrapper::class )
11 ->disableOriginalConstructor();
12
13 $resultWrapper = $resultWrapper->getMock();
14 $resultWrapper->expects( $this->atLeastOnce() )
15 ->method( 'current' )
16 ->will( $this->returnValue( $row ) );
17 $resultWrapper->expects( $this->any() )
18 ->method( 'numRows' )
19 ->will( $this->returnValue( $numRows ) );
20
21 return $resultWrapper;
22 }
23
24 private function getRowWithUsername( $username = 'fooUser' ) {
25 $row = new stdClass();
26 $row->user_name = $username;
27 return $row;
28 }
29
30 private function getUserArrayFromResult( $resultWrapper ) {
31 return new UserArrayFromResult( $resultWrapper );
32 }
33
37 public function testConstructionWithFalseRow() {
38 $row = false;
39 $resultWrapper = $this->getMockResultWrapper( $row );
40
41 $object = $this->getUserArrayFromResult( $resultWrapper );
42
43 $this->assertEquals( $resultWrapper, $object->res );
44 $this->assertSame( 0, $object->key );
45 $this->assertEquals( $row, $object->current );
46 }
47
51 public function testConstructionWithRow() {
52 $username = 'addshore';
53 $row = $this->getRowWithUsername( $username );
54 $resultWrapper = $this->getMockResultWrapper( $row );
55
56 $object = $this->getUserArrayFromResult( $resultWrapper );
57
58 $this->assertEquals( $resultWrapper, $object->res );
59 $this->assertSame( 0, $object->key );
60 $this->assertInstanceOf( User::class, $object->current );
61 $this->assertEquals( $username, $object->current->mName );
62 }
63
64 public static function provideNumberOfRows() {
65 return [
66 [ 0 ],
67 [ 1 ],
68 [ 122 ],
69 ];
70 }
71
76 public function testCountWithVaryingValues( $numRows ) {
77 $object = $this->getUserArrayFromResult( $this->getMockResultWrapper(
78 $this->getRowWithUsername(),
79 $numRows
80 ) );
81 $this->assertEquals( $numRows, $object->count() );
82 }
83
87 public function testCurrentAfterConstruction() {
88 $username = 'addshore';
89 $userRow = $this->getRowWithUsername( $username );
90 $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $userRow ) );
91 $this->assertInstanceOf( User::class, $object->current() );
92 $this->assertEquals( $username, $object->current()->mName );
93 }
94
95 public function provideTestValid() {
96 return [
97 [ $this->getRowWithUsername(), true ],
98 [ false, false ],
99 ];
100 }
101
106 public function testValid( $input, $expected ) {
107 $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $input ) );
108 $this->assertEquals( $expected, $object->valid() );
109 }
110
111 // @todo unit test for key()
112 // @todo unit test for next()
113 // @todo unit test for rewind()
114}
they could even be mouse clicks or menu items whatever suits your program You should also get your if any
Definition COPYING.txt:326
testCurrentAfterConstruction()
UserArrayFromResult::current.
getMockResultWrapper( $row=null, $numRows=1)
testConstructionWithFalseRow()
UserArrayFromResult::__construct.
testValid( $input, $expected)
provideTestValid UserArrayFromResult::valid
testCountWithVaryingValues( $numRows)
provideNumberOfRows UserArrayFromResult::count
testConstructionWithRow()
UserArrayFromResult::__construct.
getRowWithUsername( $username='fooUser')
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses just before the function returns a value If you return true
Definition hooks.txt:2006
this hook is for auditing only or null if authentication failed before getting that far $username
Definition hooks.txt:785
processing should stop and the error should be shown to the user * false
Definition hooks.txt:187
if(is_array($mode)) switch( $mode) $input