test_helpers-1.0.0-alpha6/tests/src/Unit/Stub/LoggerChannelFactoryStubTest.php

tests/src/Unit/Stub/LoggerChannelFactoryStubTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\test_helpers\Unit\Stub;

use Drupal\Core\Session\UserSession;
use Drupal\test_helpers\Stub\LoggerChannelFactoryStub;
use Drupal\Tests\UnitTestCase;
use Drupal\test_helpers\TestHelpers;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversMethod;
use PHPUnit\Framework\Attributes\Group;

/**
 * Tests LoggerChannelFactoryStub class.
 */
#[CoversClass(LoggerChannelFactoryStub::class)]
#[Group('test_helpers')]
#[CoversMethod(LoggerChannelFactoryStub::class, '__construct')]
#[CoversMethod(LoggerChannelFactoryStub::class, 'stubGetLogs')]
class LoggerChannelFactoryStubTest extends UnitTestCase {

  /**
   * Tests the API of LoggerChannelFactoryStub.
   */
  public function testApi() {
    $factory = TestHelpers::service('logger.factory');

    $this->assertEquals([], $factory->stubGetLogs());

    $context1 = [
      'uid' => '41',
      'uid_custom' => '42',
    ];
    $channel1 = $factory->get('my_channel1');
    $channel1->warning('My message', $context1);
    $context2 = [
      'uid' => '53',
    ];

    $user2 = new UserSession(['uid' => 2]);
    TestHelpers::service('current_user')->setAccount($user2);
    $channel2 = $factory->get('my_channel2');
    $channel2->error('My error', $context2);

    $logs = $factory->stubGetLogs();

    // Seems the logger returns different results for Drupal 10.3 and earlier.
    $log0Expected = version_compare(\Drupal::VERSION, '10.3', '>=')
      ? [
        'uid' => 0,
        'type' => 'my_channel1',
        'message' => 'My message',
        'severity' => 4,
        'link' => '',
        'location' => TestHelpers::REQUEST_STUB_DEFAULT_URI,
        'referer' => '',
        'hostname' => '127.0.0.1',
        '_context' => [
          'uid' => 0,
          'uid_custom' => '42',
          'channel' => 'my_channel1',
          'link' => '',
          'request_uri' => TestHelpers::REQUEST_STUB_DEFAULT_URI,
          'referer' => '',
          'ip' => '127.0.0.1',
        ],
      ]
      : [
        'uid' => '41',
        'type' => 'my_channel1',
        'message' => 'My message',
        'severity' => 4,
        'link' => '',
        'location' => '',
        'referer' => '',
        'hostname' => '',
        '_context' => [
          'uid' => '41',
          'uid_custom' => '42',
          'channel' => 'my_channel1',
          'link' => '',
          'request_uri' => '',
          'referer' => '',
          'ip' => '',
        ],
      ];

    // Seems the logger returns different results for Drupal 10.3 and earlier.
    $this->assertTrue(TestHelpers::isNestedArraySubsetOf($logs[0], $log0Expected));
    $log1Expected = version_compare(\Drupal::VERSION, '10.3', '>=')
      ? [
        'uid' => 2,
        'type' => 'my_channel2',
        'message' => 'My error',
        'severity' => 3,
        'link' => '',
        'location' => TestHelpers::REQUEST_STUB_DEFAULT_URI,
        'referer' => '',
        'hostname' => '127.0.0.1',
        '_context' => [
          'uid' => 2,
          'channel' => 'my_channel2',
          'link' => '',
          'request_uri' => TestHelpers::REQUEST_STUB_DEFAULT_URI,
          'referer' => '',
          'ip' => '127.0.0.1',
        ],
      ]
      : [
        'uid' => '53',
        'type' => 'my_channel2',
        'message' => 'My error',
        'severity' => 3,
        'link' => '',
        'location' => '',
        'referer' => '',
        'hostname' => '',
        '_context' => [
          'uid' => '53',
          'channel' => 'my_channel2',
          'link' => '',
          'request_uri' => '',
          'referer' => '',
          'ip' => '',
        ],
      ];
    $this->assertTrue(TestHelpers::isNestedArraySubsetOf($logs[1], $log1Expected));
    $this->assertIsNumeric($logs[0]["timestamp"]);
    $this->assertIsNumeric($logs[1]["_context"]["timestamp"]);
    $this->assertGreaterThan($logs[0]["_microtime"], $logs[1]["_microtime"]);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc