aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/unit/includes/auth/AuthenticationProviderTestTrait.php
blob: 7605e02c914f9ec57812456f55233ee995fec1d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

namespace MediaWiki\Tests\Unit\Auth;

use MediaWiki\Auth\AbstractAuthenticationProvider;
use MediaWiki\Auth\AuthManager;
use MediaWiki\Config\Config;
use MediaWiki\Config\HashConfig;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\User\UserNameUtils;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;

/**
 * A trait providing utility function for testing subclasses of
 * AbstractAuthenticationProvider. This trait is intended to be used on
 * subclasses of MediaWikiIntegrationTestCase or MediaWikiUnitTestCase.
 *
 * @stable to use
 */

trait AuthenticationProviderTestTrait {

	/**
	 * Calls init() on an AuthenticationProvider.
	 *
	 * @param AbstractAuthenticationProvider $provider
	 * @param Config|null $config
	 * @param LoggerInterface|null $logger
	 * @param AuthManager|null $manager
	 * @param HookContainer|null $hookContainer
	 * @param UserNameUtils|null $userNameUtils
	 */
	private function initProvider(
		AbstractAuthenticationProvider $provider,
		?Config $config = null,
		?LoggerInterface $logger = null,
		?AuthManager $manager = null,
		?HookContainer $hookContainer = null,
		?UserNameUtils $userNameUtils = null
	) {
		$provider->init(
			$logger ?? new NullLogger(),
			$manager ?? $this->createNoOpMock( AuthManager::class ),
			$hookContainer ?? $this->createHookContainer(),
			$config ?? new HashConfig(),
			$userNameUtils ?? $this->createNoOpMock( UserNameUtils::class )
		);
	}
}