function SystemEmailToUsersOfRoleTest::setUp

Overrides RulesEntityIntegrationTestBase::setUp

File

tests/src/Unit/Integration/RulesAction/SystemEmailToUsersOfRoleTest.php, line 50

Class

SystemEmailToUsersOfRoleTest
@coversDefaultClass \Drupal\rules\Plugin\RulesAction\SystemEmailToUsersOfRole[[api-linebreak]] @group RulesAction

Namespace

Drupal\Tests\rules\Unit\Integration\RulesAction

Code

protected function setUp() : void {
  parent::setUp();
  $this->enableModule('user');
  // Mock the logger.factory service, make it return the Rules logger channel,
  // and register it in the container.
  $this->logger = $this->prophesize(LoggerChannelInterface::class);
  $logger_factory = $this->prophesize(LoggerChannelFactoryInterface::class);
  $logger_factory->get('rules')
    ->willReturn($this->logger
    ->reveal());
  $this->container
    ->set('logger.factory', $logger_factory->reveal());
  $this->mailManager = $this->prophesize(MailManagerInterface::class);
  $this->container
    ->set('plugin.manager.mail', $this->mailManager
    ->reveal());
  // Create an array of dummy users with the 'recipient' role.
  $this->accounts = [];
  for ($i = 0; $i < 3; $i++) {
    $account = $this->prophesizeEntity(UserInterface::class);
    $account->getPreferredLangcode()
      ->willReturn('site_default');
    $account->getEmail()
      ->willReturn('user' . $i . '@example.com');
    $account->addRole('recipient');
    // Add the 'moderator' role to only the first account.
    if ($i == 0) {
      $account->addRole('moderator');
    }
    $this->accounts[] = $account->reveal();
  }
  // Create dummy user storage object.
  $this->userStorage = $this->prophesize(UserStorageInterface::class);
  $this->entityTypeManager
    ->getStorage('user')
    ->willReturn($this->userStorage
    ->reveal());
  $this->action = $this->actionManager
    ->createInstance('rules_email_to_users_of_role');
}