config_override-8.x-1.x-dev/tests/Unit/EnvironmentConfigOverrideTest.php

tests/Unit/EnvironmentConfigOverrideTest.php
<?php

namespace Drupal\config_override\Tests\Unit;

use Drupal\config_override\EnvironmentConfigOverride;
use PHPUnit\Framework\TestCase;

/**
 * @coversDefaultClass \Drupal\config_override\EnvironmentConfigOverride
 * @group config_override
 */
class EnvironmentConfigOverrideTest extends TestCase {

  /**
   * Test an empty override.
   */
  public function testEmptyOverride() {
    $sut = new EnvironmentConfigOverride([]);

    $this->assertEquals([], $sut->loadOverrides([]));
  }

  /**
   * Tests an override with a different config.
   */
  public function testStaticOverridesOtherNames() {
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key' => 'value',
      ],
    ]);
    $this->assertEquals([], $sut->loadOverrides(['other_example']));
  }

  /**
   * Tests an override for a given config.
   */
  public function testStaticOverridesOverriddenNames() {
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key' => 'value',
      ],
    ]);
    $this->assertEquals(['example' => ['key' => 'value']],
      $sut->loadOverrides(['example']));
  }

  /**
   * Tests an override with multiple configs.
   */
  public function testStaticOverridesWithOverriddenNamesAndOtherNames() {
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key' => 'value',
      ],
    ]);
    $this->assertEquals(['example' => ['key' => 'value']],
      $sut->loadOverrides(['example', 'other_example']));
  }

  /**
   * Tests overrides with dynamic environment variables.
   */
  public function testStaticOverridesOverriddenNamesWithDynamicEnvironment() {
    putenv('CONFIG___EXAMPLE___KEY=value_overridden');
    putenv('CONFIG___EXAMPLE_3___KEY3=value3_overridden');
    putenv('CONFIG___EXAMPLE__4___KEY4=value4_overridden');
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key' => 'value',
        'key2' => 'value2',
      ],
      'example_3' => [
        'key3' => 'value3',
      ],
      'example.4' => [
        'key4' => 'value4',
      ],
    ]);
    $this->assertEquals([
      'example' => ['key' => 'value_overridden', 'key2' => 'value2'],
      'example_3' => [
        'key3' => 'value3_overridden',
      ],
      'example.4' => [
        'key4' => 'value4_overridden',
      ],
    ],
    $sut->loadOverrides(['example', 'example_3', 'example.4']));
  }

  /**
   * Tests an override with a complex return value.
   */
  public function testStaticOverridesWithArray() {
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key6' => '{"hey":"giraffe"}',
      ],
    ]);
    $this->assertEquals(['example' => ['key6' => ['hey' => 'giraffe']]], $sut->loadOverrides(['example']));
  }

  /**
   * Tests an override with an environment variable.
   */
  public function testStaticOverridesWithArrayEnvironment() {
    putenv('CONFIG___EXAMPLE___KEY={"hey":"elephant"}');
    $sut = new EnvironmentConfigOverride([
      'example' => [
        'key' => '{"hey":"giraffe"}',
      ],
    ]);
    $this->assertEquals(['example' => ['key' => ['hey' => 'elephant']]], $sut->loadOverrides(['example']));
  }

}

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

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