search_api-8.x-1.15/tests/src/Functional/FieldIntegrationTest.php
tests/src/Functional/FieldIntegrationTest.php
<?php namespace Drupal\Tests\search_api\Functional; use Drupal\Core\Serialization\Yaml; use Drupal\search_api\Entity\Index; /** * Tests field validation on index creation. * * @group search_api */ class FieldIntegrationTest extends SearchApiBrowserTestBase { /** * {@inheritdoc} */ public static $modules = [ 'entity_test', 'search_api_test_db', ]; /** * Tests that all fields are added to the index, as expected. */ public function testFields() { // Load the index defined in the config. $index = Index::load('database_search_index'); $fields = $index->getFields(); // Load and parse the same configuration file. $yaml_file = __DIR__ . '/../../search_api_test_db/config/install/search_api.index.database_search_index.yml'; $index_configuration = Yaml::decode(file_get_contents($yaml_file)); $field_settings = $index_configuration['field_settings']; // Check that all the fields defined in the config file made it into the // index. $this->assertEquals(array_keys($fields), array_keys($field_settings)); // Make sure that the fields have the same type. foreach ($field_settings as $setting) { $this->assertArrayHasKey($setting['property_path'], $fields); $field = $fields[$setting['property_path']]; $this->assertEquals($setting['label'], $field->getLabel()); $this->assertEquals($setting['datasource_id'], $field->getDatasourceId()); $this->assertEquals($setting['type'], $field->getType()); } } }