randomMachineName(); $provider = new TestAuthenticationProvider($provider_id); $providers[$priority][$provider_id] = $provider; $global[$provider_id] = rand(0, 1) > 0.5; $authentication_collector->addProvider($provider, $provider_id, $priority, $global[$provider_id]); } // Sort the $providers array by priority (highest number is lowest priority) // and compare with AuthenticationCollector::getSortedProviders(). krsort($providers); // Merge nested providers from $providers into $sorted_providers. $sorted_providers = []; foreach ($providers as $providers_priority) { $sorted_providers = array_merge($sorted_providers, $providers_priority); } $this->assertEquals($sorted_providers, $authentication_collector->getSortedProviders()); // Test AuthenticationCollector::getProvider() and // AuthenticationCollector::isGlobal(). foreach ($sorted_providers as $provider) { $this->assertEquals($provider, $authentication_collector->getProvider($provider->providerId)); $this->assertEquals($global[$provider->providerId], $authentication_collector->isGlobal($provider->providerId)); } } } /** * A simple provider for unit testing AuthenticationCollector. */ class TestAuthenticationProvider implements AuthenticationProviderInterface { /** * The provider id. * * @var string */ public $providerId; /** * Constructor. */ public function __construct($provider_id) { $this->providerId = $provider_id; } /** * {@inheritdoc} */ public function applies(Request $request) { return TRUE; } /** * {@inheritdoc} */ public function authenticate(Request $request) { return NULL; } }