factory_lollipop-1.0.x-dev/tests/modules/factory_lollipop_test/tests/src/Kernel/UserFactoryTest.php

tests/modules/factory_lollipop_test/tests/src/Kernel/UserFactoryTest.php
<?php

namespace Drupal\Tests\factory_lollipop_test\Kernel;

use Drupal\Tests\factory_lollipop\Kernel\LollipopKernelTestBase;
use Drupal\user\Entity\Role;
use Drupal\user\Entity\User;
use Drupal\user\UserInterface;

/**
 * Example of Factory Lollipop usage for User.
 *
 * @group factory_lollipop
 * @group factory_lollipop_example
 */
class UserFactoryTest extends LollipopKernelTestBase {

  /**
   * The Factory Lollipop fixture factory.
   *
   * @var \Drupal\factory_lollipop\FixtureFactory
   */
  protected $factoryLollipop;

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

  /**
   * Ensure a defined node type can be created.
   *
   * @covers \Drupal\factory_lollipop\FixtureFactory::loadDefinitions
   * @covers \Drupal\factory_lollipop\FixtureFactory::define
   * @covers \Drupal\factory_lollipop\FixtureFactory::create
   * @covers \Drupal\factory_lollipop\FactoryType\UserFactoryType::create
   */
  public function testDefine(): void {
    $this->factoryLollipop->loadDefinitions(['user']);

    $role = Role::create([
      'id' => 'moderator',
      'label' => 'moderator',
      'permissions' => ['access content'],
    ]);
    $role->save();

    // Ensure the association (node-type generation) is made only on ::create().
    $role = User::load(0);
    self::assertNull($role);

    // Ensure the 1st created user has the moderator role with permission.
    /** @var \Drupal\user\UserInterface $user */
    $user = $this->factoryLollipop->create('user_moderator');
    self::assertInstanceOf(UserInterface::class, $user);
    self::assertSame('1', $user->id());
    self::assertEquals(['authenticated', 'moderator'], $user->getRoles());
    self::assertTrue($user->hasPermission('access content'));

    // Ensure the 2nd created user has the administrator custom role.
    /** @var \Drupal\user\UserInterface $user */
    $user = $this->factoryLollipop->create('user_admin');
    self::assertInstanceOf(UserInterface::class, $user);
    self::assertSame('2', $user->id());
    self::assertEquals(['authenticated', 'administrator'], $user->getRoles());
    self::assertFalse($user->hasPermission('access content'));

    // Ensure the 3rd created user is just authenticated without permissions.
    /** @var \Drupal\user\UserInterface $user */
    $user = $this->factoryLollipop->create('user');
    self::assertInstanceOf(UserInterface::class, $user);
    self::assertSame('3', $user->id());
    self::assertEquals(['authenticated'], $user->getRoles());
    self::assertFalse($user->hasPermission('access content'));

    // Ensure Anonymous user has not permission.
    /** @var \Drupal\user\UserInterface $user */
    $user = $this->factoryLollipop->create('user', ['uid' => 0]);
    self::assertInstanceOf(UserInterface::class, $user);
    self::assertSame('0', $user->id());
    self::assertEquals(['anonymous'], $user->getRoles());
    self::assertFalse($user->hasPermission('access content'));
  }

}

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

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