2ff1c2adf7a3e6714898f42fbe96da3cfad7fe7a
[yaffs-website] / ComplexWorkflowTypeTest.php
1 <?php
2
3 namespace Drupal\Tests\workflows\Kernel;
4
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;
9
10 /**
11  * Workflow entity tests that require modules or storage.
12  *
13  * @coversDefaultClass \Drupal\workflows\Entity\Workflow
14  *
15  * @group workflows
16  */
17 class ComplexWorkflowTypeTest extends KernelTestBase {
18
19   /**
20    * {@inheritdoc}
21    */
22   public static $modules = ['workflows', 'workflow_type_test'];
23
24   /**
25    * Tests a workflow type that decorates transitions and states.
26    *
27    * @covers ::getState
28    * @covers ::getTransition
29    */
30   public function testComplexType() {
31     $workflow = new Workflow(['id' => 'test', 'type' => 'workflow_type_complex_test'], 'workflow');
32     $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'));
37   }
38
39   /**
40    * @covers ::loadMultipleByType
41    */
42   public function testLoadMultipleByType() {
43     $workflow1 = new Workflow(['id' => 'test1', 'type' => 'workflow_type_complex_test'], 'workflow');
44     $workflow1->save();
45     $workflow2 = new Workflow(['id' => 'test2', 'type' => 'workflow_type_complex_test'], 'workflow');
46     $workflow2->save();
47     $workflow3 = new Workflow(['id' => 'test3', 'type' => 'workflow_type_test'], 'workflow');
48     $workflow3->save();
49
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'));
53   }
54
55 }