og-8.x-1.x-dev/tests/src/Kernel/Action/DeleteOgMembershipActionTest.php
tests/src/Kernel/Action/DeleteOgMembershipActionTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\og\Kernel\Action;
use Drupal\og\OgMembershipInterface;
/**
* Tests the DeleteOgMembership action plugin.
*
* @group og
* @coversDefaultClass \Drupal\og\Plugin\Action\DeleteOgMembership
*/
class DeleteOgMembershipActionTest extends ChangeOgMembershipActionTestBase {
/**
* {@inheritdoc}
*/
protected string $pluginId = 'og_membership_delete_action';
/**
* Checks if the action can be performed correctly.
*
* @param string $membership
* The membership on which to perform the action.
*
* @covers ::execute
* @dataProvider executeProvider
*/
public function testExecute(?string $membership = NULL): void {
$membership = $this->memberships[$membership];
$member = $membership->getOwner();
/** @var \Drupal\og\Plugin\Action\AddSingleOgMembershipRole $plugin */
$plugin = $this->getPlugin();
$plugin->execute($membership);
$this->assertFalse($this->membershipManager->isMember($this->group, $member->id(), [
OgMembershipInterface::STATE_ACTIVE,
OgMembershipInterface::STATE_BLOCKED,
OgMembershipInterface::STATE_PENDING,
]));
}
/**
* {@inheritdoc}
*/
public static function executeProvider(): array {
return [
['member'],
['pending'],
['blocked'],
['group_administrator'],
['group_moderator'],
];
}
}
