You are here

TransitionTest.php in Drupal 8

File

core/modules/workflows/tests/src/Unit/TransitionTest.php
View source
<?php

namespace Drupal\Tests\workflows\Unit;

use Drupal\Tests\UnitTestCase;
use Drupal\workflow_type_test\Plugin\WorkflowType\TestType;
use Drupal\workflows\Transition;
use Drupal\workflows\WorkflowTypeInterface;

/**
 * @coversDefaultClass \Drupal\workflows\Transition
 *
 * @group workflows
 */
class TransitionTest extends UnitTestCase {

  /**
   * @covers ::__construct
   * @covers ::id
   * @covers ::label
   */
  public function testGetters() {
    $state = new Transition($this
      ->prophesize(WorkflowTypeInterface::class)
      ->reveal(), 'draft_published', 'Publish', [
      'draft',
    ], 'published');
    $this
      ->assertEquals('draft_published', $state
      ->id());
    $this
      ->assertEquals('Publish', $state
      ->label());
  }

  /**
   * @covers ::from
   * @covers ::to
   */
  public function testFromAndTo() {
    $workflow = new TestType([], '', []);
    $workflow
      ->addState('draft', 'Draft')
      ->addState('published', 'Published')
      ->addTransition('publish', 'Publish', [
      'draft',
    ], 'published');
    $state = $workflow
      ->getState('draft');
    $transition = $state
      ->getTransitionTo('published');
    $this
      ->assertEquals($state, $transition
      ->from()['draft']);
    $this
      ->assertEquals($workflow
      ->getState('published'), $transition
      ->to());
  }

}

Classes

Namesort descending Description
TransitionTest @coversDefaultClass \Drupal\workflows\Transition