IntervalItemTest.php in Interval Field 8
File
tests/src/Kernel/IntervalItemTest.php
View source
<?php
namespace Drupal\Tests\interval\Kernel;
use Drupal\entity_test\Entity\EntityTest;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\Tests\field\Kernel\FieldKernelTestBase;
class IntervalItemTest extends FieldKernelTestBase {
protected $fieldStorage;
protected $field;
public static $modules = [
'interval',
];
protected function setUp() {
parent::setUp();
$this->fieldStorage = FieldStorageConfig::create([
'field_name' => 'field_interval',
'type' => 'interval',
'entity_type' => 'entity_test',
]);
$this->fieldStorage
->save();
$this->field = FieldConfig::create([
'field_storage' => $this->fieldStorage,
'bundle' => 'entity_test',
'settings' => [
'default_value' => 'blank',
],
]);
$this->field
->save();
}
public function testValueChange() {
$entity = EntityTest::create();
$value = [
'interval' => 30,
'period' => 'minute',
];
$entity->field_interval = $value;
$entity->name->value = $this
->randomMachineName();
$this
->entityValidateAndSave($entity);
$this
->assertEqual($entity->field_interval->interval, $value['interval']);
$this
->assertEqual($entity->field_interval->period, $value['period']);
$this
->assertEqual($entity
->get('field_interval')
->first()
->buildPHPString(), '30 minutes');
$new_value = [
'interval' => 2,
'period' => 'hour',
];
$entity->field_interval = $new_value;
$this
->assertEqual($entity->field_interval->interval, $new_value['interval']);
$this
->assertEqual($entity->field_interval->period, $new_value['period']);
$this
->assertEqual($entity
->get('field_interval')
->first()
->buildPHPString(), '2 hours');
}
}