WorkflowDependenciesTest.php

Same filename in other branches
  1. 9 core/modules/workflows/tests/src/Kernel/WorkflowDependenciesTest.php
  2. 8.9.x core/modules/workflows/tests/src/Kernel/WorkflowDependenciesTest.php
  3. 11.x core/modules/workflows/tests/src/Kernel/WorkflowDependenciesTest.php

Namespace

Drupal\Tests\workflows\Kernel

File

core/modules/workflows/tests/src/Kernel/WorkflowDependenciesTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\workflows\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\workflows\Entity\Workflow;

/**
 * Tests configuration dependencies in workflows.
 *
 * @coversDefaultClass \Drupal\workflows\Entity\Workflow
 *
 * @group workflows
 */
class WorkflowDependenciesTest extends KernelTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'system',
        'workflows',
        'workflow_type_test',
        'workflow_third_party_settings_test',
    ];
    
    /**
     * Tests \Drupal\workflows\Entity\Workflow::onDependencyRemoval().
     */
    public function testOnDependencyRemoval() : void {
        // Create a workflow that has a dependency on a third party setting.
        $workflow = Workflow::create([
            'id' => 'test3',
            'label' => 'Test workflow',
            'type' => 'workflow_type_complex_test',
        ]);
        $workflow->setThirdPartySetting('workflow_third_party_settings_test', 'key', 'value');
        $workflow->save();
        $this->assertSame([
            'workflow_third_party_settings_test',
            'workflow_type_test',
        ], $workflow->getDependencies()['module']);
        // Uninstall workflow_third_party_settings_test to ensure
        // \Drupal\workflows\Entity\Workflow::onDependencyRemoval() works as
        // expected.
        \Drupal::service('module_installer')->uninstall([
            'node',
            'workflow_third_party_settings_test',
        ]);
        
        /** @var \Drupal\workflows\WorkflowInterface $workflow */
        $workflow = \Drupal::entityTypeManager()->getStorage('workflow')
            ->loadUnchanged($workflow->id());
        $this->assertSame([
            'workflow_type_test',
        ], $workflow->getDependencies()['module']);
    }

}

Classes

Title Deprecated Summary
WorkflowDependenciesTest Tests configuration dependencies in workflows.

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