function RuleExpressionTest::testDeletingExpressions
Tests that removing expressions by indices works.
File
-
tests/
src/ Unit/ RuleExpressionTest.php, line 227
Class
- RuleExpressionTest
- @coversDefaultClass \Drupal\rules\Plugin\RulesExpression\RuleExpression @group Rules
Namespace
Drupal\Tests\rules\UnitCode
public function testDeletingExpressions() {
// Create a rule with 2 conditions and 2 actions.
$this->rule
->addExpressionObject($this->trueConditionExpression
->reveal());
$this->rule
->addExpressionObject($this->falseConditionExpression
->reveal());
$this->rule
->addExpressionObject($this->testActionExpression
->reveal());
$second_action = $this->prophesize(ActionExpression::class);
$second_action->getUuid()
->willReturn('action_uuid2');
$this->rule
->addExpressionObject($second_action->reveal());
$this->trueConditionExpression
->getWeight()
->willReturn(0);
$this->falseConditionExpression
->getWeight()
->willReturn(0);
$this->testActionExpression
->getWeight()
->willReturn(0);
$second_action->getWeight()
->willReturn(0);
// Delete the first action.
$uuid = $this->testActionExpression
->reveal()
->getUuid();
$this->rule
->deleteExpression($uuid);
$this->assertCount(2, $this->rule
->getConditions()
->getIterator());
$this->assertCount(1, $this->rule
->getActions()
->getIterator());
// Delete the second condition.
$uuid = $this->falseConditionExpression
->reveal()
->getUuid();
$this->rule
->deleteExpression($uuid);
$this->assertCount(1, $this->rule
->getConditions()
->getIterator());
$this->assertCount(1, $this->rule
->getActions()
->getIterator());
// Delete the remaining action.
$uuid = $second_action->reveal()
->getUuid();
$this->rule
->deleteExpression($uuid);
$this->assertCount(1, $this->rule
->getConditions()
->getIterator());
$this->assertCount(0, $this->rule
->getActions()
->getIterator());
// Delete the remaining condition, rule should be empty now.
$uuid = $this->trueConditionExpression
->reveal()
->getUuid();
$this->rule
->deleteExpression($uuid);
$this->assertCount(0, $this->rule
->getConditions()
->getIterator());
$this->assertCount(0, $this->rule
->getActions()
->getIterator());
}