PackageManagerBypassTestTrait.php
Namespace
Drupal\Tests\package_manager\TraitsFile
-
core/
modules/ package_manager/ tests/ src/ Traits/ PackageManagerBypassTestTrait.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\package_manager\Traits;
use PhpTuf\ComposerStager\API\Core\BeginnerInterface;
use PhpTuf\ComposerStager\API\Core\CommitterInterface;
use PhpTuf\ComposerStager\API\Core\StagerInterface;
/**
* Common functions for testing using the package_manager_bypass module.
*
* @internal
*/
trait PackageManagerBypassTestTrait {
/**
* Asserts the number of times an update was staged.
*
* @param int $attempted_times
* The expected number of times an update was staged.
*/
protected function assertUpdateStagedTimes(int $attempted_times) : void {
/** @var \Drupal\package_manager_bypass\LoggingBeginner $beginner */
$beginner = $this->container
->get(BeginnerInterface::class);
$this->assertCount($attempted_times, $beginner->getInvocationArguments());
/** @var \Drupal\package_manager_bypass\NoOpStager $stager */
$stager = $this->container
->get(StagerInterface::class);
// If an update was attempted, then there will be at least two calls to the
// stager: one to change the runtime constraints in composer.json, and
// another to actually update the installed dependencies. If any dev
// packages (like `drupal/core-dev`) are installed, there may also be an
// additional call to change the dev constraints.
$this->assertGreaterThanOrEqual($attempted_times * 2, count($stager->getInvocationArguments()));
/** @var \Drupal\package_manager_bypass\LoggingCommitter $committer */
$committer = $this->container
->get(CommitterInterface::class);
$this->assertEmpty($committer->getInvocationArguments());
}
}
Traits
Title | Deprecated | Summary |
---|---|---|
PackageManagerBypassTestTrait | Common functions for testing using the package_manager_bypass module. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.