contentserialize-8.x-1.x-dev/modules/bulkentity/tests/src/Kernel/EntityLoaderTest.php

modules/bulkentity/tests/src/Kernel/EntityLoaderTest.php
<?php

namespace Drupal\Tests\bulkentity\Kernel;

use Drupal\bulkentity\EntityLoader;
use Drupal\entity_test\Entity\EntityTest;
use Drupal\entity_test\Entity\EntityTestMul;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;

/**
 * Provides integration tests for the bulk entity loader.
 *
 * @group bulkentity
 */
class EntityLoaderTest extends EntityKernelTestBase {

  public static $modules = ['bulkentity'];

  /**
   * An array of test entity IDs.
   *
   * @var array
   */
  protected $ids;

  /**
   * {@inheritdoc}
   */
  public function setUp() {
    parent::setUp();

    // Create an entity with the right entity type that should never be
    // returned.
    entity_test_create_bundle('entity_test_never_return');
    EntityTest::create([
      'type' => 'entity_test_never_return',
      'name' => 'Unreturned test entity',
    ])->save();
    // Create an entity of a different entity type that should never be
    // returned.
    $this->installEntitySchema('entity_test_mul');
    EntityTestMul::create()->save();

    // Create the target entities that should be returned.
    for ($i = 1; $i <= 6; $i++) {
      $values = [
        'name' => "Entity $i",
        'type' => 'entity_test',
      ];
      $entity = EntityTest::create($values);
      $entity->save();
      $this->ids[] = $entity->id();
    }
  }

  /**
   * Test that the correct entities are loaded by ID.
   */
  public function testLoadByIds() {
    $loader = new EntityLoader(\Drupal::entityTypeManager());
    $i = 1;
    foreach ($loader->byIds(2, $this->ids, 'entity_test') as $id => $entity) {
      $this->assertEquals("Entity $i", $entity->label());
      $i++;
    };
  }

  /**
   * Test that the correct entities are loaded by query.
   */
  public function testByQuery() {
    $query = \Drupal::entityQuery('entity_test')
      ->condition('type', 'entity_test')
      ->sort('name');
    $loader = new EntityLoader(\Drupal::entityTypeManager());
    $i = 1;
    foreach ($loader->byQuery(2, $query) as $entity) {
      $this->assertEquals("Entity $i", $entity->label());
      $i++;
    }
  }

  /**
   * Test that the correct entities are loaded by entity type and bundle.
   */
  public function testByEntityType() {
    $loader = new EntityLoader(\Drupal::entityTypeManager());
    $i = 1;
    foreach ($loader->byEntityType(2, 'entity_test', ['entity_test']) as $entity) {
      $this->assertEquals("Entity $i", $entity->label());
      $i++;
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc