public function RequiredStatesTest::testChangeRequiredStateAPI in Drupal 9
Same name and namespace in other branches
- 8 core/modules/workflows/tests/src/Kernel/RequiredStatesTest.php \Drupal\Tests\workflows\Kernel\RequiredStatesTest::testChangeRequiredStateAPI()
- 10 core/modules/workflows/tests/src/Kernel/RequiredStatesTest.php \Drupal\Tests\workflows\Kernel\RequiredStatesTest::testChangeRequiredStateAPI()
Ensures that initialized configuration can be changed.
File
- core/
modules/ workflows/ tests/ src/ Kernel/ RequiredStatesTest.php, line 77
Class
- RequiredStatesTest
- Tests Workflow type's required states and configuration initialization.
Namespace
Drupal\Tests\workflows\KernelCode
public function testChangeRequiredStateAPI() {
$workflow = new Workflow([
'id' => 'test',
'type' => 'workflow_type_required_state_test',
], 'workflow');
$workflow
->save();
// Ensure states added by default configuration can be changed.
$this
->assertEquals('Fresh', $workflow
->getTypePlugin()
->getState('fresh')
->label());
$workflow
->getTypePlugin()
->setStateLabel('fresh', 'Fresher');
$workflow
->save();
$this
->assertEquals('Fresher', $workflow
->getTypePlugin()
->getState('fresh')
->label());
// Ensure transitions can be altered.
$workflow
->getTypePlugin()
->addState('cooked', 'Cooked')
->setTransitionFromStates('rot', [
'fresh',
'cooked',
]);
$workflow
->save();
$this
->assertTrue($workflow
->getTypePlugin()
->hasTransitionFromStateToState('fresh', 'rotten'));
$this
->assertTrue($workflow
->getTypePlugin()
->hasTransitionFromStateToState('cooked', 'rotten'));
$workflow
->getTypePlugin()
->setTransitionFromStates('rot', [
'cooked',
]);
$workflow
->save();
$this
->assertFalse($workflow
->getTypePlugin()
->hasTransitionFromStateToState('fresh', 'rotten'));
$this
->assertTrue($workflow
->getTypePlugin()
->hasTransitionFromStateToState('cooked', 'rotten'));
// Ensure the default configuration does not cause ordering issues.
$workflow
->getTypePlugin()
->addTransition('cook', 'Cook', [
'fresh',
], 'cooked');
$workflow
->save();
$this
->assertSame([
'cooked',
'fresh',
'rotten',
], array_keys($workflow
->getTypePlugin()
->getConfiguration()['states']));
$this
->assertSame([
'cook',
'rot',
], array_keys($workflow
->getTypePlugin()
->getConfiguration()['transitions']));
// Ensure that transitions can be deleted.
$workflow
->getTypePlugin()
->deleteTransition('rot');
$workflow
->save();
$this
->assertFalse($workflow
->getTypePlugin()
->hasTransition('rot'));
}