You are here

RulesActionBaseTest.php in Rules 8.3

File

tests/src/Unit/RulesActionBaseTest.php
View source
<?php

namespace Drupal\Tests\rules\Unit;

use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\rules\Core\RulesActionBase;

/**
 * @coversDefaultClass \Drupal\rules\Core\RulesActionBase
 * @group Rules
 */
class RulesActionBaseTest extends RulesUnitTestBase {

  /**
   * Tests that a missing label throwa an exception.
   *
   * @covers ::summary
   */
  public function testSummaryThrowingException() {

    // Set the expected exception class. There is no message to check for.
    $this
      ->expectException(InvalidPluginDefinitionException::class);
    $rules_action_base = $this
      ->getMockForAbstractClass(RulesActionBase::class, [
      [],
      '',
      '',
    ]);
    $rules_action_base
      ->summary();
  }

  /**
   * Tests that the summary is being parsed from the label annotation.
   *
   * @covers ::summary
   */
  public function testSummaryParsingTheLabelAnnotation() {
    $rules_action_base = $this
      ->getMockForAbstractClass(RulesActionBase::class, [
      [],
      '',
      [
        'label' => 'something',
      ],
    ]);
    $this
      ->assertEquals('something', $rules_action_base
      ->summary());
  }

  /**
   * Tests that a translation wrapper label is correctly parsed.
   *
   * @covers ::summary
   */
  public function testTranslatedLabel() {
    $translation_wrapper = $this
      ->prophesize(TranslatableMarkup::class);
    $translation_wrapper
      ->__toString()
      ->willReturn('something');
    $rules_action_base = $this
      ->getMockForAbstractClass(RulesActionBase::class, [
      [],
      '',
      [
        'label' => $translation_wrapper
          ->reveal(),
      ],
    ]);
    $this
      ->assertEquals('something', $rules_action_base
      ->summary());
  }

}

Classes

Namesort descending Description
RulesActionBaseTest @coversDefaultClass \Drupal\rules\Core\RulesActionBase @group Rules