entity_legal-4.0.x-dev/tests/src/Functional/UpdateTest.php

tests/src/Functional/UpdateTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\entity_legal\Functional;

use Drupal\FunctionalTests\Update\UpdatePathTestBase;

/**
 * Tests update scripts.
 *
 * @group entity_legal
 */
class UpdateTest extends UpdatePathTestBase {

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected function setDatabaseDumpFiles(): void {
    $this->databaseDumpFiles = [
      DRUPAL_ROOT . '/core/modules/system/tests/fixtures/update/drupal-10.3.0.bare.standard.php.gz',
      __DIR__ . '/../../fixtures/update/install_entity_legal.php',
      __DIR__ . '/../../fixtures/update/legal_documents.php',
      __DIR__ . '/../../fixtures/update/update_9002.php',
    ];
  }

  /**
   * Tests entity_legal_update_9002() & entity_legal_post_update_9002().
   *
   * @see \entity_legal_update_9002()
   * @see \entity_legal_post_update_9002()
   */
  public function testUpdate9002(): void {
    $db = \Drupal::database();
    $schema = $db->schema();
    $configFactory = \Drupal::configFactory();
    $trail = 'display.default.display_options';

    $this->assertTrue($schema->fieldExists('entity_legal_document_version', 'name'));
    $id = $db->query("SELECT name FROM {entity_legal_document_version}")->fetchField();
    $this->assertSame('legal_notice_1683794048', $id);

    $this->assertTrue($schema->fieldExists('entity_legal_document_version_data', 'name'));
    $id = $db->query("SELECT name FROM {entity_legal_document_version_data}")->fetchField();
    $this->assertSame('legal_notice_1683794048', $id);

    $id = $db->query("SELECT entity_id FROM {entity_legal_document_version__3054549535}")->fetchField();
    $this->assertSame('legal_notice_1683794048', $id);

    $this->assertTrue($schema->fieldExists('entity_legal_document_acceptance', 'document_version_name'));
    $ids = $db->query("SELECT document_version_name FROM {entity_legal_document_acceptance}")->fetchCol();
    $this->assertSame(['legal_notice_1683794048', 'legal_notice_1683794048'], $ids);

    $config = $configFactory->get('views.view.legal_document_acceptances');
    $this->assertSame('document_version_name', $config->get("$trail.fields.document_version_name.field"));
    $this->assertSame('document_version_name', $config->get("$trail.fields.document_version_name.entity_field"));
    $this->assertSame('document_version_name', $config->get("$trail.relationships.document_version_name.field"));
    $this->assertSame('document_version_name', $config->get("$trail.relationships.document_version_name.entity_field"));

    $this->runUpdates();

    $this->assertFalse($schema->fieldExists('entity_legal_document_version', 'name'));
    $this->assertTrue($schema->fieldExists('entity_legal_document_version', 'vid'));
    $id = $db->query("SELECT vid FROM {entity_legal_document_version}")->fetchField();
    $this->assertEquals(1683794048, $id);

    $this->assertFalse($schema->fieldExists('entity_legal_document_version_data', 'name'));
    $this->assertTrue($schema->fieldExists('entity_legal_document_version_data', 'vid'));
    $id = $db->query("SELECT vid FROM {entity_legal_document_version_data}")->fetchField();
    $this->assertEquals(1683794048, $id);

    $id = $db->query("SELECT entity_id FROM {entity_legal_document_version__3054549535}")->fetchField();
    $this->assertEquals(1683794048, $id);

    $this->assertFalse($schema->fieldExists('entity_legal_document_acceptance', 'document_version_name'));
    $this->assertTrue($schema->fieldExists('entity_legal_document_acceptance', 'vid'));
    $ids = $db->query("SELECT vid FROM {entity_legal_document_acceptance}")->fetchCol();
    $this->assertEquals([1683794048, 1683794048], $ids);

    $config = $configFactory->get('views.view.legal_document_acceptances');
    $this->assertSame('vid', $config->get("$trail.fields.document_version_name.field"));
    $this->assertSame('vid', $config->get("$trail.fields.document_version_name.entity_field"));
    $this->assertSame('vid', $config->get("$trail.relationships.document_version_name.field"));
    $this->assertSame('vid', $config->get("$trail.relationships.document_version_name.entity_field"));
  }

}

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

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