test_helpers-1.0.0-alpha6/tests/src/Unit/Stub/ConfigurableLanguageManagerStubTest.php

tests/src/Unit/Stub/ConfigurableLanguageManagerStubTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\test_helpers\Unit\Stub;

use Drupal\Core\Language\LanguageManager;
use Drupal\Tests\UnitTestCase;
use Drupal\node\Entity\Node;
use Drupal\test_helpers\Stub\ConfigurableLanguageManagerStub;
use Drupal\test_helpers\TestHelpers;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversMethod;
use PHPUnit\Framework\Attributes\Group;

/**
 * Tests ConfigurableLanguageManagerStub class.
 */
#[CoversClass(ConfigurableLanguageManagerStub::class)]
#[Group('test_helpers')]
#[CoversMethod(ConfigurableLanguageManagerStub::class, '__construct')]
#[CoversMethod(ConfigurableLanguageManagerStub::class, 'stubAddLanguage')]
class ConfigurableLanguageManagerStubTest extends UnitTestCase {

  /**
   * Tests the ConfigurableLanguageManagerStub methods.
   */
  public function testStub() {
    /** @var \Drupal\test_helpers\Stub\ConfigurableLanguageManagerStub */
    $configurableLanguageManagerStub = TestHelpers::service('language_manager');

    $this->assertInstanceOf(ConfigurableLanguageManagerStub::class, $configurableLanguageManagerStub);

    $languages = $configurableLanguageManagerStub->getLanguages();
    $this->assertCount(1, $languages);
    $this->assertEquals(LanguageManager::getStandardLanguageList()['en'][0], $languages['en']->getName());

    $configurableLanguageManagerStub->stubAddLanguage('fr');
    $languages = $configurableLanguageManagerStub->getLanguages();
    $this->assertCount(2, $languages);
    $this->assertEquals(LanguageManager::getStandardLanguageList()['en'][0], $languages['en']->getName());
    $this->assertEquals(LanguageManager::getStandardLanguageList()['fr'][0], $languages['fr']->getName());

    $configurableLanguageManagerStub->stubAddLanguage('de-xx', 'DE custom language');
    $languages = $configurableLanguageManagerStub->getLanguages();
    $this->assertCount(3, $languages);
    $this->assertEquals('DE custom language', $languages['de-xx']->getName());

  }

  /**
   * Tests the ConfigurableLanguageManagerStub methods.
   */
  public function testStubWithSwitchingDefaultLanguage() {
    /** @var \Drupal\test_helpers\Stub\ConfigurableLanguageManagerStub */
    $stub = TestHelpers::service('language_manager');
    $stub->stubAddLanguage('fr');

    $node = TestHelpers::createEntity(
    Node::class,
    [
      'title' => 'default',
      'status' => 1,
    ],
    [
      'fr' => [
        'title' => 'fr',
        'status' => 0,
      ],
    ]
    );
    $node->save();

    TestHelpers::service('language.default')->stubSetByCode('fr');
    $node2 = TestHelpers::service('entity_type.manager')->getStorage('node')->load(1);
    $this->assertEquals('fr', $node2->label());
  }

}

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

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