acquia_dam-1.0.0-rc1/tests/src/Unit/RemoteDataSubscriberTest.php
tests/src/Unit/RemoteDataSubscriberTest.php
<?php declare(strict_types=1); namespace Drupal\Tests\acquia_dam\Unit; use Drupal\acquia_dam\Client\AcquiaDamClient; use Drupal\acquia_dam\Client\AcquiaDamClientFactory; use Drupal\acquia_dam\EventSubscriber\RemoteDataSubscriber; use Drupal\acquia_dam\MediaTypeResolver; use Drupal\Component\Datetime\TimeInterface; use Drupal\Core\Datetime\DateFormatterInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Messenger\MessengerInterface; use Drupal\Tests\UnitTestCase; use Drupal\views\Plugin\views\pager\PagerPluginBase; use Drupal\views\ViewExecutable; use Drupal\views_remote_data\Events\RemoteDataQueryEvent; use Psr\Log\LoggerInterface; /** * @group acquia_dam * @coversDefaultClass \Drupal\acquia_dam\EventSubscriber\RemoteDataSubscriber */ final class RemoteDataSubscriberTest extends UnitTestCase { /** * Tests the date values for the `assetIsActive` condition. * * @covers ::getAssetIsActiveCondition */ public function testGetAssetIsActiveCondition(): void { $client_factory = $this->createMock(AcquiaDamClientFactory::class); $client = $this->createMock(AcquiaDamClient::class); $client->expects($this->once()) ->method('search') ->with( 'rd:([before 12/18/2022]) AND ed:((isEmpty) OR [after 12/17/2022])', '-created_date', 10, 0, [ 'asset_properties', 'embeds', 'file_properties', 'metadata', 'security', 'thumbnails', ] )->willReturn(['total_count' => 0, 'items' => []]); $client_factory->expects($this->once()) ->method('getUserClient') ->willReturn($client); $now = 1671205561; $tomorrow = $now + 86400; $time = $this->createMock(TimeInterface::class); $time->expects($this->once()) ->method('getCurrentTime') ->willReturn($now); $date_formatter = $this->createMock(DateFormatterInterface::class); $date_formatter->expects($this->exactly(2)) ->method('format') ->willReturnMap([ [$now, 'custom', 'm/d/Y', NULL, NULL, date('m/d/Y', $now)], [$tomorrow, 'custom', 'm/d/Y', NULL, NULL, date('m/d/Y', $tomorrow)], ]); $sut = new RemoteDataSubscriber( $client_factory, $this->createMock(MessengerInterface::class), $this->createMock(LoggerInterface::class), $time, $date_formatter, new MediaTypeResolver( $this->createMock(EntityTypeManagerInterface::class) ) ); $view = $this->createMock(ViewExecutable::class); $view->method('getBaseTables') ->willReturn(['acquia_dam_assets' => TRUE]); $view->method('getPager') ->willReturn($this->createMock(PagerPluginBase::class)); $event = new RemoteDataQueryEvent( $view, [], [], 10, 0); $sut->doQuery($event); } }