You are here

class RegisterSerializationClassesCompilerPassTest in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/serialization/tests/src/Unit/CompilerPass/RegisterSerializationClassesCompilerPassTest.php \Drupal\Tests\serialization\Unit\CompilerPass\RegisterSerializationClassesCompilerPassTest
  2. 10 core/modules/serialization/tests/src/Unit/CompilerPass/RegisterSerializationClassesCompilerPassTest.php \Drupal\Tests\serialization\Unit\CompilerPass\RegisterSerializationClassesCompilerPassTest

@coversDefaultClass \Drupal\serialization\RegisterSerializationClassesCompilerPass @group serialization

Hierarchy

Expanded class hierarchy of RegisterSerializationClassesCompilerPassTest

File

core/modules/serialization/tests/src/Unit/CompilerPass/RegisterSerializationClassesCompilerPassTest.php, line 15

Namespace

Drupal\Tests\serialization\Unit\CompilerPass
View source
class RegisterSerializationClassesCompilerPassTest extends UnitTestCase {

  /**
   * @covers ::process
   */
  public function testEncoders() {
    $container = new ContainerBuilder();
    $container
      ->setDefinition('serializer', new Definition(Serializer::class, [
      [],
      [],
    ]));
    $encoder_1_definition = new Definition('TestClass');
    $encoder_1_definition
      ->addTag('encoder', [
      'format' => 'xml',
    ]);
    $encoder_1_definition
      ->addTag('_provider', [
      'provider' => 'test_provider_a',
    ]);
    $container
      ->setDefinition('encoder_1', $encoder_1_definition);
    $encoder_2_definition = new Definition('TestClass');
    $encoder_2_definition
      ->addTag('encoder', [
      'format' => 'json',
    ]);
    $encoder_2_definition
      ->addTag('_provider', [
      'provider' => 'test_provider_a',
    ]);
    $container
      ->setDefinition('encoder_2', $encoder_2_definition);
    $encoder_3_definition = new Definition('TestClass');
    $encoder_3_definition
      ->addTag('encoder', [
      'format' => 'hal_json',
    ]);
    $encoder_3_definition
      ->addTag('_provider', [
      'provider' => 'test_provider_b',
    ]);
    $container
      ->setDefinition('encoder_3', $encoder_3_definition);
    $normalizer_1_definition = new Definition('TestClass');
    $normalizer_1_definition
      ->addTag('normalizer');
    $container
      ->setDefinition('normalizer_1', $normalizer_1_definition);
    $compiler_pass = new RegisterSerializationClassesCompilerPass();
    $compiler_pass
      ->process($container);

    // Check registration of formats and providers.
    $this
      ->assertEquals([
      'xml',
      'json',
      'hal_json',
    ], $container
      ->getParameter('serializer.formats'));
    $this
      ->assertEquals([
      'xml' => 'test_provider_a',
      'json' => 'test_provider_a',
      'hal_json' => 'test_provider_b',
    ], $container
      ->getParameter('serializer.format_providers'));

    // Check all encoder and normalizer service definitions are marked private.
    $this
      ->assertFalse($encoder_1_definition
      ->isPublic());
    $this
      ->assertFalse($encoder_2_definition
      ->isPublic());
    $this
      ->assertFalse($encoder_3_definition
      ->isPublic());
    $this
      ->assertFalse($normalizer_1_definition
      ->isPublic());
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
RegisterSerializationClassesCompilerPassTest::testEncoders public function @covers ::process
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 340