You are here

public function MessengerTest::testAddNoDuplicates in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php \Drupal\KernelTests\Core\Messenger\MessengerTest::testAddNoDuplicates()
  2. 10 core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php \Drupal\KernelTests\Core\Messenger\MessengerTest::testAddNoDuplicates()

Tests we don't add duplicates.

@covers ::all @covers ::addStatus @covers ::addWarning @covers ::addError @covers ::deleteByType @covers ::deleteAll

File

core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php, line 66

Class

MessengerTest
@group Messenger @coversDefaultClass \Drupal\Core\Messenger\Messenger

Namespace

Drupal\KernelTests\Core\Messenger

Code

public function testAddNoDuplicates() {
  $this->messenger
    ->addStatus('Non Duplicated status message');
  $this->messenger
    ->addStatus('Non Duplicated status message');
  $this
    ->assertCount(1, $this->messenger
    ->messagesByType(MessengerInterface::TYPE_STATUS));
  $this->messenger
    ->addWarning('Non Duplicated warning message');
  $this->messenger
    ->addWarning('Non Duplicated warning message');
  $this
    ->assertCount(1, $this->messenger
    ->messagesByType(MessengerInterface::TYPE_WARNING));
  $this->messenger
    ->addError('Non Duplicated error message');
  $this->messenger
    ->addError('Non Duplicated error message');
  $messages = $this->messenger
    ->messagesByType(MessengerInterface::TYPE_ERROR);
  $this
    ->assertCount(1, $messages);

  // Check getting all messages.
  $messages = $this->messenger
    ->all();
  $this
    ->assertCount(3, $messages);
  $this
    ->assertArrayHasKey(MessengerInterface::TYPE_STATUS, $messages);
  $this
    ->assertArrayHasKey(MessengerInterface::TYPE_WARNING, $messages);
  $this
    ->assertArrayHasKey(MessengerInterface::TYPE_ERROR, $messages);

  // Check deletion.
  $this->messenger
    ->deleteAll();
  $this
    ->assertCount(0, $this->messenger
    ->messagesByType(MessengerInterface::TYPE_STATUS));
  $this
    ->assertCount(0, $this->messenger
    ->messagesByType(MessengerInterface::TYPE_WARNING));
  $this
    ->assertCount(0, $this->messenger
    ->messagesByType(MessengerInterface::TYPE_ERROR));
}