You are here

public function ConditionExpressionTest::testNegation in Rules 8.3

Tests that negating a condition works.

File

tests/src/Unit/ConditionExpressionTest.php, line 142

Class

ConditionExpressionTest
@coversDefaultClass \Drupal\rules\Plugin\RulesExpression\ConditionExpression @group Rules

Namespace

Drupal\Tests\rules\Unit

Code

public function testNegation() {
  $this->trueCondition
    ->getContextDefinitions()
    ->willReturn([]);
  $this->trueCondition
    ->refineContextDefinitions([])
    ->shouldBeCalledTimes(1);
  $this->trueCondition
    ->getProvidedContextDefinitions()
    ->willReturn([])
    ->shouldBeCalledTimes(1);
  $this->conditionManager
    ->createInstance('test_condition', [
    'negate' => TRUE,
  ])
    ->willReturn($this->trueCondition
    ->reveal())
    ->shouldBeCalledTimes(1);
  $this->conditionManager
    ->getDefinition('test_condition')
    ->willReturn([
    'label' => 'Test Condition',
  ])
    ->shouldBeCalledTimes(1);

  // Create a condition which is negated.
  $condition_expression = new ConditionExpression([
    'condition_id' => 'test_condition',
    'negate' => TRUE,
  ], '', [
    'label' => 'Test Condition',
  ], $this->conditionManager
    ->reveal(), $this->processorManager
    ->reveal(), $this->rulesDebugLogger
    ->reveal());
  $condition_expression
    ->setStringTranslation($this
    ->getStringTranslationStub());
  $this
    ->assertFalse($condition_expression
    ->execute());
}