test_support-1.0.x-dev/tests/src/Kernel/Installs/InstallsViewsTest.php

tests/src/Kernel/Installs/InstallsViewsTest.php
<?php

namespace Drupal\Tests\test_support\Kernel\Installs;

use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\test_support\Traits\Installs\InstallsViews;
use Drupal\views\Entity\View;

class InstallsViewsTest extends KernelTestBase
{
    use InstallsViews;

    protected $strictConfigSchema = false;

    protected function setUp(): void
    {
        parent::setUp();

        $this->setConfigDirectory(__DIR__ . '/__fixtures__/config/sync/views');
    }

    /** @test */
    public function installing_view_sets_up_dependencies(): void
    {
        $this->assertFalse($this->container->get('module_handler')->moduleExists('views'));

        $entityTypeDefinitions = $this->container->get('entity_type.manager')->getDefinitions();
        $this->assertArrayNotHasKey('view', $entityTypeDefinitions);

        $this->installViews('media');

        $entityTypeDefinitions = $this->container->get('entity_type.manager')->getDefinitions();
        $this->assertArrayHasKey('view', $entityTypeDefinitions);

        $this->assertTrue($this->container->get('module_handler')->moduleExists('views'));
    }

    /** @test */
    public function install_single_view(): void
    {
        $this->enableModules([
            'system',
            'user',
            'views',
        ]);
        $this->installEntitySchema('view');

        $viewStorage = $this->container->get('entity_type.manager')->getStorage('view');

        $this->assertEmpty($viewStorage->loadMultiple());

        $this->installViews('media');

        /** @var array<mixed> $views */
        $views = $viewStorage->loadMultiple();

        $this->assertNotEmpty($views);

        $this->assertInstanceOf(View::class, $viewStorage->load('media'));
    }

    /** @test */
    public function install_multiple_views(): void
    {
        $this->enableModules([
            'system',
            'user',
            'views',
        ]);
        $this->installEntitySchema('view');

        $viewStorage = $this->container->get('entity_type.manager')->getStorage('view');

        $this->assertEmpty($viewStorage->loadMultiple());

        $this->installViews([
            'media',
            'redirect',
        ]);

        $this->assertInstanceOf(View::class, $viewStorage->load('media'));
        $this->assertInstanceOf(View::class, $viewStorage->load('redirect'));
    }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc