public function ConfigImportTest::testImport in Entity Construction Kit (ECK) 8
Tests the import of configuration.
File
- tests/
src/ Functional/ ConfigImportTest.php, line 48
Class
- ConfigImportTest
- Class ConfigImportTest.
Namespace
Drupal\Tests\eck\FunctionalCode
public function testImport() {
$defaultLanguage = \Drupal::languageManager()
->getDefaultLanguage();
$entityTypeConfigName = 'eck.eck_entity_type.test_entity';
$entityBundleConfigName = 'eck.eck_type.test_entity.bundle';
/** @var \Drupal\Core\Config\StorageInterface $storage */
$storage = $this->container
->get('config.storage');
/** @var \Drupal\Core\Config\StorageInterface $sync */
$sync = $this->container
->get('config.storage.sync');
// Verify the configuration to create does not exist yet.
$this
->assertFalse($storage
->exists($entityTypeConfigName), 'Entity config absent as expected.');
$this
->assertFalse($storage
->exists($entityBundleConfigName), 'Bundle config absent as expected');
// Create entity type config entity.
$entityTypeConfiguration = [
'id' => 'test_entity',
'label' => 'Test entity',
'langcode' => $defaultLanguage
->getId(),
'dependencies' => [],
'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
'status' => TRUE,
'uid' => TRUE,
'created' => TRUE,
'changed' => TRUE,
'title' => TRUE,
];
$sync
->write($entityTypeConfigName, $entityTypeConfiguration);
// Create entity bundle config entity.
$entityBundleConfiguration = [
'uuid' => '44bb277a-8358-4bc4-b439-577b0cb96820',
'langcode' => $defaultLanguage
->getId(),
'status' => TRUE,
'dependencies' => [],
'name' => 'Bundle',
'type' => 'bundle',
'description' => '',
];
$sync
->write($entityBundleConfigName, $entityBundleConfiguration);
// Import the configuration.
$this
->drupalGet(Url::fromRoute('config.sync'));
$this
->submitForm([], 'Import all');
// Verify the values appeared.
$config = $this
->config($entityTypeConfigName);
$this
->assertEquals($config
->getRawData(), $entityTypeConfiguration, 'Entity type configuration imported successfully.');
// Verify the values appeared.
$config = $this
->config($entityBundleConfigName);
$this
->assertEquals($config
->getRawData(), $entityBundleConfiguration, 'Entity bundle configuration imported successfully.');
// Verify the entity type has been added.
$this
->drupalGet(Url::fromRoute('eck.entity_type.list'));
$this
->assertSession()
->responseContains('Test entity');
// Test if a new entity can be created.
$edit = [
'title[0][value]' => $this
->randomMachineName(),
];
$route = 'eck.entity.add';
$routeArguments = [
'eck_entity_type' => 'test_entity',
'eck_entity_bundle' => 'bundle',
];
$this
->drupalGet(Url::fromRoute($route, $routeArguments));
$this
->submitForm($edit, 'Save');
$this
->assertSession()
->responseContains($edit['title[0][value]']);
}