function PrepareExecutionMetadataStateTest::testPreparingUntil
Tests partial state setup until an expression is reached in the tree.
File
-
tests/
src/ Unit/ Integration/ Engine/ PrepareExecutionMetadataStateTest.php, line 38
Class
- PrepareExecutionMetadataStateTest
- Tests that the setup of the execution metadata state for an expression works.
Namespace
Drupal\Tests\rules\Unit\Integration\EngineCode
public function testPreparingUntil() {
// Setup a rule with 2 actions.
$rule = $this->rulesExpressionManager
->createRule();
$rule->addAction('rules_variable_add', ContextConfig::create()->setValue('type', 'string')
->setValue('value', '')
->provideAs('variable_added', 'result1'));
$second_action = $this->rulesExpressionManager
->createAction('rules_variable_add')
->setConfiguration(ContextConfig::create()->setValue('type', 'string')
->setValue('value', '')
->provideAs('variable_added', 'result2')
->toArray());
$rule->addExpressionObject($second_action);
$state = ExecutionMetadataState::create();
// Preparing the state until the second action means the variable of the
// first action is available, but the second is not yet.
$found = $rule->prepareExecutionMetadataState($state, $second_action);
$this->assertTrue($state->hasDataDefinition('result1'));
$this->assertFalse($state->hasDataDefinition('result2'));
$this->assertTrue($found);
}