You are here

public function TranslationJobBreadcrumbBuilderTest::testBuild in Lingotek Translation 8.2

Same name and namespace in other branches
  1. 4.0.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  2. 3.0.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  3. 3.1.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  4. 3.2.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  5. 3.3.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  6. 3.4.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  7. 3.5.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  8. 3.6.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  9. 3.7.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()
  10. 3.8.x tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php \Drupal\Tests\lingotek\Unit\Breadcrumb\TranslationJobBreadcrumbBuilderTest::testBuild()

Tests TranslationJobBreadcrumbBuilder::build().

@dataProvider providerTestBuild @covers ::build

See also

\Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()

File

tests/src/Unit/Breadcrumb/TranslationJobBreadcrumbBuilderTest.php, line 167

Class

TranslationJobBreadcrumbBuilderTest
@coversDefaultClass \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder @group lingotek

Namespace

Drupal\Tests\lingotek\Unit\Breadcrumb

Code

public function testBuild($route_name, $expected, $title, $job_id) {
  $route_match = $this
    ->createMock(ResettableStackedRouteMatchInterface::class);
  $route_match
    ->expects($this
    ->any())
    ->method('getRouteName')
    ->willReturn($route_name);
  $access = new AccessResultAllowed();
  $this->accessManager
    ->expects($this
    ->once())
    ->method('check')
    ->with($route_match, $this->currentUser, NULL, TRUE)
    ->willReturn($access);
  if ($route_name === 'lingotek.translation_jobs') {
    $route_match
      ->expects($this
      ->never())
      ->method('getRouteMatchFromRequest');
    $route_match
      ->expects($this
      ->never())
      ->method('getRouteObject');
    $this->titleResolver
      ->expects($this
      ->never())
      ->method('getTitle');
  }
  else {
    $route_match
      ->expects($this
      ->once())
      ->method('getRouteMatchFromRequest')
      ->with($this->request)
      ->willReturn($route_match);
    $route = $this
      ->createMock(Route::class);
    $route_match
      ->expects($this
      ->once())
      ->method('getParameter')
      ->with('job_id')
      ->willReturn($job_id);
    $route_match
      ->expects($this
      ->once())
      ->method('getRouteObject')
      ->willReturn($route);
    $this->titleResolver
      ->expects($this
      ->once())
      ->method('getTitle')
      ->with($this->request, $route)
      ->willReturn($title);
  }
  $expectedLinks = array_map(function ($expected) {
    $args = isset($expected[2]) ? $expected[2] : [];
    return Link::createFromRoute($expected[0], $expected[1], $args);
  }, $expected);
  $breadcrumb = $this->builder
    ->build($route_match);
  $this
    ->assertEquals($expectedLinks, $breadcrumb
    ->getLinks());
}