class LoadMultipleTest
Same name and namespace in other branches
- 11.x core/modules/taxonomy/tests/src/Kernel/LoadMultipleTest.php \Drupal\Tests\taxonomy\Kernel\LoadMultipleTest
- 10 core/modules/taxonomy/tests/src/Kernel/LoadMultipleTest.php \Drupal\Tests\taxonomy\Kernel\LoadMultipleTest
- 9 core/modules/taxonomy/tests/src/Functional/LoadMultipleTest.php \Drupal\Tests\taxonomy\Functional\LoadMultipleTest
- 8.9.x core/modules/taxonomy/tests/src/Functional/LoadMultipleTest.php \Drupal\Tests\taxonomy\Functional\LoadMultipleTest
Tests the loading of multiple taxonomy terms at once.
Attributes
#[Group('taxonomy')]
#[RunTestsInSeparateProcesses]
Hierarchy
- class \Drupal\KernelTests\KernelTestBase implements \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\Tests\DrupalTestCaseTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\taxonomy\Kernel\LoadMultipleTest uses \Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of LoadMultipleTest
File
-
core/
modules/ taxonomy/ tests/ src/ Kernel/ LoadMultipleTest.php, line 16
Namespace
Drupal\Tests\taxonomy\KernelView source
class LoadMultipleTest extends KernelTestBase {
use TaxonomyTestTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'taxonomy',
'user',
'text',
'filter',
];
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->installEntitySchema('taxonomy_term');
}
/**
* Tests loading multiple taxonomy terms by term ID and vocabulary.
*/
public function testTaxonomyTermMultipleLoad() : void {
// Create a vocabulary.
$vocabulary = $this->createVocabulary();
// Create five terms in the vocabulary.
$i = 0;
while ($i < 5) {
$i++;
$this->createTerm($vocabulary);
}
// Load the terms from the vocabulary.
$term_storage = \Drupal::entityTypeManager()->getStorage('taxonomy_term');
$terms = $term_storage->loadByProperties([
'vid' => $vocabulary->id(),
]);
$count = count($terms);
$this->assertEquals(5, $count, "Correct number of terms were loaded. {$count} terms.");
// Load the same terms again by tid.
$terms2 = Term::loadMultiple(array_keys($terms));
$this->assertEquals($terms, $terms2, 'Both arrays contain the same terms.');
// Remove one term from the array, then delete it.
$deleted = array_shift($terms2);
$deleted->delete();
$deleted_term = Term::load($deleted->id());
$this->assertNull($deleted_term);
// Load terms from the vocabulary by vid.
$terms3 = $term_storage->loadByProperties([
'vid' => $vocabulary->id(),
]);
$this->assertCount(4, $terms3, 'Correct number of terms were loaded.');
$this->assertFalse(isset($terms3[$deleted->id()]));
// Create a single term and load it by name.
$term = $this->createTerm($vocabulary);
$loaded_terms = $term_storage->loadByProperties([
'name' => $term->getName(),
]);
$this->assertCount(1, $loaded_terms, 'One term was loaded.');
$loaded_term = reset($loaded_terms);
$this->assertEquals($term->id(), $loaded_term->id(), 'Term loaded by name successfully.');
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.