You are here

public function LoggerChannelTest::testSortLoggers in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php \Drupal\Tests\Core\Logger\LoggerChannelTest::testSortLoggers()

Tests LoggerChannel::addLoggers().

@covers ::addLogger @covers ::sortLoggers

File

core/tests/Drupal/Tests/Core/Logger/LoggerChannelTest.php, line 80
Contains \Drupal\Tests\Core\Logger\LoggerChannelTest.

Class

LoggerChannelTest
@coversDefaultClass \Drupal\Core\Logger\LoggerChannel @group Logger

Namespace

Drupal\Tests\Core\Logger

Code

public function testSortLoggers() {
  $channel = new LoggerChannel($this
    ->randomMachineName());
  $index_order = '';
  for ($i = 0; $i < 4; $i++) {
    $logger = $this
      ->createMock('Psr\\Log\\LoggerInterface');
    $logger
      ->expects($this
      ->once())
      ->method('log')
      ->willReturnCallback(function () use ($i, &$index_order) {

      // Append the $i to the index order, so that we know the order that
      // loggers got called with.
      $index_order .= $i;
    });
    $channel
      ->addLogger($logger, $i);
  }
  $channel
    ->log(rand(0, 7), $this
    ->randomMachineName());

  // Ensure that the logger added in the end fired first.
  $this
    ->assertEquals('3210', $index_order);
}