new_relic_rpm-8.x-1.x-dev/tests/src/Unit/RouteEnhancer/TransactionNameEnhancerTest.php

tests/src/Unit/RouteEnhancer/TransactionNameEnhancerTest.php
<?php

namespace Drupal\Tests\new_relic_rpm\Unit\RouteEnhancer;

use Drupal\Core\Controller\ControllerResolverInterface;
use Drupal\Core\Routing\RouteObjectInterface;
use Drupal\new_relic_rpm\RouteEnhancer\TransactionNameEnhancer;
use Drupal\Tests\UnitTestCase;
use Prophecy\Argument;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface;
use Symfony\Component\Routing\Route;

/**
 * @coversDefaultClass \Drupal\new_relic_rpm\RouteEnhancer\TransactionNameEnhancer
 * @group new_relic_rpm
 */
class TransactionNameEnhancerTest extends UnitTestCase {

  /**
   * Test callback for _translation_name_callback with known response.
   *
   * @return string
   *   'foo_resolved'
   */
  public static function transactionNameCallback() {
    return 'foo_resolved';
  }

  /**
   * @covers ::enhance
   */
  public function testEnhance() {
    $request = new Request();
    $callback = [self::class, 'transactionNameCallback'];
    $controller_resolver = $this->prophesize(ControllerResolverInterface::class);
    $controller_resolver->getControllerFromDefinition($callback)->willReturn($callback);
    $argument_resolver = $this->prophesize(ArgumentResolverInterface::class);
    $argument_resolver->getArguments(Argument::type(Request::class), $callback)
      ->willReturn([]);

    $enhancer = new TransactionNameEnhancer($controller_resolver->reveal(), $argument_resolver->reveal());

    $defaults = [
      RouteObjectInterface::ROUTE_OBJECT => new Route('/foo', ['_transaction_name_callback' => $callback]),
    ];

    $defaults = $enhancer->enhance($defaults, $request);
    $this->assertEquals('foo_resolved', $defaults['_transaction_name']);
  }

}

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

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