You are here

public function ContentHubEntityDependencyTest::testDependencyChain in Acquia Content Hub 8

Test Dependency Chain.

@covers ::appendDependencyChain @covers ::isInDependencyChain @covers ::getDependencyChain

File

tests/src/Unit/ContentHubEntityDependencyTest.php, line 115

Class

ContentHubEntityDependencyTest
PHPUnit for the ContentHubEntityDependency class.

Namespace

Drupal\Tests\acquia_contenthub\Unit

Code

public function testDependencyChain() {
  $this->entity = $this
    ->createContentHubEntity();
  $ch_entity_dependency = new ContentHubEntityDependency($this->entity);

  // Adding dependency.
  $entity1 = $this
    ->createContentHubEntity([
    'uuid' => '00000000-2222-0000-0000-000000000000',
  ]);
  $ch_entity_dependency1 = new ContentHubEntityDependency($entity1);
  $ch_entity_dependency
    ->appendDependencyChain($ch_entity_dependency1);
  $expected_dependency_chain = [];
  $expected_dependency_chain[] = $entity1
    ->getUuid();
  $this
    ->assertEquals($expected_dependency_chain, $ch_entity_dependency
    ->getDependencyChain());

  // Adding another dependency.
  $entity2 = $this
    ->createContentHubEntity([
    'uuid' => '00000000-3333-0000-0000-000000000000',
  ]);
  $ch_entity_dependency2 = new ContentHubEntityDependency($entity2);
  $ch_entity_dependency
    ->appendDependencyChain($ch_entity_dependency2);
  $expected_dependency_chain[] = $entity2
    ->getUuid();
  $this
    ->assertEquals($expected_dependency_chain, $ch_entity_dependency
    ->getDependencyChain());

  // $entity1 and $entity2 should be in the dependency chain.
  $this
    ->assertTrue($ch_entity_dependency
    ->isInDependencyChain($ch_entity_dependency1));
  $this
    ->assertTrue($ch_entity_dependency
    ->isInDependencyChain($ch_entity_dependency2));

  // This entity should not be in the dependency chain.
  $entity3 = $this
    ->createContentHubEntity([
    'uuid' => '00000000-4444-0000-0000-000000000000',
  ]);
  $ch_entity_dependency3 = new ContentHubEntityDependency($entity3);
  $this
    ->assertFalse($ch_entity_dependency
    ->isInDependencyChain($ch_entity_dependency3));
}