function SystemEmailToUsersOfRoleTest::setUp

Overrides RulesEntityIntegrationTestBase::setUp

File

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

Class

SystemEmailToUsersOfRoleTest
@coversDefaultClass \Drupal\rules\Plugin\RulesAction\SystemEmailToUsersOfRole @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');
}