class ConfigMapperManagerTest
Same name in other branches
- 8.9.x core/modules/config_translation/tests/src/Unit/ConfigMapperManagerTest.php \Drupal\Tests\config_translation\Unit\ConfigMapperManagerTest
- 10 core/modules/config_translation/tests/src/Unit/ConfigMapperManagerTest.php \Drupal\Tests\config_translation\Unit\ConfigMapperManagerTest
- 11.x core/modules/config_translation/tests/src/Unit/ConfigMapperManagerTest.php \Drupal\Tests\config_translation\Unit\ConfigMapperManagerTest
Tests the functionality provided by configuration translation mapper manager.
@group config_translation
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait
- class \Drupal\Tests\config_translation\Unit\ConfigMapperManagerTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of ConfigMapperManagerTest
File
-
core/
modules/ config_translation/ tests/ src/ Unit/ ConfigMapperManagerTest.php, line 17
Namespace
Drupal\Tests\config_translation\UnitView source
class ConfigMapperManagerTest extends UnitTestCase {
/**
* The configuration mapper manager to test.
*
* @var \Drupal\config_translation\ConfigMapperManager
*/
protected $configMapperManager;
/**
* The typed configuration manager used for testing.
*
* @var \Drupal\Core\Config\TypedConfigManagerInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $typedConfigManager;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
$language = new Language([
'id' => 'en',
]);
$language_manager = $this->createMock('Drupal\\Core\\Language\\LanguageManagerInterface');
$language_manager->expects($this->once())
->method('getCurrentLanguage')
->with(LanguageInterface::TYPE_INTERFACE)
->willReturn($language);
$this->typedConfigManager = $this->getMockBuilder('Drupal\\Core\\Config\\TypedConfigManagerInterface')
->getMock();
$module_handler = $this->createMock('Drupal\\Core\\Extension\\ModuleHandlerInterface');
$theme_handler = $this->createMock('Drupal\\Core\\Extension\\ThemeHandlerInterface');
$this->configMapperManager = new ConfigMapperManager($this->createMock('Drupal\\Core\\Cache\\CacheBackendInterface'), $language_manager, $module_handler, $this->typedConfigManager, $theme_handler);
}
/**
* Tests ConfigMapperManager::hasTranslatable().
*
* @param \Drupal\Core\TypedData\TypedDataInterface $element
* The schema element to test.
* @param bool $expected
* The expected return value of ConfigMapperManager::hasTranslatable().
*
* @dataProvider providerTestHasTranslatable
*/
public function testHasTranslatable(TypedDataInterface $element, $expected) {
$this->typedConfigManager
->expects($this->once())
->method('get')
->with('test')
->willReturn($element);
$result = $this->configMapperManager
->hasTranslatable('test');
$this->assertSame($expected, $result);
}
/**
* Provides data for ConfigMapperManager::testHasTranslatable()
*
* @return array
* An array of arrays, where each inner array contains the schema element
* to test as the first key and the expected result of
* ConfigMapperManager::hasTranslatable() as the second key.
*/
public function providerTestHasTranslatable() {
return [
[
$this->getElement([]),
FALSE,
],
[
$this->getElement([
'aaa' => 'bbb',
]),
FALSE,
],
[
$this->getElement([
'translatable' => FALSE,
]),
FALSE,
],
[
$this->getElement([
'translatable' => TRUE,
]),
TRUE,
],
[
$this->getNestedElement([
$this->getElement([]),
]),
FALSE,
],
[
$this->getNestedElement([
$this->getElement([
'translatable' => TRUE,
]),
]),
TRUE,
],
[
$this->getNestedElement([
$this->getElement([
'aaa' => 'bbb',
]),
$this->getElement([
'ccc' => 'ddd',
]),
$this->getElement([
'eee' => 'fff',
]),
]),
FALSE,
],
[
$this->getNestedElement([
$this->getElement([
'aaa' => 'bbb',
]),
$this->getElement([
'ccc' => 'ddd',
]),
$this->getElement([
'translatable' => TRUE,
]),
]),
TRUE,
],
[
$this->getNestedElement([
$this->getElement([
'aaa' => 'bbb',
]),
$this->getNestedElement([
$this->getElement([
'ccc' => 'ddd',
]),
$this->getElement([
'eee' => 'fff',
]),
]),
$this->getNestedElement([
$this->getElement([
'ggg' => 'hhh',
]),
$this->getElement([
'iii' => 'jjj',
]),
]),
]),
FALSE,
],
[
$this->getNestedElement([
$this->getElement([
'aaa' => 'bbb',
]),
$this->getNestedElement([
$this->getElement([
'ccc' => 'ddd',
]),
$this->getElement([
'eee' => 'fff',
]),
]),
$this->getNestedElement([
$this->getElement([
'ggg' => 'hhh',
]),
$this->getElement([
'translatable' => TRUE,
]),
]),
]),
TRUE,
],
];
}
/**
* Returns a mocked schema element.
*
* @param array $definition
* The definition of the schema element.
*
* @return \Drupal\Core\Config\Schema\Element
* The mocked schema element.
*/
protected function getElement(array $definition) {
$data_definition = new DataDefinition($definition);
$element = $this->createMock('Drupal\\Core\\TypedData\\TypedDataInterface');
$element->expects($this->any())
->method('getDataDefinition')
->willReturn($data_definition);
return $element;
}
/**
* Returns a mocked nested schema element.
*
* @param array $elements
* An array of simple schema elements.
*
* @return \Drupal\Core\Config\Schema\Mapping
* A nested schema element, containing the passed-in elements.
*/
protected function getNestedElement(array $elements) {
// ConfigMapperManager::findTranslatable() checks for
// \Drupal\Core\TypedData\TraversableTypedDataInterface, but mocking that
// directly does not work, because we need to implement \IteratorAggregate
// in order for getIterator() to be called. Therefore we need to mock
// \Drupal\Core\Config\Schema\ArrayElement, but that is abstract, so we
// need to mock one of the subclasses of it.
$nested_element = $this->getMockBuilder('Drupal\\Core\\Config\\Schema\\Mapping')
->disableOriginalConstructor()
->getMock();
$nested_element->expects($this->once())
->method('getIterator')
->willReturn(new \ArrayIterator($elements));
return $nested_element;
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
ConfigMapperManagerTest::$configMapperManager | protected | property | The configuration mapper manager to test. | |||
ConfigMapperManagerTest::$typedConfigManager | protected | property | The typed configuration manager used for testing. | |||
ConfigMapperManagerTest::getElement | protected | function | Returns a mocked schema element. | |||
ConfigMapperManagerTest::getNestedElement | protected | function | Returns a mocked nested schema element. | |||
ConfigMapperManagerTest::providerTestHasTranslatable | public | function | Provides data for ConfigMapperManager::testHasTranslatable() | |||
ConfigMapperManagerTest::setUp | protected | function | Overrides UnitTestCase::setUp | |||
ConfigMapperManagerTest::testHasTranslatable | public | function | Tests ConfigMapperManager::hasTranslatable(). | |||
PhpUnitWarnings::$deprecationWarnings | private static | property | Deprecation warnings from PHPUnit to raise with @trigger_error(). | |||
PhpUnitWarnings::addWarning | public | function | Converts PHPUnit deprecation warnings to E_USER_DEPRECATED. | |||
UnitTestCase::$randomGenerator | protected | property | The random generator. | |||
UnitTestCase::$root | protected | property | The app root. | 1 | ||
UnitTestCase::assertArrayEquals | Deprecated | protected | function | Asserts if two arrays are equal by sorting them first. | ||
UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | |||
UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | |||
UnitTestCase::getConfigStorageStub | public | function | Returns a stub config storage that returns the supplied configuration. | |||
UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | |||
UnitTestCase::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | |||
UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | |||
UnitTestCase::randomMachineName | public | function | Generates a unique random string containing letters and numbers. | |||
UnitTestCase::setUpBeforeClass | public static | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.