StatusCheckTraitTest.php

Namespace

Drupal\Tests\package_manager\Kernel

File

core/modules/package_manager/tests/src/Kernel/StatusCheckTraitTest.php

View source
<?php

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

use Drupal\package_manager\Event\CollectPathsToExcludeEvent;
use Drupal\package_manager\Event\StatusCheckEvent;
use Drupal\package_manager\StatusCheckTrait;
use Drupal\package_manager\ValidationResult;

/**
 * @covers \Drupal\package_manager\StatusCheckTrait
 * @group package_manager
 * @internal
 */
class StatusCheckTraitTest extends PackageManagerKernelTestBase {
  use StatusCheckTrait;
  
  /**
   * Tests that StatusCheckTrait will collect paths to exclude.
   */
  public function testPathsToExcludeCollected() : void {
    $this->addEventTestListener(function (CollectPathsToExcludeEvent $event) : void {
      $event->add('/junk/drawer');
    }, CollectPathsToExcludeEvent::class);
    $status_check_called = FALSE;
    $this->addEventTestListener(function (StatusCheckEvent $event) use (&$status_check_called) : void {
      $this->assertContains('/junk/drawer', $event->excludedPaths
        ->getAll());
      $status_check_called = TRUE;
    }, StatusCheckEvent::class);
    $this->runStatusCheck($this->createStage(), $this->container
      ->get('event_dispatcher'));
    $this->assertTrue($status_check_called);
  }
  
  /**
   * Tests that any error will be added to the status check event.
   */
  public function testNoErrorIfPathsToExcludeCannotBeCollected() : void {
    $e = new \Exception('Not a chance, friend.');
    $listener = function () use ($e) : never {
      throw $e;
    };
    $this->addEventTestListener($listener, CollectPathsToExcludeEvent::class);
    $excluded_paths_are_null = FALSE;
    $listener = function (StatusCheckEvent $event) use (&$excluded_paths_are_null) : void {
      $excluded_paths_are_null = is_null($event->excludedPaths);
    };
    $this->addEventTestListener($listener, StatusCheckEvent::class);
    $this->assertStatusCheckResults([
      ValidationResult::createErrorFromThrowable($e),
    ]);
    $this->assertTrue($excluded_paths_are_null);
  }

}

Classes

Title Deprecated Summary
StatusCheckTraitTest @covers \Drupal\package_manager\StatusCheckTrait[[api-linebreak]] @group package_manager @internal

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