TransitionTest.php

Same filename and directory in other branches
  1. 9 core/modules/workflows/tests/src/Unit/TransitionTest.php
  2. 8.9.x core/modules/workflows/tests/src/Unit/TransitionTest.php
  3. 10 core/modules/workflows/tests/src/Unit/TransitionTest.php

Namespace

Drupal\Tests\workflows\Unit

File

core/modules/workflows/tests/src/Unit/TransitionTest.php

View source
<?php

declare (strict_types=1);
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() : void {
        $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() : void {
        $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

Title Deprecated Summary
TransitionTest @coversDefaultClass \Drupal\workflows\Transition

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.