wiki.techinc.nl/tests/phpunit/unit/includes/session/SessionProviderTestTrait.php
vladshapik c0a16a41d7 Create SessionProviderTestTrait to facilitate testing of an SessionProvider
Create new SessionProviderTestTrait and
SessionProviderTestTrait::initProvider method. Replace uses of
SessionProvider::init with new method in tests.

Bug: T283709
Change-Id: I2770188faf3e4f374f9df885ff4deff7189063fc
2021-05-26 20:45:05 +03:00

48 lines
1.3 KiB
PHP

<?php
namespace MediaWiki\Session;
use Config;
use 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
* SessionProvider. This trait is intended to be used on
* subclasses of MediaWikiIntegrationTestCase or MediaWikiUnitTestCase.
*
* @stable to use
* @package MediaWiki\Session
*/
trait SessionProviderTestTrait {
/**
* Calls init() on an SessionProvider.
*
* @param SessionProvider $provider
* @param LoggerInterface|null $logger
* @param Config|null $config
* @param SessionManager|null $manager
* @param HookContainer|null $hookContainer
* @param UserNameUtils|null $userNameUtils
*/
private function initProvider(
SessionProvider $provider,
LoggerInterface $logger = null,
Config $config = null,
SessionManager $manager = null,
HookContainer $hookContainer = null,
UserNameUtils $userNameUtils = null
) {
$provider->init(
$logger ?? new NullLogger(),
$config ?? new HashConfig(),
$manager ?? $this->createNoOpMock( SessionManager::class ),
$hookContainer ?? $this->createHookContainer(),
$userNameUtils ?? $this->createNoOpMock( UserNameUtils::class )
);
}
}