depcalc-8.x-1.x-dev/tests/src/Kernel/DependencyHelperTrait.php
tests/src/Kernel/DependencyHelperTrait.php
<?php
namespace Drupal\Tests\depcalc\Kernel;
use Drupal\Core\Entity\EntityInterface;
use Drupal\depcalc\DependencyStack;
use Drupal\depcalc\DependentEntityWrapper;
use Drupal\depcalc\DependentEntityWrapperInterface;
/**
* Helper trait for dependency calculation.
*/
trait DependencyHelperTrait {
/**
* Calculates all the dependencies of a given entity.
*
* @var \Drupal\depcalc\DependencyCalculator
*/
protected $calculator;
/**
* Returns the list of entity dependencies.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity.
*
* @return array
* The list of UUIDs of dependencies (entities).
*
* @throws \Exception
*/
protected function getEntityDependencies(EntityInterface $entity) {
$wrapper = $this->getDependentEntityWrapper($entity);
return array_keys($wrapper->getDependencies());
}
/**
* Returns the list of module dependencies.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity object.
*
* @return array
* The list of UUIDs of entity dependencies.
*
* @throws \Exception
*/
protected function getModuleDependencies(EntityInterface $entity) {
$wrapper = $this->getDependentEntityWrapper($entity);
return $wrapper->getModuleDependencies();
}
/**
* Calculate entity dependencies and return the DependentEntityWrapper object.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity object.
*
* @return \Drupal\depcalc\DependentEntityWrapperInterface|null
* The DependentEntityWrapper object.
*
* @throws \Exception
*/
protected function getDependentEntityWrapper(EntityInterface $entity): ?DependentEntityWrapperInterface {
$dependentEntityWrapper = new DependentEntityWrapper($entity);
$stack = new DependencyStack();
$this->calculator->calculateDependencies($dependentEntityWrapper, $stack);
return $stack->getDependency($entity->uuid());
}
}
