AuthenticationProviderPassTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace Drupal\Tests\Core\DependencyInjection\Compiler;
  3. use Drupal\Core\DependencyInjection\Compiler\AuthenticationProviderPass;
  4. use Drupal\Core\DependencyInjection\ContainerBuilder;
  5. use Drupal\Tests\UnitTestCase;
  6. use Symfony\Component\DependencyInjection\Definition;
  7. use Symfony\Component\Serializer\Serializer;
  8. /**
  9. * @coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\AuthenticationProviderPass
  10. * @group DependencyInjection
  11. */
  12. class AuthenticationProviderPassTest extends UnitTestCase {
  13. /**
  14. * @covers ::process
  15. */
  16. public function testEncoders() {
  17. $container = new ContainerBuilder();
  18. $container->setDefinition('serializer', new Definition(Serializer::class, [[], []]));
  19. $definition = new Definition('TestClass');
  20. $definition->addTag('authentication_provider', ['provider_id' => 'bunny_auth']);
  21. $definition->addTag('_provider', ['provider' => 'test_provider_a']);
  22. $container->setDefinition('test_provider_a.authentication.bunny_auth', $definition);
  23. $definition = new Definition('TestClass');
  24. $definition->addTag('authentication_provider', ['provider_id' => 'llama_auth', 'priority' => 100]);
  25. $definition->addTag('_provider', ['provider' => 'test_provider_a']);
  26. $container->setDefinition('test_provider_a.authentication.llama_auth', $definition);
  27. $definition = new Definition('TestClass');
  28. $definition->addTag('authentication_provider', ['provider_id' => 'camel_auth', 'priority' => -100]);
  29. $definition->addTag('_provider', ['provider' => 'test_provider_b']);
  30. $container->setDefinition('test_provider_b.authentication.camel_auth', $definition);
  31. $compiler_pass = new AuthenticationProviderPass();
  32. $compiler_pass->process($container);
  33. $this->assertEquals(['bunny_auth' => 'test_provider_a', 'llama_auth' => 'test_provider_a', 'camel_auth' => 'test_provider_b'], $container->getParameter('authentication_providers'));
  34. }
  35. }