wiki.techinc.nl/tests/phpunit/unit/includes/Rest/BasicAccess/CompoundAuthorizerTest.php
Tim Starling 5e30a927bc tests: Make some PHPUnit data providers static
Just methods where adding "static" to the declaration was enough, I
didn't do anything with providers that used $this.

Initially by search and replace. There were many mistakes which I
found mostly by running the PHPStorm inspection which searches for
$this usage in a static method. Later I used the PHPStorm "make static"
action which avoids the more obvious mistakes.

Bug: T332865
Change-Id: I47ed6692945607dfa5c139d42edbd934fa4f3a36
2023-03-24 02:53:57 +00:00

52 lines
1.4 KiB
PHP

<?php
namespace MediaWiki\Tests\Rest\BasicAccess;
use MediaWiki\Rest\BasicAccess\BasicAuthorizerInterface;
use MediaWiki\Rest\BasicAccess\CompoundAuthorizer;
use MediaWiki\Rest\BasicAccess\StaticBasicAuthorizer;
use MediaWiki\Rest\Handler;
use MediaWiki\Rest\RequestInterface;
/**
* @covers \MediaWiki\Rest\BasicAccess\CompoundAuthorizer
*/
class CompoundAuthorizerTest extends \MediaWikiUnitTestCase {
public static function provideAuthorize() {
yield 'No authorizers' => [
[], null, null
];
yield 'All success' => [
[ new StaticBasicAuthorizer( null ), new StaticBasicAuthorizer( null ) ],
null, null
];
yield 'First failed returned' => [
[ new StaticBasicAuthorizer( 'first' ), new StaticBasicAuthorizer( 'second' ) ],
null, 'first'
];
yield 'Added failed' => [
[], new StaticBasicAuthorizer( 'added' ), 'added'
];
}
/**
* @dataProvider provideAuthorize
* @param array $authorizers
* @param BasicAuthorizerInterface|null $addedAuthorizer
* @param string|null $result
*/
public function testAuthorize(
array $authorizers,
?BasicAuthorizerInterface $addedAuthorizer,
?string $result
) {
$authorizer = new CompoundAuthorizer( $authorizers );
if ( $addedAuthorizer ) {
$authorizer->addAuthorizer( $addedAuthorizer );
}
$this->assertSame( $result, $authorizer->authorize(
$this->createNoOpMock( RequestInterface::class ),
$this->createNoOpMock( Handler::class )
) );
}
}