public function CivicrmFieldConfigTest::testSaveAndLoadFieldConfig in CiviCRM Entity 8.3
File
- tests/
src/ Kernel/ CivicrmFieldConfigTest.php, line 52
Class
- CivicrmFieldConfigTest
- Tests the storage.
Namespace
Drupal\Tests\civicrm_entity\KernelCode
public function testSaveAndLoadFieldConfig() {
// Create a field.
$field_name = mb_strtolower($this
->randomMachineName());
$field_storage = FieldStorageConfig::create([
'field_name' => $field_name,
'entity_type' => 'civicrm_event',
'type' => 'string',
]);
$field_storage
->save();
FieldConfig::create([
'field_storage' => $field_storage,
'bundle' => 'civicrm_event',
'label' => $this
->randomMachineName() . '_label',
])
->save();
$storage = $this->container
->get('entity_type.manager')
->getStorage('civicrm_event');
/** @var \Drupal\civicrm_entity\Entity\CivicrmEntity $entity */
$entity = $storage
->load(1);
$this
->assertInstanceOf(CivicrmEntity::class, $entity);
$this
->assertEquals($entity
->id(), 1);
$this
->assertTrue($entity
->get($field_name)
->isEmpty());
$entity
->get($field_name)
->setValue('Testing value');
$entity
->save();
/** @var \Drupal\civicrm_entity\CiviEntityStorage $civi_entity_storage */
$civi_entity_storage = $this->container
->get('entity_type.manager')
->getStorage('civicrm_event');
$database = $this->container
->get('database');
$table_mapping = $civi_entity_storage
->getTableMapping();
$db_schema = $database
->schema();
$this
->assertTrue($db_schema
->tableExists($table_mapping
->getDedicatedDataTableName($field_storage)));
$this
->assertEquals(1, $database
->select($table_mapping
->getDedicatedDataTableName($field_storage))
->countQuery()
->execute()
->fetchField());
$raw_values = $database
->select($table_mapping
->getDedicatedDataTableName($field_storage), 't')
->fields('t')
->execute()
->fetchAssoc();
$this
->assertEquals([
'bundle' => $entity
->bundle(),
'deleted' => '0',
'entity_id' => $entity
->id(),
'revision_id' => $entity
->id(),
'langcode' => Language::LANGCODE_NOT_SPECIFIED,
'delta' => '0',
"{$field_name}_value" => 'Testing value',
], $raw_values);
/** @var \Drupal\civicrm_entity\Entity\CivicrmEntity $entity */
$entity = $storage
->load($entity
->id());
$this
->assertEquals('Testing value', $entity
->get($field_name)->value);
$entity
->delete();
$this
->assertEquals(0, $database
->select($table_mapping
->getDedicatedDataTableName($field_storage))
->countQuery()
->execute()
->fetchField());
}