public function EntityConverterTest::testRouteParamWithBundleDefinition in Drupal 10
Same name and namespace in other branches
- 9 core/tests/Drupal/KernelTests/Core/ParamConverter/EntityConverterTest.php \Drupal\KernelTests\Core\ParamConverter\EntityConverterTest::testRouteParamWithBundleDefinition()
Tests an entity route parameter having 'bundle' definition property.
@covers ::convert
File
- core/tests/ Drupal/ KernelTests/ Core/ ParamConverter/ EntityConverterTest.php, line 49 
Class
- EntityConverterTest
- Tests the entity param converter.
Namespace
Drupal\KernelTests\Core\ParamConverterCode
public function testRouteParamWithBundleDefinition() : void {
  $converter = $this->container
    ->get('paramconverter.entity');
  $entity1 = EntityTest::create([
    'name' => $this
      ->randomString(),
    'type' => 'foo',
  ]);
  $entity1
    ->save();
  $entity2 = EntityTest::create([
    'name' => $this
      ->randomString(),
    'type' => 'bar',
  ]);
  $entity2
    ->save();
  $entity3 = EntityTest::create([
    'name' => $this
      ->randomString(),
    'type' => 'baz',
  ]);
  $entity3
    ->save();
  $definition = [
    'type' => 'entity:entity_test',
    'bundle' => [
      'foo',
      'bar',
    ],
  ];
  // An entity whose bundle is in the definition list is converted.
  $converted = $converter
    ->convert($entity1
    ->id(), $definition, 'qux', []);
  $this
    ->assertSame($entity1
    ->id(), $converted
    ->id());
  // An entity whose bundle is in the definition list is converted.
  $converted = $converter
    ->convert($entity2
    ->id(), $definition, 'qux', []);
  $this
    ->assertSame($entity2
    ->id(), $converted
    ->id());
  // An entity whose bundle is missed from definition is not converted.
  $converted = $converter
    ->convert($entity3
    ->id(), $definition, 'qux', []);
  $this
    ->assertNull($converted);
  // A non-existing entity returns NULL.
  $converted = $converter
    ->convert('some-non-existing-entity-id', $definition, 'qux', []);
  $this
    ->assertNull($converted);
  $definition = [
    'type' => 'entity:entity_test',
  ];
  // Check that all entities are returned when 'bundle' is not defined.
  $converted = $converter
    ->convert($entity1
    ->id(), $definition, 'qux', []);
  $this
    ->assertSame($entity1
    ->id(), $converted
    ->id());
  $converted = $converter
    ->convert($entity2
    ->id(), $definition, 'qux', []);
  $this
    ->assertSame($entity2
    ->id(), $converted
    ->id());
  $converted = $converter
    ->convert($entity3
    ->id(), $definition, 'qux', []);
  $this
    ->assertSame($entity3
    ->id(), $converted
    ->id());
  $converted = $converter
    ->convert('some-non-existing-entity-id', $definition, 'qux', []);
  $this
    ->assertNull($converted);
}