You are here

public function EntityIsOfBundleTest::testConditionEvaluation in Rules 8.3

Tests evaluating the condition.

@covers ::evaluate

File

tests/src/Unit/Integration/Condition/EntityIsOfBundleTest.php, line 35

Class

EntityIsOfBundleTest
@coversDefaultClass \Drupal\rules\Plugin\Condition\EntityIsOfBundle @group RulesCondition

Namespace

Drupal\Tests\rules\Unit\Integration\Condition

Code

public function testConditionEvaluation() {
  $entity = $this
    ->prophesizeEntity(EntityInterface::class);
  $entity
    ->getEntityTypeId()
    ->willReturn('node')
    ->shouldBeCalledTimes(3);
  $entity
    ->bundle()
    ->willReturn('page')
    ->shouldBeCalledTimes(3);

  // Add the test node to our context as the evaluated entity, along with
  // explicit entity type and bundle strings.
  // First, test with values that should evaluate TRUE.
  $this->condition
    ->setContextValue('entity', $entity
    ->reveal())
    ->setContextValue('type', 'node')
    ->setContextValue('bundle', 'page');
  $this
    ->assertTrue($this->condition
    ->evaluate());

  // Then test with values that should evaluate FALSE.
  $this->condition
    ->setContextValue('bundle', 'article');
  $this
    ->assertFalse($this->condition
    ->evaluate());
  $this->condition
    ->setContextValue('type', 'taxonomy_term')
    ->setContextValue('bundle', 'page');
  $this
    ->assertFalse($this->condition
    ->evaluate());
}