sfc-8.x-1.3/modules/sfc_example/tests/src/Kernel/ExampleClassTest.php

modules/sfc_example/tests/src/Kernel/ExampleClassTest.php
<?php

namespace Drupal\Tests\sfc_example\Kernel;

use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\File\FileUrlGeneratorInterface;
use Drupal\Core\Session\AccountProxyInterface;
use Drupal\Core\Session\UserSession;
use Drupal\KernelTests\KernelTestBase;
use Drupal\sfc_example\Plugin\SingleFileComponent\ExampleClass;
use Drupal\Tests\sfc\Kernel\ComponentTestTrait;

/**
 * Tests the ExampleClass component.
 *
 * @group sfc_example
 */
class ExampleClassTest extends KernelTestBase {

  use ComponentTestTrait;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'sfc',
    'sfc_example',
  ];

  /**
   * This test doesn't mock anything and is more like a light integration test.
   */
  public function testRenderIntegration() {
    $session = new UserSession([
      'name' => 'Default',
    ]);
    $proxy = \Drupal::service('current_user');
    $proxy->setAccount($session);
    \Drupal::currentUser()->setAccount($proxy);
    $this->assertEquals('<p class="example-class">Hello Default!</p>', $this->renderComponent('example_class', []));
    $this->assertEquals('<p class="example-class">Hello Sam!</p>', $this->renderComponent('example_class', [
      'name' => 'Sam',
    ]));
  }

  /**
   * This test uses mocking to test the component.
   */
  public function testRenderMock() {
    $file_system = $this->createMock(FileSystemInterface::class);
    $file_url_generator = $this->createMock(FileUrlGeneratorInterface::class);
    $current_user = $this->createMock(AccountProxyInterface::class);
    $current_user->method('getDisplayName')->willReturn('Default');
    $component = new ExampleClass([], 'example_class', [], FALSE, 'vfs:/', $file_system, $file_url_generator, $current_user);
    $this->assertEquals('<p class="example-class">Hello Default!</p>', $this->renderComponentObject($component, []));
    $this->assertEquals('<p class="example-class">Hello Sam!</p>', $this->renderComponentObject($component, [
      'name' => 'Sam',
    ]));
  }

}

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

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