SchemaCheckTraitTest.php

Same filename in other branches
  1. 8.9.x core/tests/Drupal/KernelTests/Core/Config/SchemaCheckTraitTest.php
  2. 10 core/tests/Drupal/KernelTests/Core/Config/SchemaCheckTraitTest.php
  3. 11.x core/tests/Drupal/KernelTests/Core/Config/SchemaCheckTraitTest.php

Namespace

Drupal\KernelTests\Core\Config

File

core/tests/Drupal/KernelTests/Core/Config/SchemaCheckTraitTest.php

View source
<?php

namespace Drupal\KernelTests\Core\Config;

use Drupal\Core\Config\Schema\SchemaCheckTrait;
use Drupal\KernelTests\KernelTestBase;

/**
 * Tests the functionality of SchemaCheckTrait.
 *
 * @group config
 */
class SchemaCheckTraitTest extends KernelTestBase {
    use SchemaCheckTrait;
    
    /**
     * The typed config manager.
     *
     * @var \Drupal\Core\Config\TypedConfigManagerInterface
     */
    protected $typedConfig;
    
    /**
     * Modules to enable.
     *
     * @var array
     */
    protected static $modules = [
        'config_test',
        'config_schema_test',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        $this->installConfig([
            'config_test',
            'config_schema_test',
        ]);
        $this->typedConfig = \Drupal::service('config.typed');
    }
    
    /**
     * Tests \Drupal\Core\Config\Schema\SchemaCheckTrait.
     */
    public function testTrait() {
        // Test a non existing schema.
        $ret = $this->checkConfigSchema($this->typedConfig, 'config_schema_test.noschema', $this->config('config_schema_test.noschema')
            ->get());
        $this->assertFalse($ret);
        // Test an existing schema with valid data.
        $config_data = $this->config('config_test.types')
            ->get();
        $ret = $this->checkConfigSchema($this->typedConfig, 'config_test.types', $config_data);
        $this->assertTrue($ret);
        // Add a new key, a new array and overwrite boolean with array to test the
        // error messages.
        $config_data = [
            'new_key' => 'new_value',
            'new_array' => [],
        ] + $config_data;
        $config_data['boolean'] = [];
        $ret = $this->checkConfigSchema($this->typedConfig, 'config_test.types', $config_data);
        $expected = [
            'config_test.types:new_key' => 'missing schema',
            'config_test.types:new_array' => 'missing schema',
            'config_test.types:boolean' => 'non-scalar value but not defined as an array (such as mapping or sequence)',
        ];
        $this->assertEquals($expected, $ret);
    }

}

Classes

Title Deprecated Summary
SchemaCheckTraitTest Tests the functionality of SchemaCheckTrait.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.