3 namespace Drupal\Tests\workflows\Kernel;
5 use Drupal\KernelTests\KernelTestBase;
6 use Drupal\workflows\Entity\Workflow;
7 use Drupal\workflow_type_test\DecoratedState;
8 use Drupal\workflow_type_test\DecoratedTransition;
11 * Workflow entity tests that require modules or storage.
13 * @coversDefaultClass \Drupal\workflows\Entity\Workflow
17 class ComplexWorkflowTypeTest extends KernelTestBase {
22 public static $modules = ['workflows', 'workflow_type_test'];
25 * Tests a workflow type that decorates transitions and states.
28 * @covers ::getTransition
30 public function testComplexType() {
31 $workflow = new Workflow(['id' => 'test', 'type' => 'workflow_type_complex_test'], 'workflow');
33 ->addState('draft', 'Draft')
34 ->addTransition('create_new_draft', 'Create new draft', ['draft'], 'draft');
35 $this->assertInstanceOf(DecoratedState::class, $workflow->getState('draft'));
36 $this->assertInstanceOf(DecoratedTransition::class, $workflow->getTransition('create_new_draft'));
40 * @covers ::loadMultipleByType
42 public function testLoadMultipleByType() {
43 $workflow1 = new Workflow(['id' => 'test1', 'type' => 'workflow_type_complex_test'], 'workflow');
45 $workflow2 = new Workflow(['id' => 'test2', 'type' => 'workflow_type_complex_test'], 'workflow');
47 $workflow3 = new Workflow(['id' => 'test3', 'type' => 'workflow_type_test'], 'workflow');
50 $this->assertEquals(['test1', 'test2'], array_keys(Workflow::loadMultipleByType('workflow_type_complex_test')));
51 $this->assertEquals(['test3'], array_keys(Workflow::loadMultipleByType('workflow_type_test')));
52 $this->assertEquals([], Workflow::loadMultipleByType('a_type_that_does_not_exist'));