next_for_drupal_pantheon-1.0.x-dev/tests/src/Kernel/Entity/PantheonNextTest.php

tests/src/Kernel/Entity/PantheonNextTest.php
<?php

namespace Drupal\Tests\next_for_drupal_pantheon\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\next_for_drupal_pantheon\PantheonNextInstallerInterface;
use Drupal\Tests\node\Traits\ContentTypeCreationTrait;

/**
 * Tests the next_for_drupal_pantheon entity.
 *
 * @coversDefaultClass \Drupal\next_for_drupal_pantheon\Entity\PantheonNext
 *
 * @group next_for_drupal_pantheon
 */
class PantheonNextTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'filter',
    'next',
    'image',
    'field',
    'file',
    'consumers',
    'next_for_drupal_pantheon',
    'node',
    'simple_oauth',
    'serialization',
    'subrequests',
    'system',
    'text',
    'token',
    'pathauto',
    'path_alias',
    'user',
  ];

  /**
   * The pantheon next installer.
   *
   * @var \Drupal\next_for_drupal_pantheon\PantheonNextInstallerInterface
   */
  protected PantheonNextInstallerInterface $pantheonNextInstaller;

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

    $this->installEntitySchema('node');
    $this->installEntitySchema('user');
    $this->installEntitySchema('consumer');
    $this->installEntitySchema('next_for_drupal_pantheon');
    $this->installEntitySchema('pathauto_pattern');
    $this->installConfig([
      'field',
      'file',
      'filter',
      'image',
      'node',
      'system'
    ]);
    $this->installSchema('system', ['sequences']);
    $this->installSchema('node', ['node_access']);

    $this->pantheonNextInstaller = $this->container->get('next_for_drupal_pantheon.installer');
  }

  /**
   * Tests referenced next_site and consumer deletion.
   */
  public function testCascadeDelete() {
    // Running the installer will create a next_site and consumer.
    $this->pantheonNextInstaller->run();

    /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
    $entity_type_manager = $this->container->get('entity_type.manager');
    $next_for_drupal_pantheon_entities = $entity_type_manager->getStorage('next_for_drupal_pantheon')->loadMultiple();

    $this->assertCount(1, $next_for_drupal_pantheon_entities);
    $this->assertCount(1, $entity_type_manager->getStorage('next_site')->loadMultiple());
    $this->assertCount(1, $entity_type_manager->getStorage('consumer')->loadMultiple());

    $next_for_drupal_pantheon = reset($next_for_drupal_pantheon_entities);
    $next_for_drupal_pantheon->delete();

    $this->assertCount(0, $entity_type_manager->getStorage('next_for_drupal_pantheon')->loadMultiple());
    $this->assertCount(0, $entity_type_manager->getStorage('next_site')->loadMultiple());
    $this->assertCount(0, $entity_type_manager->getStorage('consumer')->loadMultiple());
  }

}

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

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