search_api-8.x-1.15/tests/src/Kernel/ConfigEntity/DefaultConfigEntityInstallationTest.php
tests/src/Kernel/ConfigEntity/DefaultConfigEntityInstallationTest.php
<?php namespace Drupal\Tests\search_api\Kernel\ConfigEntity; use Drupal\Core\Serialization\Yaml; use Drupal\KernelTests\KernelTestBase; use Drupal\search_api\Entity\Index; use Drupal\search_api\Entity\Server; use Drupal\search_api_test\PluginTestTrait; /** * Tests that installing config entities from an extension works correctly. * * @group search_api */ class DefaultConfigEntityInstallationTest extends KernelTestBase { use PluginTestTrait; /** * {@inheritdoc} */ public static $modules = [ 'entity_test', 'search_api', 'search_api_test', 'search_api_test_inconsistent_config', 'system', 'user', ]; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->installEntitySchema('entity_test_mulrev_changed'); $this->installEntitySchema('search_api_task'); $this->installConfig('search_api'); } /** * Tests that installing config entities from an extension works correctly. */ public function testExtensionInstallation() { $this->installConfig('search_api_test_inconsistent_config'); $index = Index::load('inconsistent_search_index'); $this->assertNotNull($index); $values = $index->toArray(); // Make sure the index was not processed at all upon saving. $this->assertTrue($index->status()); $this->assertArrayNotHasKey('rendered_item', $values['processor_settings']); $this->assertArrayHasKey('unknown_property', $values['field_settings']); $methods = $this->getCalledMethods('processor'); $this->assertNotContains('preIndexSave', $methods); } /** * Tests that creating new config entities directly works correctly. */ public function testNormalEntityCreation() { $dir = __DIR__ . '/../../../search_api_test_inconsistent_config/config/install/'; $yaml_file = $dir . 'search_api.server.inconsistent_search_server.yml'; $values = Yaml::decode(file_get_contents($yaml_file)); Server::create($values)->save(); $yaml_file = $dir . 'search_api.index.inconsistent_search_index.yml'; $values = Yaml::decode(file_get_contents($yaml_file)); Index::create($values)->save(); $index = Index::load('inconsistent_search_index'); $this->assertNotNull($index); $values = $index->toArray(); // Make sure the index was not processed at all upon saving. $this->assertFalse($index->status()); $this->assertArrayHasKey('rendered_item', $values['processor_settings']); $this->assertArrayNotHasKey('unknown_property', $values['field_settings']); $methods = $this->getCalledMethods('processor'); $this->assertContains('preIndexSave', $methods); } }