public function DataIsEmptyTest::testConditionEvaluation in Rules 8.3
Tests evaluating the condition.
@covers ::evaluate
File
- tests/
src/ Unit/ Integration/ Condition/ DataIsEmptyTest.php, line 36
Class
- DataIsEmptyTest
- @coversDefaultClass \Drupal\rules\Plugin\Condition\DataIsEmpty @group RulesCondition
Namespace
Drupal\Tests\rules\Unit\Integration\ConditionCode
public function testConditionEvaluation() {
// Test a ComplexDataInterface object.
$entity_adapter_empty = $this
->prophesize(ComplexDataInterface::class);
$entity_adapter_empty
->isEmpty()
->willReturn(TRUE)
->shouldBeCalledTimes(1);
$context = $this->condition
->getContext('data');
$context = Context::createFromContext($context, $entity_adapter_empty
->reveal());
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
$entity_adapter_full = $this
->prophesize(ComplexDataInterface::class);
$entity_adapter_full
->isEmpty()
->willReturn(FALSE)
->shouldBeCalledTimes(1);
$context = Context::createFromContext($context, $entity_adapter_full
->reveal());
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
// These should all return FALSE.
// A non-empty array.
$context = Context::createFromContext($context, $this
->getTypedData('list', [
1,
2,
3,
]));
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
// An array containing an empty list.
$context = Context::createFromContext($context, $this
->getTypedData('list', [
[],
]));
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
// An array with a zero-value element.
$context = Context::createFromContext($context, $this
->getTypedData('list', [
0,
]));
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
// A scalar value.
$context = Context::createFromContext($context, $this
->getTypedData('integer', 1));
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
$context = Context::createFromContext($context, $this
->getTypedData('string', 'short string'));
$this->condition
->setContext('data', $context);
$this
->assertFalse($this->condition
->evaluate());
// These should all return TRUE.
// An empty array.
$context = Context::createFromContext($context, $this
->getTypedData('list', []));
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
// The false/zero/NULL values.
$context = Context::createFromContext($context, $this
->getTypedData('boolean', FALSE));
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
$context = Context::createFromContext($context, $this
->getTypedData('integer', 0));
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
$context = Context::createFromContext($context, $this
->getTypedData('string', NULL));
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
// An empty string.
$context = Context::createFromContext($context, $this
->getTypedData('string', ''));
$this->condition
->setContext('data', $context);
$this
->assertTrue($this->condition
->evaluate());
}