blazy-8.x-2.x-dev/tests/src/Traits/BlazyManagerUnitTestTrait.php
tests/src/Traits/BlazyManagerUnitTestTrait.php
<?php namespace Drupal\Tests\blazy\Traits; use Drupal\Core\DependencyInjection\ContainerBuilder; /** * A Trait common for Blazy related service managers. */ trait BlazyManagerUnitTestTrait { /** * Setup the unit manager. */ protected function setUpUnitServices() { $this->entityStorage = $this->createMock('\Drupal\Core\Entity\EntityStorageInterface'); $this->entityViewBuilder = $this->createMock('\Drupal\Core\Entity\EntityViewBuilderInterface'); $this->entityTypeMock = $this->createMock('\Drupal\Core\Entity\EntityTypeInterface'); $this->entityFieldManager = $this->createMock('\Drupal\Core\Entity\EntityFieldManagerInterface'); $this->entityRepository = $this->createMock('\Drupal\Core\Entity\EntityRepositoryInterface'); $this->entityTypeManager = $this->createMock('\Drupal\Core\Entity\EntityTypeManagerInterface'); $this->renderer = $this->createMock('\Drupal\Core\Render\RendererInterface'); $this->cache = $this->createMock('\Drupal\Core\Cache\CacheBackendInterface'); $this->languageManager = $this->createMock('\Drupal\Core\Language\LanguageManager'); $this->moduleHandler = $this->createMock('\Drupal\Core\Extension\ModuleHandler'); $this->token = $this->createMock('\Drupal\Core\Utility\Token'); $this->libraries = $this->createMock('\Drupal\blazy\Asset\LibrariesInterface'); /* @phpstan-ignore-next-line */ $this->token->expects($this->any()) ->method('replace') ->willReturnArgument(0); $this->configFactory = $this->getConfigFactoryStub([ 'blazy.settings' => [ 'admin_css' => TRUE, 'noscript' => TRUE, 'one_pixel' => TRUE, 'blazy' => ['loadInvisible' => FALSE, 'offset' => 100], ], ]); // Since 2.16. $this->blazyManager = $this->createMock('\Drupal\blazy\BlazyManagerInterface'); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('libraries') ->willReturn($this->libraries); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('moduleHandler') ->willReturn($this->moduleHandler); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('entityTypeManager') ->willReturn($this->entityTypeManager); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('renderer') ->willReturn($this->renderer); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('configFactory') ->willReturn($this->configFactory); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('cache') ->willReturn($this->cache); /* @phpstan-ignore-next-line */ $this->blazyManager->expects($this->any()) ->method('languageManager') ->willReturn($this->languageManager); } /** * Setup the unit manager. */ protected function setUpUnitContainer() { $container = new ContainerBuilder(); $container->set('entity_field.manager', $this->entityFieldManager); $container->set('entity.repository', $this->entityRepository); $container->set('entity_type.manager', $this->entityTypeManager); $container->set('module_handler', $this->moduleHandler); $container->set('renderer', $this->renderer); $container->set('config.factory', $this->configFactory); $container->set('cache.default', $this->cache); $container->set('language_manager', $this->languageManager); $container->set('token', $this->token); $container->set('blazy.manager', $this->blazyManager); \Drupal::setContainer($container); } /** * Prepare image styles. */ protected function setUpImageStyle() { $styles = []; $dummies = ['blazy_crop', 'large', 'medium', 'small']; foreach ($dummies as $style) { $mock = $this->createMock('\Drupal\Core\Config\Entity\ConfigEntityInterface'); /* @phpstan-ignore-next-line */ $mock->expects($this->any()) ->method('getCacheTags') ->willReturn([]); $styles[$style] = $mock; } $ids = array_keys($styles); $storage = $this->createMock('\Drupal\Core\Config\Entity\ConfigEntityStorageInterface'); /* @phpstan-ignore-next-line */ $storage->expects($this->any()) ->method('loadMultiple') ->with($ids) ->willReturn($styles); $style = 'large'; /* @phpstan-ignore-next-line */ $storage->expects($this->any()) ->method('load') ->with($style) ->will($this->returnValue($styles[$style])); /* @phpstan-ignore-next-line */ $this->entityTypeManager->expects($this->any()) ->method('getStorage') ->with('image_style') ->willReturn($storage); return $styles; } /** * Prepare Responsive image styles. */ protected function setUpResponsiveImageStyle() { $styles = $image_styles = []; foreach (['fallback', 'small', 'medium', 'large'] as $style) { $mock = $this->createMock('\Drupal\Core\Config\Entity\ConfigEntityInterface'); /* @phpstan-ignore-next-line */ $mock->expects($this->any()) ->method('getConfigDependencyName') ->willReturn('image.style.' . $style); /* @phpstan-ignore-next-line */ $mock->expects($this->any()) ->method('getCacheTags') ->willReturn([]); $image_styles[$style] = $mock; } foreach (['blazy_picture_test', 'blazy_responsive_test'] as $style) { $mock = $this->createMock('\Drupal\responsive_image\ResponsiveImageStyleInterface'); /* @phpstan-ignore-next-line */ $mock->expects($this->any()) ->method('getImageStyleIds') ->willReturn(array_keys($image_styles)); /* @phpstan-ignore-next-line */ $mock->expects($this->any()) ->method('getCacheTags') ->willReturn([]); $styles[$style] = $mock; } $ids = array_keys($styles); $storage = $this->createMock('\Drupal\Core\Config\Entity\ConfigEntityStorageInterface'); /* @phpstan-ignore-next-line */ $storage->expects($this->any()) ->method('loadMultiple') ->with($ids) ->willReturn($styles); $style = 'blazy_picture_test'; /* @phpstan-ignore-next-line */ $storage->expects($this->any()) ->method('load') ->with($style) ->willReturn($styles[$style]); /* @phpstan-ignore-next-line */ $this->entityTypeManager->expects($this->any()) ->method('getStorage') ->with('responsive_image_style') ->willReturn($storage); /* @phpstan-ignore-next-line */ $this->entityTypeManager->expects($this->any()) ->method('getEntityTypeFromClass') ->with('Drupal\image\Entity\ImageStyle') ->willReturn('image_style'); return $styles; } }