CreateTestContentEntitiesTrait.php

Same filename in other branches
  1. 9 core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php
  2. 8.9.x core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php
  3. 10 core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php

Namespace

Drupal\Tests\migrate_drupal\Traits

File

core/modules/migrate_drupal/tests/src/Traits/CreateTestContentEntitiesTrait.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\migrate_drupal\Traits;


/**
 * Provides helper methods for creating test content.
 */
trait CreateTestContentEntitiesTrait {
    
    /**
     * Gets required modules.
     *
     * @return array
     */
    protected function getRequiredModules() : array {
        return [
            'block_content',
            'comment',
            'field',
            'file',
            'link',
            'menu_link_content',
            'migrate_drupal',
            'node',
            'options',
            'system',
            'taxonomy',
            'text',
            'user',
        ];
    }
    
    /**
     * Install required entity schemas.
     */
    protected function installEntitySchemas() {
        $this->installEntitySchema('block_content');
        $this->installEntitySchema('comment');
        $this->installEntitySchema('file');
        $this->installEntitySchema('menu_link_content');
        $this->installEntitySchema('node');
        $this->installEntitySchema('path_alias');
        $this->installEntitySchema('taxonomy_term');
        $this->installEntitySchema('user');
    }
    
    /**
     * Create several pieces of generic content.
     */
    protected function createContent() {
        $entity_type_manager = \Drupal::entityTypeManager();
        // Create a block content.
        if ($entity_type_manager->hasDefinition('block_content')) {
            $block = $entity_type_manager->getStorage('block_content')
                ->create([
                'info' => 'block',
                'type' => 'block',
            ]);
            $block->save();
        }
        // Create a node.
        if ($entity_type_manager->hasDefinition('node')) {
            $node = $entity_type_manager->getStorage('node')
                ->create([
                'type' => 'page',
                'title' => 'page',
            ]);
            $node->save();
            // Create a comment.
            if ($entity_type_manager->hasDefinition('comment')) {
                $comment = $entity_type_manager->getStorage('comment')
                    ->create([
                    'comment_type' => 'comment',
                    'field_name' => 'comment',
                    'entity_type' => 'node',
                    'entity_id' => $node->id(),
                ]);
                $comment->save();
            }
        }
        // Create a file.
        if ($entity_type_manager->hasDefinition('file')) {
            $file = $entity_type_manager->getStorage('file')
                ->create([
                'uri' => 'public://example.txt',
            ]);
            $file->save();
        }
        // Create a menu link.
        if ($entity_type_manager->hasDefinition('menu_link_content')) {
            $menu_link = $entity_type_manager->getStorage('menu_link_content')
                ->create([
                'title' => 'menu link',
                'link' => [
                    'uri' => 'http://www.example.com',
                ],
                'menu_name' => 'tools',
            ]);
            $menu_link->save();
        }
        // Create a taxonomy term.
        if ($entity_type_manager->hasDefinition('taxonomy_term')) {
            $term = $entity_type_manager->getStorage('taxonomy_term')
                ->create([
                'name' => 'term',
                'vid' => 'term',
            ]);
            $term->save();
        }
        // Create a user.
        if ($entity_type_manager->hasDefinition('user')) {
            $user = $entity_type_manager->getStorage('user')
                ->create([
                'name' => 'user',
                'mail' => 'user@example.com',
            ]);
            $user->save();
        }
    }
    
    /**
     * Create several pieces of generic content.
     */
    protected function createContentPostUpgrade() {
        $entity_type_manager = \Drupal::entityTypeManager();
        // Create a block content.
        if ($entity_type_manager->hasDefinition('block_content')) {
            $block = $entity_type_manager->getStorage('block_content')
                ->create([
                'info' => 'Post upgrade block',
                'type' => 'block',
            ]);
            $block->save();
        }
        // Create a node.
        if ($entity_type_manager->hasDefinition('node')) {
            $node = $entity_type_manager->getStorage('node')
                ->create([
                'type' => 'page',
                'title' => 'Post upgrade page',
            ]);
            $node->save();
            // Create a comment.
            if ($entity_type_manager->hasDefinition('comment')) {
                $comment = $entity_type_manager->getStorage('comment')
                    ->create([
                    'comment_type' => 'comment',
                    'field_name' => 'comment',
                    'entity_type' => 'node',
                    'entity_id' => $node->id(),
                ]);
                $comment->save();
            }
        }
        // Create a file.
        if ($entity_type_manager->hasDefinition('file')) {
            $file = $entity_type_manager->getStorage('file')
                ->create([
                'uri' => 'public://post_upgrade_example.txt',
            ]);
            $file->save();
        }
        // Create a menu link.
        if ($entity_type_manager->hasDefinition('menu_link_content')) {
            $menu_link = $entity_type_manager->getStorage('menu_link_content')
                ->create([
                'title' => 'post upgrade menu link',
                'link' => [
                    'uri' => 'http://www.example.com',
                ],
                'menu_name' => 'tools',
            ]);
            $menu_link->save();
        }
        // Create a taxonomy term.
        if ($entity_type_manager->hasDefinition('taxonomy_term')) {
            $term = $entity_type_manager->getStorage('taxonomy_term')
                ->create([
                'name' => 'post upgrade term',
                'vid' => 'term',
            ]);
            $term->save();
        }
        // Create a user.
        if ($entity_type_manager->hasDefinition('user')) {
            $user = $entity_type_manager->getStorage('user')
                ->create([
                'name' => 'universe',
                'mail' => 'universe@example.com',
            ]);
            $user->save();
        }
    }

}

Traits

Title Deprecated Summary
CreateTestContentEntitiesTrait Provides helper methods for creating test content.

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